*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font-family:var(--font-body);line-height:1.5}a{color:inherit}button,input,select{font:inherit}img{max-width:100%}[hidden]{display:none!important}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background:radial-gradient(circle at 10% -10%,rgba(57,255,136,.09),transparent 34%),radial-gradient(circle at 92% 12%,rgba(24,216,216,.08),transparent 29%),linear-gradient(var(--bg),var(--bg))}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom,black,transparent 80%)}
.site-shell{width:min(1180px,90%);margin:0 auto}.site-header{position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;gap:28px;padding:16px 5vw;background:rgba(3,7,5,.9);border-bottom:1px solid rgba(57,255,136,.13);backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:11px;color:var(--white);font-family:var(--font-data);font-size:1rem;font-weight:900;letter-spacing:.14em;text-decoration:none}.brand-mark{display:inline-grid;place-items:center;width:27px;height:27px;border:1px solid var(--green);border-radius:5px;color:var(--green);box-shadow:var(--glow-green);font-size:.76rem}.main-nav{display:flex;align-items:center;gap:22px;overflow-x:auto}.main-nav a{position:relative;color:var(--muted);font-size:.84rem;font-weight:750;text-decoration:none;white-space:nowrap}.main-nav a:hover,.main-nav a[aria-current="page"]{color:var(--green)}.main-nav a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:2px;background:var(--green);box-shadow:0 0 10px rgba(57,255,136,.5)}
.eyebrow,.kicker{margin:0 0 9px;color:var(--teal);font-family:var(--font-data);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:22px}.section-heading h2,h2{margin:0;font-family:var(--font-heading);font-size:clamp(1.9rem,4vw,3.15rem);letter-spacing:-.035em}.section-heading p:last-child{margin:0;max-width:500px;color:var(--muted)}
.primary-button,.secondary-button,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:12px 18px;border-radius:var(--radius-sm);font-weight:850;text-decoration:none;transition:transform var(--speed-fast),border-color var(--speed-fast),background var(--speed-fast),box-shadow var(--speed-fast)}.primary-button{background:var(--green);border:1px solid var(--green);color:#031007;box-shadow:0 0 18px rgba(57,255,136,.15)}.primary-button:hover{transform:translateY(-2px);background:var(--green-soft);box-shadow:0 0 25px rgba(57,255,136,.25)}.secondary-button{background:rgba(10,21,15,.8);border:1px solid var(--border-teal);color:var(--teal-soft)}.secondary-button:hover{transform:translateY(-2px);border-color:var(--teal);box-shadow:var(--glow-teal)}.text-link{min-height:auto;padding:0;color:var(--green)}
.site-footer{display:flex;justify-content:space-between;gap:20px;padding:25px 5vw;color:var(--muted);border-top:1px solid var(--border);font-size:.85rem}.site-footer strong{color:var(--white);font-family:var(--font-data);letter-spacing:.08em}

/* HOME */
.home-page main{padding:0 5vw 76px}.home-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:center;gap:54px;min-height:75vh;padding:82px 0}.home-hero h1{margin:0;max-width:850px;font-family:var(--font-heading);font-size:clamp(4rem,10vw,8.6rem);line-height:.82;letter-spacing:-.07em}.home-hero h1 span{color:var(--green);text-shadow:0 0 34px rgba(57,255,136,.17)}.home-intro{max-width:650px;margin:28px 0 0;color:var(--text);font-size:1.13rem;line-height:1.75}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.terminal-panel{position:relative;padding:22px;background:linear-gradient(145deg,rgba(15,29,22,.94),rgba(7,16,11,.95));border:1px solid var(--border-teal);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),var(--glow-teal);overflow:hidden}.terminal-panel::before{content:"BORING BETS // LIVE";display:block;margin-bottom:18px;color:var(--teal);font-family:var(--font-data);font-size:.7rem;letter-spacing:.14em}.terminal-line{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--border)}.terminal-line:last-child{border:0}.terminal-line span{color:var(--muted);font-size:.83rem}.terminal-line strong{font-family:var(--font-data);color:var(--white);text-align:right}.terminal-dot{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}
.home-section{padding:76px 0;border-top:1px solid var(--border)}.featured-grid,.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.home-card,.stat-card,.tool-card,.featured-play{background:linear-gradient(145deg,var(--panel),var(--bg-soft));border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.featured-play{display:block;padding:22px;text-decoration:none;transition:transform var(--speed-normal),border-color var(--speed-normal),box-shadow var(--speed-normal)}.featured-play:hover,.tool-card:hover{transform:translateY(-4px);border-color:var(--green-dark);box-shadow:var(--shadow-md),var(--glow-green)}.featured-play .matchup{color:var(--teal);font-family:var(--font-data);font-size:.75rem;font-weight:800;letter-spacing:.1em}.featured-play h3{margin:13px 0 8px;font-size:1.22rem}.featured-play .play-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-family:var(--font-data);font-size:.82rem}.home-card{padding:26px}.home-card p,.tool-card p{color:var(--muted);line-height:1.7}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card{padding:22px}.stat-card span{display:block;color:var(--muted);font-family:var(--font-data);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.stat-card strong{display:block;margin-top:10px;color:var(--green);font-family:var(--font-data);font-size:1.4rem}.tool-card{display:block;padding:24px;color:var(--white);text-decoration:none;transition:transform var(--speed-normal),border-color var(--speed-normal),box-shadow var(--speed-normal)}.tool-card>span{color:var(--teal);font-family:var(--font-data);font-size:.7rem;font-weight:900;letter-spacing:.11em}.tool-card h3{margin:12px 0 8px}.muted-card{opacity:.55}.discord-section{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:34px;background:linear-gradient(115deg,rgba(57,255,136,.07),rgba(24,216,216,.08));border:1px solid var(--border-teal);border-radius:var(--radius-lg)}.discord-section p{margin:7px 0 0;color:var(--text)}

/* SLATE */
.card-main,.play-main,.deadline-main{width:min(1120px,90%);margin:0 auto;padding:68px 0 84px}.card-hero,.deadline-hero{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:30px}.card-hero h1,.deadline-hero h1{margin:0;font-family:var(--font-heading);font-size:clamp(3.1rem,8vw,6.5rem);line-height:.88;letter-spacing:-.06em}.card-meta{display:flex;flex-direction:column;align-items:flex-end;gap:7px;color:var(--muted);font-family:var(--font-data);font-size:.78rem}.card-summary,.statusbar{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:34px}.card-summary>div,.statusbar>div{padding:19px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md)}.card-summary span,.statusbar span{display:block;color:var(--muted);font-family:var(--font-data);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}.card-summary strong,.statusbar strong{display:block;margin-top:8px;color:var(--green);font-family:var(--font-data);font-size:1.45rem}.card-message{padding:24px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--muted)}#playsContainer{display:grid;gap:18px}.sport-group-title{display:flex;align-items:center;gap:12px;margin:24px 0 0;color:var(--teal);font-family:var(--font-data);font-size:.82rem;letter-spacing:.14em}.sport-group-title::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,var(--border-teal),transparent)}
.play-card{position:relative;padding:24px;background:linear-gradient(145deg,var(--panel-strong),var(--bg-soft));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);cursor:pointer;overflow:hidden;transition:transform var(--speed-normal),border-color var(--speed-normal),box-shadow var(--speed-normal)}.play-card:hover,.play-card:focus-visible{transform:translateY(-4px);border-color:var(--green-dark);box-shadow:var(--shadow-lg),var(--glow-green);outline:none}.matchup-logos{display:grid;grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);align-items:center;gap:12px;margin-bottom:22px;padding:17px;background:rgba(3,7,5,.65);border:1px solid var(--border);border-radius:var(--radius-md)}.team-logo{display:flex;align-items:center;gap:11px;font-family:var(--font-data);font-weight:900;letter-spacing:.08em}.team-logo img{display:block;width:58px!important;height:58px!important;max-width:58px!important;max-height:58px!important;flex:0 0 58px;object-fit:contain;filter:drop-shadow(0 7px 10px rgba(0,0,0,.45))}.away-logo{justify-content:flex-start;animation:logoLeft .62s cubic-bezier(.2,.8,.2,1) both}.home-logo{justify-content:flex-end;animation:logoRight .62s cubic-bezier(.2,.8,.2,1) both}.matchup-at{text-align:center;color:var(--teal);font-family:var(--font-data);font-weight:900}.play-top{display:flex;justify-content:space-between;gap:14px}.sport{color:var(--teal);font-family:var(--font-data);font-size:.72rem;font-weight:900;letter-spacing:.12em}.stars{color:var(--gold);letter-spacing:.08em}.play-card h2{margin:11px 0 15px;font-size:clamp(1.35rem,3vw,2.05rem)}.play-card p{margin:7px 0;color:var(--text)}.play-card small{display:block;margin-top:18px;color:var(--muted);font-family:var(--font-data)}.play-card .card-cta{position:absolute;right:22px;bottom:21px;color:var(--green);font-family:var(--font-data);font-size:.72rem}
@keyframes logoLeft{from{opacity:0;transform:translateX(-45px) scale(.9)}to{opacity:1;transform:none}}@keyframes logoRight{from{opacity:0;transform:translateX(45px) scale(.9)}to{opacity:1;transform:none}}

/* PLAY PAGE */
.back-link{display:inline-block;margin-bottom:24px;color:var(--green);font-weight:800;text-decoration:none}.play-matchup{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);align-items:center;gap:18px;margin-bottom:28px;padding:28px;background:linear-gradient(145deg,var(--panel-strong),var(--bg-soft));border:1px solid var(--border-teal);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),var(--glow-teal)}.play-team{display:flex;align-items:center;gap:15px;font-family:var(--font-data);font-weight:900;letter-spacing:.1em}.play-team:first-child{justify-content:flex-start;animation:logoLeft .68s ease both}.play-team:last-child{justify-content:flex-end;animation:logoRight .68s ease both}.play-team img{width:74px!important;height:74px!important;max-width:74px!important;max-height:74px!important;object-fit:contain}.play-versus{text-align:center;color:var(--teal);font-family:var(--font-data);font-size:1.2rem;font-weight:900}.play-header h1{margin:6px 0 23px;font-family:var(--font-heading);font-size:clamp(2.8rem,7vw,5.8rem);line-height:.9;letter-spacing:-.055em}.play-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px}.play-facts>div{padding:18px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md)}.play-facts span{display:block;color:var(--muted);font-family:var(--font-data);font-size:.69rem;text-transform:uppercase;letter-spacing:.1em}.play-facts strong{display:block;margin-top:9px;color:var(--white);font-family:var(--font-data);font-size:1.1rem}.analysis-section{padding:30px;background:linear-gradient(145deg,var(--panel),var(--bg-soft));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}#playAnalysis{color: #dce5df;line-height:1.85;white-space:pre-line}#playAnalysis p{margin:0 0 1.3em}

/* TRADE DEADLINE */
.deadline-page .site-header{position:sticky}.deadline-hero{padding:28px 0 6px}.deadline-copy{max-width:730px}.deadline-copy p:last-child{color:var(--text);font-size:1.02rem}.deadline-card{min-width:290px;padding:20px;background:var(--panel);border:1px solid var(--border-teal);border-radius:var(--radius-md);box-shadow:var(--glow-teal)}.deadline-card span{display:block;color:var(--muted);font-family:var(--font-data);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}.deadline-card strong{display:block;margin:8px 0;font-family:var(--font-data)}#countdown{color:var(--green);font-family:var(--font-data);font-weight:900}.deadline-page .statusbar{grid-template-columns:repeat(4,1fr)}.tabs{display:flex;gap:8px;margin:28px 0 20px;overflow:auto}.tabs button,.search,select{border:1px solid var(--border);background:var(--panel);color:var(--text);padding:11px 14px;border-radius:var(--radius-sm)}.tabs button{cursor:pointer;white-space:nowrap;font-family:var(--font-data);font-weight:800}.tabs button.active{background:var(--green);color:#031007;border-color:var(--green)}.tab-panel{display:none}.tab-panel.active{display:block}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}.cards{display:grid;gap:12px}.card{border:1px solid var(--border);background:linear-gradient(145deg,var(--panel),var(--bg-soft));border-radius:var(--radius-md);padding:19px}.card-top{display:flex;justify-content:space-between;gap:16px}.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:99px;font-family:var(--font-data);font-size:.68rem;font-weight:900;text-transform:uppercase}.badge.high,.badge.confirmed{background:rgba(57,255,136,.12);color:var(--green)}.badge.medium{background:rgba(255,209,102,.12);color:var(--gold)}.badge.low{background:rgba(255,97,117,.12);color:#ff9cab}.trade-title{font-size:1.15rem;font-weight:850;margin:7px 0}.meta,.context{color:var(--muted)}.impact{border-left:3px solid var(--teal);padding-left:12px;margin-top:12px}.source{color:var(--teal-soft);text-decoration:none;font-size:.84rem}.notice{padding:13px 14px;border:1px solid var(--border-teal);background:rgba(24,216,216,.07);color:var(--teal-soft);border-radius:var(--radius-sm);margin-bottom:14px}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md)}table{border-collapse:collapse;width:100%;min-width:900px;background:var(--panel)}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--border)}th{color:var(--teal);font-family:var(--font-data);font-size:.69rem;text-transform:uppercase;letter-spacing:.08em}.tier{font-weight:900}.tier.Aggressive-Buyer{color:var(--green)}.tier.Buyer{color:var(--teal-soft)}.tier.Bubble{color:var(--gold)}.tier.Seller,.tier.Rebuilder{color:var(--red)}.impact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.impact-grid .card h3{margin:10px 0}

@media(max-width:900px){.home-hero{grid-template-columns:1fr;min-height:auto}.terminal-panel{max-width:620px}.featured-grid,.tool-grid{grid-template-columns:1fr 1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.deadline-page .statusbar{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.site-header{align-items:flex-start;flex-direction:column;gap:13px}.main-nav{width:100%;gap:17px;padding-bottom:3px}.home-page main{padding-inline:5vw}.home-hero{padding:65px 0}.home-hero h1{font-size:clamp(3.7rem,20vw,6.2rem)}.featured-grid,.tool-grid,.stat-grid{grid-template-columns:1fr}.discord-section,.card-hero,.deadline-hero,.section-head{align-items:flex-start;flex-direction:column}.card-meta{align-items:flex-start}.card-summary{grid-template-columns:1fr}.matchup-logos,.play-matchup{grid-template-columns:1fr 28px 1fr;padding:16px 11px}.team-logo,.play-team{flex-direction:column;gap:7px;text-align:center}.team-logo img{width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important;flex-basis:48px}.play-team img{width:56px!important;height:56px!important;max-width:56px!important;max-height:56px!important}.play-facts{grid-template-columns:repeat(2,1fr)}.impact-grid{grid-template-columns:1fr}.site-footer{flex-direction:column}.deadline-card{min-width:0;width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* =========================
   MATCHUP DEEP DIVE
   ========================= */

.game-page {
  --away-pitcher-green-alpha: 0;
  --away-pitcher-red-alpha: 0;
  --home-pitcher-green-alpha: 0;
  --home-pitcher-red-alpha: 0;

  min-height: 100vh;

  background:
    radial-gradient(
      circle at 10% 24%,
      rgba(
        57,
        255,
        136,
        var(--away-pitcher-green-alpha)
      ),
      transparent 34%
    ),
    radial-gradient(
      circle at 10% 24%,
      rgba(
        255,
        71,
        96,
        var(--away-pitcher-red-alpha)
      ),
      transparent 34%
    ),
    radial-gradient(
      circle at 90% 24%,
      rgba(
        57,
        255,
        136,
        var(--home-pitcher-green-alpha)
      ),
      transparent 34%
    ),
    radial-gradient(
      circle at 90% 24%,
      rgba(
        255,
        71,
        96,
        var(--home-pitcher-red-alpha)
      ),
      transparent 34%
    ),
    var(--bg);

  background-attachment: fixed;
  color: var(--white);
}

.game-main {
  width: min(1100px, 90%);
  margin: 0 auto;
  padding: 60px 0 80px;
}

.game-matchup {
  display: grid;
  grid-template-columns: 1fr 44px 1fr;
  align-items: center;
  gap: 18px;
  padding: 28px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.game-team {
  display: flex;
  align-items: center;
  gap: 14px;
  font-weight: 900;
}

.game-team:first-child {
  justify-content: flex-start;
}

.game-team:last-child {
  justify-content: flex-end;
}

.game-team img {
  width: 76px;
  height: 76px;
  object-fit: contain;
}

.game-versus {
  text-align: center;
  color: var(--green);
  font-weight: 900;
}

.game-heading {
  padding: 34px 0;
}

.game-heading h1 {
  margin: 6px 0 10px;
  font-size: clamp(2.2rem, 6vw, 4.5rem);
}

.game-date {
  color: var(--muted);
}

.intelligence-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.intelligence-card,
.game-plays-section {
  padding: 24px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.game-plays-section {
  margin-top: 18px;
}

#relatedPlays {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.related-play-card {
  display: grid;
  gap: 6px;
  padding: 16px;
  color: var(--white);
  text-decoration: none;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.related-play-card:hover {
  border-color: var(--teal);
}

.related-play-card span {
  color: var(--teal);
  font-size: 0.75rem;
  font-weight: 900;
}

.related-play-card small {
  color: var(--muted);
}

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

  .game-matchup {
    grid-template-columns: 1fr 30px 1fr;
    padding: 20px 14px;
  }

  .game-team {
    flex-direction: column;
  }

  .game-team img {
    width: 56px;
    height: 56px;
  }
}



.deep-dive-panel {
  margin-top: 18px;
  padding: 0;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.deep-dive-button {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  padding: 24px 26px;
  color: var(--white);
  text-decoration: none;
  background:
    linear-gradient(
      135deg,
      rgba(57, 255, 136, 0.08),
      rgba(24, 216, 216, 0.08)
    );
  transition:
    background var(--speed-normal),
    border-color var(--speed-normal),
    transform var(--speed-normal);
}

.deep-dive-button span {
  color: var(--teal);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.deep-dive-button strong {
  font-size: clamp(1.15rem, 3vw, 1.6rem);
}

.deep-dive-button:hover {
  background:
    linear-gradient(
      135deg,
      rgba(57, 255, 136, 0.15),
      rgba(24, 216, 216, 0.15)
    );
  transform: translateY(-2px);
}


/* =========================
   GAME INTELLIGENCE ENGINE
   ========================= */

.game-controls-panel {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 24px;
  padding: 18px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.control-group {
  display: grid;
  gap: 8px;
}

.control-label {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.segmented-control {
  display: inline-flex;
  gap: 6px;
  padding: 5px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.segmented-control button {
  min-height: 38px;
  padding: 8px 14px;
  color: var(--muted);
  font: inherit;
  font-weight: 800;
  background: transparent;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  transition:
    color var(--speed-fast),
    background var(--speed-fast),
    box-shadow var(--speed-fast);
}

.segmented-control button:hover {
  color: var(--white);
}

.segmented-control button.active {
  color: #041009;
  background: var(--green);
  box-shadow: var(--glow-green);
}

.game-section {
  margin-bottom: 22px;
}

.game-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 16px;
}

.game-section-heading h2 {
  margin: 4px 0 0;
}

.game-section-heading > p {
  max-width: 420px;
  margin: 0;
  color: var(--muted);
  text-align: right;
}

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

.pitcher-comparison-card {
  min-width: 0;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}

.pitcher-card-link {
  display: block;
  height: 100%;
  padding: 22px;
  color: inherit;
  text-decoration: none;
}

.pitcher-card-link:hover {
  background:
    linear-gradient(
      135deg,
      rgba(57, 255, 136, 0.05),
      rgba(24, 216, 216, 0.04)
    );
}

.pitcher-card-heading {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
}

.pitcher-card-heading h2 {
  margin: 5px 0;
  font-size: clamp(1.4rem, 3vw, 2rem);
}

.pitcher-card-heading p {
  margin: 0;
  color: var(--muted);
}

.data-label {
  color: var(--teal);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.open-data {
  align-self: flex-start;
  color: var(--green);
  font-size: 0.78rem;
  font-weight: 900;
  white-space: nowrap;
}

.table-scroll {
  width: 100%;
  overflow-x: auto;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}

.data-table th,
.data-table td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--border);
  text-align: right;
  white-space: nowrap;
}

.data-table thead th {
  color: var(--muted);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.data-table th:first-child,
.data-table td:first-child {
  text-align: left;
}

.data-table tbody th {
  color: var(--text);
  font-weight: 800;
}

.data-table tbody td {
  color: var(--white);
  font-family: var(--bb-font-data, monospace);
}

.data-table tbody tr:last-child th,
.data-table tbody tr:last-child td {
  border-bottom: 0;
}

.intelligence-card {
  color: inherit;
  text-decoration: none;
}

.intelligence-card h3 {
  margin: 7px 0 8px;
}

.intelligence-card:hover {
  border-color: var(--teal);
}

@media (max-width: 850px) {
  .pitcher-comparison-grid {
    grid-template-columns: 1fr;
  }

  .game-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .game-section-heading > p {
    text-align: left;
  }
}

@media (max-width: 620px) {
  .game-controls-panel {
    display: grid;
  }

  .segmented-control {
    width: 100%;
  }

  .segmented-control button {
    flex: 1;
  }

  .pitcher-card-heading {
    flex-direction: column;
  }

  .open-data {
    align-self: auto;
  }
}

/* =========================
   REFINED LOGO MOTION
   ========================= */

.card-page .away-logo,
.card-page .home-logo,
.play-page .play-team,
.game-page .game-team {
  animation: none !important;
}

.card-page .team-logo img,
.play-page .play-team img,
.game-page .game-team img {
  transform: none;
  transition:
    transform 140ms ease,
    filter 140ms ease,
    opacity 140ms ease;
}

.card-page .team-logo:hover img,
.play-page .play-team:hover img,
.game-page .game-team:hover img {
  transform: scale(1.035);
  filter:
    drop-shadow(0 8px 14px rgba(0, 0, 0, 0.42))
    drop-shadow(0 0 8px rgba(57, 255, 136, 0.14));
}


/* ==========================================
   MATCHUP CONSOLE
========================================== */

.matchup-console{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    margin:24px 0;
}

.matchup-column{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.offense-comparison-card,
.lineup-matchup-card,
.bullpen-card{

    background:var(--panel);
    border:1px solid var(--border);
    border-radius:10px;
    padding:18px;

}

.placeholder-copy{

    color:var(--muted);
    margin-top:10px;
    line-height:1.6;

}

.bullpen-console{

    margin-top:24px;

}

.bullpen-comparison-grid{

    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;

}

@media(max-width:950px){

.matchup-console{

grid-template-columns:1fr;

}

.bullpen-comparison-grid{

grid-template-columns:1fr;

}

}


/* =========================
   DATA MODULES — SPRINT 3
   ========================= */

.module-link,
.module-button {
  display: block;
  width: 100%;
  height: 100%;
  padding: 18px;
  color: inherit;
  text-align: left;
  text-decoration: none;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.module-link:hover,
.module-button:hover {
  background: linear-gradient(135deg, rgba(57, 255, 136, 0.035), rgba(24, 216, 216, 0.03));
}

.module-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.module-heading h3 {
  margin: 4px 0;
}

.module-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.compact-heading {
  align-items: flex-start;
}

.offense-comparison-card,
.lineup-matchup-card,
.bullpen-card {
  padding: 0;
  overflow: hidden;
}

.offense-data-table th,
.offense-data-table td {
  padding: 9px 8px;
}

.rank-cell {
  font-size: 0.78rem;
  font-weight: 900;
}

.stat-best {
  color: #d8ffe8 !important;
  background: rgba(57, 255, 136, 0.18);
}

.stat-good {
  color: #bcf8dd !important;
  background: rgba(57, 255, 136, 0.09);
}

.stat-neutral {
  color: var(--white) !important;
  background: rgba(24, 216, 216, 0.025);
}

.stat-poor {
  color: #ffd4d9 !important;
  background: rgba(255, 90, 110, 0.09);
}

.stat-worst {
  color: #ffe0e4 !important;
  background: rgba(255, 90, 110, 0.17);
}

.matchup-summary-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--border);
}

.summary-stat {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 11px 8px;
  text-align: center;
  background: var(--bg-soft);
}

.summary-stat small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.summary-stat strong {
  color: var(--white);
  font-family: var(--bb-font-data, monospace);
  font-size: 0.95rem;
}

.bullpen-summary-grid {
  margin-top: 4px;
}

.module-note {
  margin: 12px 0 0;
  color: var(--text);
  font-size: 0.82rem;
  line-height: 1.5;
}

.game-page .intelligence-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 620px) {
  .matchup-console {
    display: flex;
    gap: 12px;
    margin-inline: -5vw;
    padding: 0 5vw 8px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }

  .matchup-column {
    flex: 0 0 min(92vw, 560px);
    scroll-snap-align: start;
  }

  .pitcher-card-link,
  .module-link,
  .module-button {
    padding: 14px;
  }

  .data-table th,
  .data-table td {
    padding: 9px 7px;
    font-size: 0.78rem;
  }

  .matchup-summary-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .game-page .intelligence-grid {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
}


/* ==========================================
   SPRINT 4 — DENSE RESEARCH CONSOLE
   ========================================== */

/* Tighter overall matchup layout */
.matchup-console {
  gap: 10px;
  margin: 12px 0;
}

.matchup-column {
  gap: 8px;
}

/* Compact pitcher and offense panels */
.pitcher-comparison-card,
.offense-comparison-card,
.lineup-matchup-card {
  border-radius: 5px;
}

.pitcher-card-link,
.offense-comparison-card,
.lineup-matchup-card {
  padding: 10px 12px;
}

/* Compress pitcher heading */
.pitcher-card-heading {
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 7px;
}

.pitcher-card-heading h2 {
  margin: 2px 0;
  font-size: 1rem;
  line-height: 1.15;
}

.pitcher-card-heading p {
  font-size: 0.72rem;
  line-height: 1.25;
}

.data-label,
.open-data {
  font-size: 0.61rem;
  letter-spacing: 0.08em;
}

.open-data {
  margin-top: 2px;
}

/* Dense data tables */
.data-table {
  font-size: 0.72rem;
  line-height: 1.1;
}

.data-table th,
.data-table td {
  padding: 5px 6px;
}

.data-table thead th {
  font-size: 0.58rem;
  letter-spacing: 0.045em;
}

.data-table tbody th {
  font-size: 0.68rem;
}

/* Compact offense headings */
.offense-comparison-card h3,
.lineup-matchup-card h3 {
  margin: 3px 0 6px;
  font-size: 0.92rem;
}

.offense-comparison-card .kicker,
.lineup-matchup-card .kicker {
  margin-bottom: 2px;
  font-size: 0.6rem;
}

/* Smaller controls */
.game-controls-panel {
  gap: 10px;
  margin-bottom: 10px;
  padding: 8px 10px;
  border-radius: 5px;
}

.control-group {
  gap: 4px;
}

.control-label {
  font-size: 0.58rem;
}

.segmented-control {
  gap: 2px;
  padding: 2px;
}

.segmented-control button {
  min-height: 26px;
  padding: 4px 9px;
  font-size: 0.67rem;
  border-radius: 3px;
}

/* Preserve the bullpen sizing you liked */
.bullpen-console {
  margin-top: 14px;
}

.bullpen-card {
  padding: 16px;
}

/* Tighter status strip */
.game-status-strip {
  margin: 7px 0 10px;
  padding: 6px 10px;
  font-size: 0.61rem;
  border-radius: 3px;
}

/* Phone remains readable */
@media (max-width: 620px) {
  .pitcher-card-link,
  .offense-comparison-card,
  .lineup-matchup-card {
    padding: 9px;
  }

  .data-table {
    font-size: 0.68rem;
  }

  .data-table th,
  .data-table td {
    padding: 5px;
  }

  .pitcher-card-heading {
    flex-direction: row;
  }

  .open-data {
    max-width: 70px;
    text-align: right;
    white-space: normal;
  }
}


/* ==========================================
   METRIC HEAT ENGINE
   ========================================== */

.metric-elite {
  color: #63ff9b;
  background: rgba(57, 255, 136, 0.18);
  box-shadow: inset 3px 0 0 #39ff88;
}

.metric-good {
  color: #a2f5bf;
  background: rgba(57, 255, 136, 0.08);
  box-shadow: inset 3px 0 0 rgba(57, 255, 136, 0.55);
}

.metric-average {
  color: var(--text);
  background: rgba(130, 144, 135, 0.05);
  box-shadow: inset 3px 0 0 rgba(130, 144, 135, 0.25);
}

.metric-poor {
  color: #ffadb8;
  background: rgba(255, 97, 117, 0.08);
  box-shadow: inset 3px 0 0 rgba(255, 97, 117, 0.55);
}

.metric-awful {
  color: #ff7184;
  background: rgba(255, 97, 117, 0.17);
  box-shadow: inset 3px 0 0 #ff6175;
}

/* Missing data should remain quiet */
.metric-missing {
  color: var(--muted);
  background: transparent;
  box-shadow: none;
}

/* Keep heat colors readable in dense tables */
.data-table td[class*="metric-"] {
  font-weight: 800;
  transition:
    background 120ms ease,
    color 120ms ease;
}

.data-table td[class*="metric-"]:hover {
  filter: brightness(1.12);
}


/* ==========================================
   DENSITY PASS — PITCHER + OFFENSE ONLY
   ========================================== */

.matchup-console {
  gap: 8px;
  margin: 8px 0 12px;
}

.matchup-column {
  gap: 6px;
}

/* Do not affect bullpen, weather, or market cards */
.pitcher-comparison-card,
.offense-comparison-card,
.lineup-matchup-card {
  border-radius: 4px;
}

.pitcher-card-link,
.offense-comparison-card,
.lineup-matchup-card {
  padding: 7px 9px;
}

/* Pitcher identity row */
.pitcher-card-heading {
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
}

.pitcher-card-heading h2 {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.05;
}

.pitcher-card-heading p {
  margin: 1px 0 0;
  font-size: 0.62rem;
  line-height: 1.1;
}

.data-label,
.open-data {
  font-size: 0.52rem;
  letter-spacing: 0.055em;
}

.open-data {
  margin: 0;
}

/* Spreadsheet-density tables */
.pitcher-comparison-card .data-table,
.offense-comparison-card .data-table,
.lineup-matchup-card .data-table {
  font-size: 0.63rem;
  line-height: 1;
}

.pitcher-comparison-card .data-table th,
.pitcher-comparison-card .data-table td,
.offense-comparison-card .data-table th,
.offense-comparison-card .data-table td,
.lineup-matchup-card .data-table th,
.lineup-matchup-card .data-table td {
  padding: 3px 4px;
}

.pitcher-comparison-card .data-table thead th,
.offense-comparison-card .data-table thead th,
.lineup-matchup-card .data-table thead th {
  font-size: 0.5rem;
  letter-spacing: 0.025em;
}

.pitcher-comparison-card .data-table tbody th,
.offense-comparison-card .data-table tbody th,
.lineup-matchup-card .data-table tbody th {
  font-size: 0.59rem;
}

/* Compact offense and lineup headings */
.offense-comparison-card h3,
.lineup-matchup-card h3 {
  margin: 1px 0 4px;
  font-size: 0.78rem;
  line-height: 1.05;
}

.offense-comparison-card .kicker,
.lineup-matchup-card .kicker {
  margin: 0 0 1px;
  font-size: 0.49rem;
}

/* Remove unnecessary vertical space before bullpen cards */
.bullpen-console {
  margin-top: 10px;
}

/* Preserve bullpen card dimensions */
.bullpen-card {
  padding: 16px;
}

@media (max-width: 620px) {
  .pitcher-card-link,
  .offense-comparison-card,
  .lineup-matchup-card {
    padding: 7px;
  }

  .pitcher-comparison-card .data-table,
  .offense-comparison-card .data-table,
  .lineup-matchup-card .data-table {
    font-size: 0.61rem;
  }

  .pitcher-card-heading {
    align-items: flex-start;
  }
}


/* ==========================================
   TRUE MODULE WIDTH COMPRESSION
   ========================================== */

/* Two compact matchup columns instead of two full-width halves */
.matchup-console {
  grid-template-columns: repeat(2, minmax(330px, 410px));
  justify-content: center;
  align-items: start;
  gap: 10px;
}

/* Prevent each column from stretching unnecessarily */
.matchup-column {
  width: 100%;
  min-width: 0;
}

/* Modules now follow the narrower column width */
.pitcher-comparison-card,
.offense-comparison-card,
.lineup-matchup-card {
  width: 100%;
  min-width: 0;
}

/* Stop research tables from stretching across the whole card */
.pitcher-comparison-card .data-table,
.offense-comparison-card .data-table,
.lineup-matchup-card .data-table {
  width: auto;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  table-layout: auto;
}

/* Keep every statistical column compact */
.pitcher-comparison-card .data-table th,
.pitcher-comparison-card .data-table td,
.offense-comparison-card .data-table th,
.offense-comparison-card .data-table td,
.lineup-matchup-card .data-table th,
.lineup-matchup-card .data-table td {
  width: 1%;
  min-width: 42px;
  padding-left: 4px;
  padding-right: 4px;
}

/* Metric names only need a small first column */
.pitcher-comparison-card .data-table th:first-child,
.offense-comparison-card .data-table th:first-child,
.lineup-matchup-card .data-table th:first-child,
.pitcher-comparison-card .data-table td:first-child,
.offense-comparison-card .data-table td:first-child,
.lineup-matchup-card .data-table td:first-child {
  width: 52px;
  min-width: 52px;
  max-width: 62px;
}

/* Remove excess empty room around the table */
.pitcher-comparison-card .table-scroll,
.offense-comparison-card .table-scroll,
.lineup-matchup-card .table-scroll {
  width: fit-content;
  max-width: 100%;
}

/* Slightly wider layouts can use larger compact modules */
@media (min-width: 1250px) {
  .matchup-console {
    grid-template-columns: repeat(2, minmax(360px, 440px));
  }
}

/* Phone: retain one-column layout and full available width */
@media (max-width: 760px) {
  .matchup-console {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }

  .pitcher-comparison-card .data-table,
  .offense-comparison-card .data-table,
  .lineup-matchup-card .data-table {
    width: max-content;
  }
}

/* ==========================================
   FINAL CONSOLE ALIGNMENT OVERRIDE
   ========================================== */

.game-controls-panel,
.matchup-console,
.bullpen-console,
.bullpen-comparison-grid {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}

.matchup-console,
.bullpen-comparison-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  justify-content: stretch !important;
  align-items: start;
  gap: 10px !important;
}

.matchup-column,
.pitcher-comparison-card,
.offense-comparison-card,
.lineup-matchup-card,
.bullpen-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

.matchup-console {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (max-width: 760px) {
  .matchup-console,
  .bullpen-comparison-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}


/* ==========================================
   ALIGN MATCHUP MODULES WITH FULL CONSOLE
   ========================================== */

/* Restore the matchup area to the full available width */
.matchup-console {
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  justify-content: stretch;
  gap: 10px;
}

/* Each side aligns with the controls and bullpen columns */
.matchup-column,
.pitcher-comparison-card,
.offense-comparison-card,
.lineup-matchup-card {
  width: 100%;
  min-width: 0;
}

/* Keep the contents dense without shrinking the outer modules */
.pitcher-comparison-card .table-scroll,
.offense-comparison-card .table-scroll,
.lineup-matchup-card .table-scroll {
  width: 100%;
  overflow-x: auto;
}

/* Tables use the card width, but columns stay tightly proportioned */
.pitcher-comparison-card .data-table,
.offense-comparison-card .data-table,
.lineup-matchup-card .data-table {
  width: 100%;
  table-layout: fixed;
}

/* Compact first column for ERA, WHIP, AVG, etc. */
.pitcher-comparison-card .data-table th:first-child,
.pitcher-comparison-card .data-table td:first-child,
.offense-comparison-card .data-table th:first-child,
.offense-comparison-card .data-table td:first-child,
.lineup-matchup-card .data-table th:first-child,
.lineup-matchup-card .data-table td:first-child {
  width: 18%;
  min-width: 0;
  max-width: none;
}

/* Remaining statistical columns divide the available room evenly */
.pitcher-comparison-card .data-table th:not(:first-child),
.pitcher-comparison-card .data-table td:not(:first-child),
.offense-comparison-card .data-table th:not(:first-child),
.offense-comparison-card .data-table td:not(:first-child),
.lineup-matchup-card .data-table th:not(:first-child),
.lineup-matchup-card .data-table td:not(:first-child) {
  width: auto;
  min-width: 0;
}

/* Keep the two bullpen cards on the exact same column grid */
.bullpen-comparison-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

@media (max-width: 760px) {
  .matchup-console,
  .bullpen-comparison-grid {
    grid-template-columns: 1fr;
  }

  .pitcher-comparison-card .data-table,
  .offense-comparison-card .data-table,
  .lineup-matchup-card .data-table {
    min-width: 420px;
  }
}

/* Play page title refinement */
.play-header h1 {
  font-size: clamp(1.35rem, 3vw, 1.8rem);
  line-height: 1.15;
  margin: 5px 0 12px;
}

/* ==========================================
   MATCHUP SNAPSHOT HEAT
   ========================================== */

.snapshot-value-good {
  color: #8fffb4;
}

.snapshot-value-neutral {
  color: var(--text);
}

.snapshot-value-poor {
  color: #ff8e9d;
}

.snapshot-value-missing {
  color: var(--muted);
}

/* Keep the snapshot compact and readable */
.snapshot-row strong {
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

.snapshot-row strong span + span::before {
  content: " · ";
  color: var(--muted);
}

/* Lineup status emphasis */
.lineup-status-confirmed {
  color: var(--green);
}

.lineup-status-projected {
  color: var(--muted);
}

/* Status strip state colors */
.status-confirmed {
  color: var(--green);
}

.status-partial {
  color: #e6c96b;
}

.status-projected {
  color: var(--muted);
}


/* BORING BETS CONTEXT V1 UI */

.game-context-panel {
  margin-top: 14px;
  padding: 18px;
  background:
    linear-gradient(
      145deg,
      rgba(15, 29, 22, 0.96),
      rgba(7, 16, 11, 0.96)
    );
  border: 1px solid var(--border-teal);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}

.context-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 14px;
}

.context-section-heading h2 {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 2rem);
}

.context-section-heading > p {
  max-width: 440px;
  margin: 0;
  color: var(--muted);
  text-align: right;
}

.context-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 14px;
  margin-bottom: 12px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.context-header h2 {
  margin: 0;
  color: var(--white);
  font-family: var(--font-heading);
}

.context-score {
  display: flex;
  align-items: baseline;
  gap: 4px;
  color: var(--green);
  font-family: var(--font-data);
}

.context-score strong {
  font-size: clamp(2rem, 5vw, 3.2rem);
  line-height: 1;
}

.context-score span {
  color: var(--muted);
  font-size: 0.82rem;
}

.context-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.context-group {
  min-width: 0;
  padding: 12px;
  background: rgba(3, 7, 5, 0.45);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.context-group h3 {
  margin: 0 0 9px;
  color: var(--teal);
  font-family: var(--font-data);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.context-list {
  display: grid;
  gap: 7px;
}

.context-item {
  padding: 10px;
  border-radius: 5px;
  border-left: 3px solid var(--muted);
  background: rgba(255, 255, 255, 0.025);
}

.context-item strong {
  display: block;
  margin-bottom: 3px;
  font-size: 0.75rem;
  letter-spacing: 0.035em;
}

.context-item p {
  margin: 0;
  color: var(--text);
  font-size: 0.72rem;
  line-height: 1.4;
}

.context-good {
  border-left-color: var(--green);
  background: rgba(57, 255, 136, 0.07);
}

.context-good strong {
  color: #9dffbd;
}

.context-caution {
  border-left-color: var(--gold);
  background: rgba(255, 209, 102, 0.07);
}

.context-caution strong {
  color: #f2d77e;
}

.context-warning {
  border-left-color: var(--red);
  background: rgba(255, 97, 117, 0.09);
}

.context-warning strong {
  color: #ff9eaa;
}

.context-info {
  border-left-color: var(--teal);
  background: rgba(24, 216, 216, 0.055);
}

.context-info strong {
  color: var(--teal-soft);
}

.context-group-empty,
.context-empty {
  margin: 0;
  color: var(--muted);
  font-size: 0.75rem;
}

.context-future-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}

.context-future-sources span {
  padding: 5px 8px;
  border-radius: 999px;
  font-family: var(--font-data);
  font-size: 0.58rem;
  letter-spacing: 0.06em;
}

.context-source-active {
  color: var(--green);
  background: rgba(57, 255, 136, 0.08);
  border: 1px solid rgba(57, 255, 136, 0.2);
}

.context-source-backlog {
  color: var(--muted);
  background: rgba(130, 144, 135, 0.05);
  border: 1px solid var(--border);
}

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

  .context-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .context-section-heading > p {
    text-align: left;
  }
}

@media (max-width: 620px) {
  .game-context-panel {
    padding: 12px;
  }

  .context-header {
    padding: 11px;
  }

  .context-item {
    padding: 9px;
  }
}


/* BORING BETS CONTEXT V2 UI */

.context-columns-v2 {
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
}

.context-negative {
  border-left-color: #ff8e62;
  background: rgba(255, 142, 98, 0.08);
}

.context-negative strong {
  color: #ffb08d;
}

.context-item-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
}

.context-team-tag {
  flex: 0 0 auto;
  padding: 2px 5px;
  color: var(--teal);
  font-family: var(--font-data);
  font-size: 0.52rem;
  border: 1px solid rgba(24, 216, 216, 0.24);
  border-radius: 999px;
}

.context-group h3 {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.context-group h3 span {
  color: var(--muted);
}

@media (max-width: 1050px) {
  .context-columns-v2 {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .context-columns-v2 {
    grid-template-columns: 1fr;
  }
}


/* BORING BETS GAME LIFECYCLE UI */
.game-lifecycle-panel{margin-top:14px;padding:18px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md)}
.game-lifecycle-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:14px}
.game-lifecycle-heading h2{margin:0;font-size:clamp(1.35rem,3vw,2rem)}
.game-lifecycle-status{padding:6px 9px;color:var(--teal);font-family:var(--font-data);font-size:.62rem;font-weight:900;letter-spacing:.08em;border:1px solid var(--border-teal);border-radius:999px}
.game-lifecycle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.game-lifecycle-group{min-width:0;padding:12px;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-sm)}
.game-lifecycle-group h3{margin:0 0 10px;color:var(--teal);font-family:var(--font-data);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
#gameOfficialPlays,#gameResults,#gameEvaluations{display:grid;gap:8px}
.lifecycle-item{display:grid;gap:4px;padding:10px;color:inherit;text-decoration:none;background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:5px}
a.lifecycle-item:hover{border-color:var(--green-dark);background:rgba(57,255,136,.05)}
.lifecycle-item strong{color:var(--white);font-size:.78rem}
.lifecycle-item span{color:var(--text);font-size:.72rem}
.lifecycle-item small{color:var(--muted);font-size:.66rem}
@media(max-width:850px){.game-lifecycle-grid{grid-template-columns:1fr}}
@media(max-width:620px){.game-lifecycle-panel{padding:12px}.game-lifecycle-heading{align-items:flex-start;flex-direction:column}}

/* BORING BETS LIFECYCLE + SIDE NAV */

.game-lifecycle-panel {
  margin-top: 14px;
  padding: 18px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.game-lifecycle-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  margin-bottom: 14px;
}

.game-lifecycle-heading h2 {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 2rem);
}

.game-lifecycle-status {
  padding: 6px 9px;
  color: var(--teal);
  font-family: var(--font-data);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  border: 1px solid var(--border-teal);
  border-radius: 999px;
}

.game-lifecycle-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.game-lifecycle-group {
  min-width: 0;
  padding: 12px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.game-lifecycle-group h3 {
  margin: 0 0 10px;
  color: var(--teal);
  font-family: var(--font-data);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

#gameOfficialPlays,
#gameResults,
#gameEvaluations {
  display: grid;
  gap: 8px;
}

.lifecycle-item {
  display: grid;
  gap: 4px;
  padding: 10px;
  color: inherit;
  text-decoration: none;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--border);
  border-radius: 5px;
}

a.lifecycle-item:hover {
  border-color: var(--green-dark);
  background: rgba(57, 255, 136, 0.05);
}

.lifecycle-item strong {
  color: var(--white);
  font-size: 0.78rem;
}

.lifecycle-item span {
  color: var(--text);
  font-size: 0.72rem;
}

.lifecycle-item small {
  color: var(--muted);
  font-size: 0.66rem;
}

@media (min-width: 1180px) {
  #previousGameLink,
  #nextGameLink {
    position: fixed;
    top: 50%;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 128px;
    min-height: 74px;
    padding: 12px;
    color: var(--text);
    text-align: center;
    line-height: 1.25;
    text-decoration: none;
    background: rgba(7, 16, 11, 0.94);
    border: 1px solid var(--border-teal);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-md);
    backdrop-filter: blur(12px);
    transform: translateY(-50%);
  }

  #previousGameLink {
    left: max(14px, calc((100vw - 1100px) / 2 - 150px));
  }

  #nextGameLink {
    right: max(14px, calc((100vw - 1100px) / 2 - 150px));
  }

  #previousGameLink:hover,
  #nextGameLink:hover {
    color: var(--green);
    border-color: var(--green-dark);
    box-shadow: var(--shadow-md), var(--glow-green);
  }

  #previousGameLink.disabled,
  #nextGameLink.disabled {
    opacity: 0.28;
    pointer-events: none;
  }
}

@media (max-width: 850px) {
  .game-lifecycle-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .game-lifecycle-panel {
    padding: 12px;
  }

  .game-lifecycle-heading {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* BORING BETS ARTICLE UI */
.game-articles-panel{margin-top:14px;padding:18px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md)}
.game-articles-heading{margin-bottom:12px}.game-articles-heading h2{margin:0;font-size:clamp(1.35rem,3vw,2rem)}
#gameArticles{display:grid;gap:12px}.game-article{padding:16px;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-sm)}
.game-article-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-family:var(--font-data);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase}
.game-article h3{margin:10px 0;color:var(--white);font-size:clamp(1.05rem,2.5vw,1.45rem)}
.game-article-summary{color:var(--teal-soft);font-weight:700}.game-article-body{color:var(--text);line-height:1.75}.game-article-body p{margin:0 0 1.15em}.game-article-body p:last-child{margin-bottom:0}



/* Sprint 3: shared fixed sequence navigation */
.card-date-navigation {
  display: flex;
  justify-content: center;
  margin-top: 10px;
}

.card-date-link {
  color: var(--text);
  text-decoration: none;
}

.card-today-link {
  padding: 7px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: rgba(7, 16, 11, 0.8);
}

@media (min-width: 1180px) {
  .card-side-navigation {
    position: fixed;
    top: 50%;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 128px;
    min-height: 74px;
    padding: 12px;
    color: var(--text);
    text-align: center;
    line-height: 1.25;
    background: rgba(7, 16, 11, 0.94);
    border: 1px solid var(--border-teal);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-md);
    backdrop-filter: blur(12px);
    transform: translateY(-50%);
  }

  .card-side-navigation--previous {
    left: max(14px, calc((100vw - 1100px) / 2 - 150px));
  }

  .card-side-navigation--next {
    right: max(14px, calc((100vw - 1100px) / 2 - 150px));
  }

  .card-side-navigation:hover {
    color: var(--green);
    border-color: var(--green-dark);
    box-shadow: var(--shadow-md), var(--glow-green);
  }
}

@media (max-width: 1179px) {
  .card-side-navigation {
    position: fixed;
    bottom: 18px;
    z-index: 90;
    width: 54px;
    height: 54px;
    overflow: hidden;
    padding: 0;
    color: transparent;
    background: rgba(7, 16, 11, 0.96);
    border: 1px solid var(--border-teal);
    border-radius: 50%;
    box-shadow: var(--shadow-md);
  }

  .card-side-navigation::first-letter {
    color: var(--green);
  }

  .card-side-navigation--previous { left: 14px; }
  .card-side-navigation--next { right: 14px; }
}

/* Sprint 3 unified floating navigation arrows */
.card-date-navigation {
  display: flex;
  justify-content: center;
  margin-top: 10px;
}

.card-today-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 12px;
  color: var(--green);
  text-decoration: none;
  background: rgba(7, 16, 11, 0.88);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

#previousGameLink,
#nextGameLink,
.card-side-navigation {
  position: fixed !important;
  top: 50% !important;
  z-index: 90 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
  padding: 0 !important;
  overflow: hidden !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-decoration: none !important;
  background: rgba(7, 16, 11, 0.95) !important;
  border: 1px solid var(--green-dark) !important;
  border-radius: 50% !important;
  box-shadow: var(--shadow-md), 0 0 18px rgba(57, 255, 136, 0.12) !important;
  backdrop-filter: blur(12px);
  transform: translateY(-50%) !important;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

#previousGameLink::before,
#nextGameLink::before,
.card-side-navigation::before {
  content: "";
  width: 20px;
  height: 20px;
  border-top: 5px solid var(--green);
  border-right: 5px solid var(--green);
  filter: drop-shadow(0 0 7px rgba(57, 255, 136, 0.55));
}

#previousGameLink::before,
.card-side-navigation--previous::before {
  transform: rotate(-135deg) translate(-2px, 2px);
}

#nextGameLink::before,
.card-side-navigation--next::before {
  transform: rotate(45deg) translate(-2px, 2px);
}

#previousGameLink,
.card-side-navigation--previous {
  left: max(14px, calc((100vw - 1100px) / 2 - 112px)) !important;
}

#nextGameLink,
.card-side-navigation--next {
  right: max(14px, calc((100vw - 1100px) / 2 - 112px)) !important;
}

#previousGameLink:hover,
#nextGameLink:hover,
.card-side-navigation:hover,
#previousGameLink:focus-visible,
#nextGameLink:focus-visible,
.card-side-navigation:focus-visible {
  border-color: var(--green) !important;
  background: rgba(12, 30, 20, 0.98) !important;
  box-shadow: var(--shadow-md), var(--glow-green) !important;
  outline: none;
}

#previousGameLink:active,
#nextGameLink:active,
.card-side-navigation:active {
  transform: translateY(-50%) scale(0.92) !important;
}

@media (max-width: 1179px) {
  #previousGameLink,
  #nextGameLink,
  .card-side-navigation {
    top: auto !important;
    bottom: 18px !important;
    width: 58px !important;
    height: 58px !important;
    min-height: 58px !important;
    transform: none !important;
  }

  #previousGameLink,
  .card-side-navigation--previous {
    left: 14px !important;
  }

  #nextGameLink,
  .card-side-navigation--next {
    right: 14px !important;
  }

  #previousGameLink:active,
  #nextGameLink:active,
  .card-side-navigation:active {
    transform: scale(0.92) !important;
  }
}

/* Pitcher table compact header and rank-by-color display */
.pitcher-meta-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.2rem;
}
.pitcher-meta-line p {
  margin: 0;
  min-width: 0;
}
.pitcher-lineup-inline {
  flex: 0 0 auto;
  font-size: 0.68rem;
  line-height: 1;
  color: var(--muted, #a9b6b0);
  letter-spacing: 0.025em;
  white-space: nowrap;
  opacity: 0.82;
}
.pitcher-lineup-inline.lineup-status-confirmed {
  color: var(--green, #44ff9a);
  opacity: 1;
}
.pitcher-rank-table .pitcher-stat-cell {
  min-width: 5.25rem;
  text-align: center;
  cursor: help;
}
.pitcher-rank-table .pitcher-group-heading th {
  text-align: center;
}
.pitcher-rank-table .pitcher-group-heading th:first-child {
  text-align: left;
}
@media (max-width: 760px) {
  .pitcher-meta-line {
    align-items: flex-start;
  }
  .pitcher-lineup-inline {
    font-size: 0.62rem;
    white-space: normal;
    text-align: right;
    max-width: 9rem;
  }
}

/* Keep the visible number and offense rank synchronized with the heat class. */
.data-table td.metric-elite,
.data-table td.metric-elite .metric-value,
.data-table td.metric-elite.rank-cell { color: #63ff9b !important; }
.data-table td.metric-good,
.data-table td.metric-good .metric-value,
.data-table td.metric-good.rank-cell { color: #a2f5bf !important; }
.data-table td.metric-average,
.data-table td.metric-average .metric-value,
.data-table td.metric-average.rank-cell { color: var(--text) !important; }
.data-table td.metric-poor,
.data-table td.metric-poor .metric-value,
.data-table td.metric-poor.rank-cell { color: #ffadb8 !important; }
.data-table td.metric-awful,
.data-table td.metric-awful .metric-value,
.data-table td.metric-awful.rank-cell { color: #ff7184 !important; }

/* Matchup-aware offense and independent pitcher location controls */
.pitcher-location-control {
  display: inline-flex;
  gap: 0.35rem;
  margin: 0.65rem 0 0.8rem;
  padding: 0.25rem;
  border: 1px solid rgba(80, 255, 180, 0.2);
  border-radius: 999px;
  background: rgba(4, 15, 13, 0.72);
}
.pitcher-location-control button {
  border: 0;
  border-radius: 999px;
  padding: 0.42rem 0.72rem;
  color: var(--muted);
  background: transparent;
  font: inherit;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}
.pitcher-location-control button:hover,
.pitcher-location-control button.active {
  color: #03110b;
  background: var(--green, #44ff9a);
}
.offense-data-table th,
.offense-data-table td {
  white-space: nowrap;
}

/* Phase 8B — Matchup Intelligence */
.matchup-intelligence-card {
  border: 1px solid rgba(72, 255, 166, 0.2);
  border-radius: 16px;
  padding: 1rem;
  background: linear-gradient(180deg, rgba(5, 20, 17, 0.94), rgba(3, 12, 11, 0.96));
}
.matchup-intelligence-heading,
.matchup-summary-strip {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
}
.matchup-intelligence-heading h3 { margin: .2rem 0; }
.matchup-intelligence-heading p { margin: 0; color: var(--muted); font-size: .78rem; }
.matchup-lineup-status { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.matchup-summary-strip {
  margin: .85rem 0;
  padding: .65rem .75rem;
  border-radius: 10px;
  background: rgba(255,255,255,.035);
  font-size: .76rem;
}
.matchup-summary-strip strong { color: var(--green, #44ff9a); }
.matchup-lineup-order {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .35rem;
  margin: 0 0 .9rem;
  padding: 0;
  list-style: none;
}
.matchup-lineup-order li {
  display: grid;
  grid-template-columns: 1.25rem minmax(0,1fr) auto;
  align-items: center;
  gap: .35rem;
  padding: .45rem .5rem;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px;
  font-size: .72rem;
}
.matchup-order-number { color: var(--muted); }
.matchup-player-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.matchup-bat-side { font-weight: 800; font-size: .65rem; }
.matchup-bat-side.bats-left { color: #65e9ff; }
.matchup-bat-side.bats-right { color: #ffbd78; }
.matchup-comparison-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .5rem;
}
.matchup-comparison-item {
  padding: .65rem;
  border-radius: 10px;
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(255,255,255,.06);
}
.matchup-comparison-item span,
.matchup-comparison-item small { display:block; }
.matchup-comparison-item span { color: var(--muted); font-size: .68rem; }
.matchup-comparison-item strong { display:block; margin:.18rem 0; }
.matchup-comparison-item small { font-size:.68rem; color:inherit; opacity:.82; }
.matchup-notes { margin-top:.85rem; padding-top:.7rem; border-top:1px solid rgba(255,255,255,.07); }
.matchup-notes h4 { margin:0 0 .45rem; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; }
.matchup-notes p { margin:.38rem 0; font-size:.76rem; line-height:1.45; }
.matchup-notes p.strength strong { color:#63ff9b; }
.matchup-notes p.concern strong { color:#ff7184; }
@media (max-width:760px) {
  .matchup-lineup-order { grid-template-columns: 1fr; }
  .matchup-comparison-grid { grid-template-columns: 1fr; }
}

/* Phase 8B: batter-vs-pitcher lineup history */
.matchup-lineup-order .matchup-bvp-row {
  display: grid;
  grid-template-columns: 2rem minmax(8rem, 1fr) 4.5rem repeat(5, minmax(3.6rem, auto));
  gap: .55rem;
  align-items: center;
  opacity: var(--bvp-opacity, .22);
  transition: opacity .18s ease, background .18s ease, border-color .18s ease;
}
.matchup-lineup-order .matchup-bvp-row:hover { opacity: 1; }
.matchup-bvp-stat,
.matchup-bvp-empty {
  font-size: .68rem;
  text-align: right;
  white-space: nowrap;
  color: currentColor;
}
.matchup-bvp-stat b { font-variant-numeric: tabular-nums; }
.matchup-bvp-empty { grid-column: span 5; color: var(--muted, #88958f); }
.matchup-bvp-row.bvp-pitcher-strong { color: #ff7184; border-color: rgba(255,113,132,.28); background: rgba(100,25,38,.13); }
.matchup-bvp-row.bvp-pitcher-poor { color: #63ff9b; border-color: rgba(99,255,155,.28); background: rgba(26,90,55,.13); }
.matchup-bvp-row.bvp-neutral-high,
.matchup-bvp-row.bvp-neutral-low { color: var(--text, #ecf4f0); }
.matchup-bvp-row.bvp-missing { color: var(--muted, #88958f); }
@media (max-width: 900px) {
  .matchup-lineup-order .matchup-bvp-row {
    grid-template-columns: 1.75rem minmax(7rem, 1fr) 4rem repeat(3, minmax(3.3rem, auto));
  }
  .matchup-bvp-stat:nth-of-type(4),
  .matchup-bvp-stat:nth-of-type(5) { display: none; }
}
@media (max-width: 620px) {
  .matchup-lineup-order .matchup-bvp-row {
    grid-template-columns: 1.5rem minmax(6.5rem, 1fr) 3.5rem;
    row-gap: .25rem;
  }
  .matchup-bvp-stat,
  .matchup-bvp-empty { grid-column: auto; text-align: left; }
  .matchup-bvp-stat { display: inline-block !important; }
}

/* Phase 8B: clean lineup-history intelligence */
.matchup-lineup-history {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: .7rem 0;
  padding: .75rem;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  background: rgba(255,255,255,.025);
}
.matchup-lineup-history > div:first-child small {
  display: block;
  margin-top: .2rem;
  color: var(--muted);
  font-size: .65rem;
}
.matchup-lineup-history-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(3.2rem, auto));
  gap: .8rem;
}
.matchup-lineup-history-grid span { text-align: right; }
.matchup-lineup-history-grid small,
.matchup-lineup-history-grid strong { display: block; }
.matchup-lineup-history-grid small { color: var(--muted); font-size: .62rem; }
.matchup-lineup-history-grid strong { font-variant-numeric: tabular-nums; }
.matchup-lineup-order .matchup-bvp-shell {
  position: relative;
  display: block;
  overflow: visible;
  padding: 0;
  border: 0;
  background: transparent;
}
.matchup-lineup-order .matchup-bvp-row {
  position: relative;
  display: grid;
  grid-template-columns: 2rem minmax(8rem,1fr) 5rem;
  gap: .55rem;
  align-items: center;
  width: 100%;
  padding: .65rem;
  border: 1px solid currentColor;
  border-radius: 10px;
  color: var(--text);
  text-decoration: none;
  opacity: 1 !important;
  background-color: rgba(255,255,255,calc(.015 + (var(--bvp-bg-opacity, .22) * .08)));
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.matchup-lineup-order .matchup-bvp-row:hover,
.matchup-lineup-order .matchup-bvp-row:focus-visible {
  transform: translateY(-1px);
  outline: none;
}
.matchup-bvp-row.bvp-pitcher-strong {
  color: #ff7184;
  border-color: #ff7184;
  background-color: rgba(119,28,43,calc(.02 + (var(--bvp-bg-opacity, .22) * .16)));
}
.matchup-bvp-row.bvp-pitcher-poor {
  color: #63ff9b;
  border-color: #63ff9b;
  background-color: rgba(31,108,66,calc(.02 + (var(--bvp-bg-opacity, .22) * .16)));
}
.matchup-bvp-row.bvp-neutral-high,
.matchup-bvp-row.bvp-neutral-low {
  color: var(--text, #ecf4f0);
  border-color: rgba(236,244,240,.45);
  background-color: rgba(236,244,240,calc(.01 + (var(--bvp-bg-opacity, .22) * .06)));
}
.matchup-bvp-row.bvp-missing {
  color: var(--muted, #88958f);
  border-color: rgba(136,149,143,.3);
  background-color: rgba(136,149,143,.02);
}
.matchup-bvp-hovercard {
  position: absolute;
  z-index: 50;
  left: 50%;
  bottom: calc(100% + .5rem);
  transform: translate(-50%, .25rem);
  min-width: 15rem;
  padding: .7rem;
  border: 1px solid currentColor;
  border-radius: 10px;
  background: rgba(5,13,11,.97);
  box-shadow: 0 12px 28px rgba(0,0,0,.35);
  color: inherit;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
}
.matchup-bvp-hovercard strong,
.matchup-bvp-hovercard span,
.matchup-bvp-hovercard small { display: block; }
.matchup-bvp-hovercard span { margin-top: .25rem; color: var(--text); font-size: .7rem; }
.matchup-bvp-hovercard small { margin-top: .35rem; color: var(--muted); font-size: .63rem; }
.matchup-bvp-row:hover .matchup-bvp-hovercard,
.matchup-bvp-row:focus-visible .matchup-bvp-hovercard {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
@media (max-width:760px) {
  .matchup-lineup-history { align-items: flex-start; flex-direction: column; }
  .matchup-lineup-history-grid { width:100%; grid-template-columns:repeat(5,1fr); gap:.35rem; }
  .matchup-lineup-history-grid span { text-align:left; }
  .matchup-lineup-order .matchup-bvp-row { grid-template-columns:1.5rem minmax(6.5rem,1fr) 4rem; }
  .matchup-bvp-hovercard { left:auto; right:0; transform:translateY(.25rem); min-width:min(16rem,80vw); }
  .matchup-bvp-row:hover .matchup-bvp-hovercard,
  .matchup-bvp-row:focus-visible .matchup-bvp-hovercard { transform:translateY(0); }
}


/* Phase 8F: game start times */
.game-card-time {
  font-weight: 700;
  letter-spacing: 0.02em;
}

.game-start-time {
  min-width: 8rem;
  color: #ffffff;
  text-align: center;
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}


/* Phase 8I: hitter-perspective BvP tiers */

/* OPS .650 or lower: poor history for the hitter */
.matchup-bvp-row.bvp-pitcher-strong {
  color: #ff7184;
  border-color: rgba(255, 113, 132, .72);
  background-color: rgba(
    119,
    28,
    43,
    calc(.03 + (var(--bvp-bg-opacity, .22) * .18))
  );
}

/* OPS above .650 and below .850: positive/middle green */
.matchup-bvp-row.bvp-neutral-low,
.matchup-bvp-row.bvp-neutral-high {
  color: #8de5b2;
  border-color: rgba(141, 229, 178, .48);
  background-color: rgba(
    39,
    112,
    72,
    calc(.02 + (var(--bvp-bg-opacity, .22) * .13))
  );
}

/* OPS .850 or higher: strongest green */
.matchup-bvp-row.bvp-pitcher-poor {
  color: #39ff88;
  border-color: #39ff88;
  box-shadow:
    inset 0 0 0 1px rgba(57, 255, 136, .18),
    0 0 10px rgba(57, 255, 136, .08);
  background-color: rgba(
    20,
    132,
    69,
    calc(.05 + (var(--bvp-bg-opacity, .22) * .24))
  );
}


/* Phase 8J: BvP sample-size intensity */

/*
Plate appearances control --bvp-bg-opacity:
few PA = dim
many PA = radiant
*/

/* OPS .650 or lower: red */
.matchup-bvp-row.bvp-pitcher-strong {
  color: #fff5f6;
  border-color: rgba(
    255,
    90,
    112,
    var(--bvp-bg-opacity, .22)
  );
  background-color: rgba(
    125,
    22,
    40,
    var(--bvp-bg-opacity, .22)
  );
  box-shadow:
    inset 0 0 0 1px rgba(
      255,
      113,
      132,
      var(--bvp-bg-opacity, .22)
    ),
    0 0 12px rgba(
      255,
      70,
      96,
      var(--bvp-bg-opacity, .22)
    );
}

/* OPS above .650 and below .850: regular green */
.matchup-bvp-row.bvp-neutral-low,
.matchup-bvp-row.bvp-neutral-high {
  color: #f4fff8;
  border-color: rgba(
    112,
    226,
    157,
    var(--bvp-bg-opacity, .22)
  );
  background-color: rgba(
    28,
    105,
    63,
    var(--bvp-bg-opacity, .22)
  );
  box-shadow:
    inset 0 0 0 1px rgba(
      112,
      226,
      157,
      var(--bvp-bg-opacity, .22)
    ),
    0 0 10px rgba(
      72,
      210,
      130,
      var(--bvp-bg-opacity, .22)
    );
}

/* OPS .850 or higher: super green */
.matchup-bvp-row.bvp-pitcher-poor {
  color: #ffffff;
  border-color: rgba(
    57,
    255,
    136,
    var(--bvp-bg-opacity, .22)
  );
  background-color: rgba(
    18,
    145,
    72,
    var(--bvp-bg-opacity, .22)
  );
  box-shadow:
    inset 0 0 0 1px rgba(
      115,
      255,
      169,
      var(--bvp-bg-opacity, .22)
    ),
    0 0 16px rgba(
      57,
      255,
      136,
      var(--bvp-bg-opacity, .22)
    );
}


/* Phase 9B: bullpen three-day usage graph */

.bullpen-usage {
  margin-top: 1rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(255,255,255,.08);
}

.bullpen-usage-heading {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: baseline;
  margin-bottom: .65rem;
}

.bullpen-usage-heading span {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  color: var(--text, #ecf4f0);
}

.bullpen-usage-heading small {
  color: var(--muted, #88958f);
  font-size: .7rem;
}

.bullpen-usage-chart {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
  align-items: end;
}

.bullpen-usage-day {
  display: grid;
  grid-template-rows:
    4.6rem
    auto
    auto
    auto;
  gap: .18rem;
  min-width: 0;
  text-align: center;
}

.bullpen-usage-track {
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  min-height: 4.6rem;
  border-radius: .55rem;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.025);
}

.bullpen-usage-bar {
  display: block;
  width: 100%;
  height: calc(var(--usage-level, 0) * 100%);
  min-height: 0;
  border-radius: .45rem .45rem .25rem .25rem;
  background:
    linear-gradient(
      180deg,
      rgba(82,255,148,.96),
      rgba(24,132,70,.72)
    );
  box-shadow:
    0 0 12px rgba(57,255,136,.25),
    inset 0 0 10px rgba(255,255,255,.12);
  transition:
    height .25s ease,
    filter .2s ease;
}

.bullpen-card:hover .bullpen-usage-bar {
  filter: brightness(1.12);
}

.bullpen-usage-day > strong {
  color: #63ff9b;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
}

.bullpen-usage-day > small {
  color: var(--text, #ecf4f0);
  font-size: .72rem;
}

.bullpen-usage-day > em {
  overflow: hidden;
  color: var(--muted, #88958f);
  font-size: .65rem;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}


/* Phase 9D: bullpen roster tables */

.bullpen-comparison-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.bullpen-card {
  width: 100%;
  min-width: 0;
}

.bullpen-roster-section {
  margin-top: 1rem;
  padding-top: .9rem;
  border-top: 1px solid rgba(255,255,255,.08);
}

.bullpen-roster-heading {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: .65rem;
}

.bullpen-roster-heading > span {
  color: var(--text, #ecf4f0);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
}

.bullpen-roster-heading > small {
  color: var(--muted, #88958f);
  font-size: .7rem;
}

.bullpen-table-scroll {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: .7rem;
  background: rgba(0,0,0,.16);
  scrollbar-width: thin;
}

.bullpen-roster-table {
  width: 100%;
  min-width: 790px;
  border-collapse: collapse;
  font-size: .76rem;
  font-variant-numeric: tabular-nums;
}

.bullpen-roster-table th,
.bullpen-roster-table td {
  padding: .56rem .48rem;
  border-bottom: 1px solid rgba(255,255,255,.055);
  text-align: center;
  white-space: nowrap;
}

.bullpen-roster-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  color: var(--muted, #88958f);
  background: rgba(9,18,14,.96);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.bullpen-roster-table thead th:first-child,
.bullpen-arm-name {
  text-align: left;
}

.bullpen-roster-table tbody tr:last-child th,
.bullpen-roster-table tbody tr:last-child td {
  border-bottom: 0;
}

.bullpen-roster-table tbody tr:hover {
  background: rgba(99,255,155,.045);
}

.bullpen-arm-name {
  display: flex;
  align-items: center;
  gap: .45rem;
  color: var(--text, #ecf4f0);
  font-weight: 750;
}

.bullpen-il-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.55rem;
  padding: .1rem .28rem;
  border: 1px solid rgba(255,113,132,.55);
  border-radius: .3rem;
  color: #ff8b9a;
  background: rgba(119,28,43,.24);
  font-size: .58rem;
  letter-spacing: .05em;
}

.bullpen-arm-il {
  opacity: .58;
}

.bullpen-role {
  display: inline-flex;
  min-width: 2rem;
  justify-content: center;
  padding: .15rem .32rem;
  border-radius: .3rem;
  color: var(--text, #ecf4f0);
  background: rgba(255,255,255,.07);
  font-size: .65rem;
  font-weight: 850;
}

.bullpen-role-cl {
  color: #63ff9b;
  background: rgba(31,108,66,.22);
}

.bullpen-role-su {
  color: #9ceec0;
  background: rgba(39,112,72,.16);
}

.bullpen-pitches {
  font-weight: 800;
}

.bullpen-pitches-rested {
  color: var(--muted, #88958f);
}

.bullpen-pitches-light {
  color: #b9eccc;
  background: rgba(39,112,72,.09);
}

.bullpen-pitches-medium {
  color: #ffd27b;
  background: rgba(131,91,18,.14);
}

.bullpen-pitches-heavy {
  color: #ff8b9a;
  background: rgba(119,28,43,.2);
}

@media (max-width: 760px) {
  .bullpen-roster-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: .2rem;
  }

  .bullpen-roster-table {
    min-width: 760px;
  }
}

/* Phase 9E: collapsible bullpen roster */

.bullpen-widget-shell {
  width: 100%;
}

.bullpen-details-link {
  position: relative;
  z-index: 2;
}

.bullpen-roster-toggle {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: .8rem .85rem;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: .7rem;
  color: var(--text, #ecf4f0);
  background:
    linear-gradient(
      90deg,
      rgba(28,75,50,.19),
      rgba(7,17,12,.88)
    );
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.bullpen-roster-toggle:hover {
  border-color: rgba(99,255,155,.25);
  background:
    linear-gradient(
      90deg,
      rgba(33,92,60,.24),
      rgba(7,17,12,.92)
    );
}

.bullpen-toggle-title {
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .11em;
  white-space: nowrap;
}

.bullpen-toggle-summary {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 1.15rem;
}

.bullpen-toggle-stat {
  display: inline-flex;
  align-items: baseline;
  gap: .38rem;
  white-space: nowrap;
}

.bullpen-toggle-stat small {
  color: var(--muted, #88958f);
  font-size: .65rem;
  font-weight: 700;
}

.bullpen-toggle-stat strong {
  color: var(--text, #ecf4f0);
  font-size: .82rem;
  font-variant-numeric: tabular-nums;
}

.bullpen-toggle-chevron {
  color: var(--muted, #88958f);
  font-size: .72rem;
  transition: transform .18s ease;
}

.bullpen-roster-toggle.is-open
.bullpen-toggle-chevron {
  transform: rotate(180deg);
}

.bullpen-roster-unavailable {
  cursor: default;
}

.bullpen-roster-panel {
  margin-top: .7rem;
}

.bullpen-roster-panel[hidden] {
  display: none !important;
}

.bullpen-roster-table {
  min-width: 900px;
}

.bullpen-roster-table thead th:first-child {
  position: sticky;
  left: 0;
  z-index: 5;
  width: 185px;
  min-width: 185px;
  max-width: 185px;
  background: rgba(9,18,14,.99);
  box-shadow: 8px 0 12px rgba(0,0,0,.23);
}

.bullpen-roster-table
tbody
.bullpen-arm-name {
  position: sticky;
  left: 0;
  z-index: 3;
  width: 185px;
  min-width: 185px;
  max-width: 185px;
  background: rgba(9,18,14,.98);
  box-shadow: 8px 0 12px rgba(0,0,0,.2);
}

.bullpen-arm-name-inner {
  display: flex;
  align-items: center;
  gap: .45rem;
  min-width: 0;
}

.bullpen-arm-name-inner > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bullpen-roster-table
tbody tr:hover
.bullpen-arm-name {
  background: rgba(13,29,21,.99);
}

.bullpen-roster-table th:not(:first-child),
.bullpen-roster-table td {
  min-width: 64px;
}

.bullpen-roster-table th:nth-child(8),
.bullpen-roster-table th:nth-child(9),
.bullpen-roster-table th:nth-child(10),
.bullpen-roster-table td:nth-child(8),
.bullpen-roster-table td:nth-child(9),
.bullpen-roster-table td:nth-child(10) {
  min-width: 54px;
}

@media (max-width: 760px) {
  .bullpen-roster-toggle {
    grid-template-columns: 1fr auto;
    gap: .65rem;
  }

  .bullpen-toggle-summary {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: space-between;
    gap: .5rem;
  }

  .bullpen-toggle-chevron {
    grid-column: 2;
    grid-row: 1;
  }

  .bullpen-toggle-stat {
    flex-direction: column;
    align-items: flex-start;
    gap: .12rem;
  }

  .bullpen-roster-table {
    min-width: 880px;
  }

  .bullpen-roster-table thead th:first-child,
  .bullpen-roster-table
  tbody
  .bullpen-arm-name {
    width: 155px;
    min-width: 155px;
    max-width: 155px;
  }
}


/* Phase 9H: bullpen value heat */

.bullpen-roster-table
td[class*="metric-"] {
  font-weight: 800;
  transition:
    color 120ms ease,
    background 120ms ease;
}

.bullpen-toggle-stat
strong[class*="metric-"] {
  display: inline-flex;
  justify-content: center;
  min-width: 1.65rem;
  padding: .12rem .3rem;
  border-radius: .28rem;
  font-weight: 900;
  box-shadow: none;
}

.bullpen-pitches.metric-elite {
  color: #63ff9b;
  background: rgba(57,255,136,.18);
}

.bullpen-pitches.metric-good {
  color: #a2f5bf;
  background: rgba(57,255,136,.08);
}

.bullpen-pitches.metric-average {
  color: var(--text);
  background: rgba(130,144,135,.05);
}

.bullpen-pitches.metric-poor {
  color: #ffadb8;
  background: rgba(255,97,117,.08);
}

.bullpen-pitches.metric-awful {
  color: #ff7184;
  background: rgba(255,97,117,.17);
}


/* Phase 9I: bullpen text-only heat */

.bullpen-widget-shell
[class*="metric-"],
.bullpen-widget-shell
.bullpen-pitches[class*="metric-"] {
  background: transparent;
  box-shadow: none;
}

.bullpen-widget-shell
.bullpen-zero {
  color: var(--muted);
  background: transparent;
  box-shadow: none;
}

.bullpen-toggle-stat
strong[class*="metric-"] {
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.bullpen-roster-table
td[class*="metric-"] {
  background: transparent;
  box-shadow: none;
}

/* Phase 9J: bullpen neutral roles and compact ranks */

.bullpen-widget-shell .bullpen-role,
.bullpen-widget-shell [class*="bullpen-role-"] {
  color: var(--muted) !important;
  background: rgba(130, 144, 135, .08) !important;
  border-color: rgba(130, 144, 135, .24) !important;
  box-shadow: none !important;
}

/* Bullpen heat affects text only. */
.bullpen-widget-shell .metric-elite {
  color: #63ff9b !important;
  background: transparent !important;
  box-shadow: none !important;
}

.bullpen-widget-shell .metric-good {
  color: #a2f5bf !important;
  background: transparent !important;
  box-shadow: none !important;
}

.bullpen-widget-shell .metric-average {
  color: var(--text) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.bullpen-widget-shell .metric-poor {
  color: #ffadb8 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.bullpen-widget-shell .metric-awful {
  color: #ff7184 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.bullpen-widget-shell .metric-missing,
.bullpen-widget-shell .bullpen-zero {
  color: var(--muted) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.bullpen-summary-stat {
  align-content: start;
}

.bullpen-rank-line {
  display: grid;
  grid-template-columns: minmax(38px, 1fr) auto;
  align-items: center;
  gap: .35rem;
  width: 100%;
  margin-top: .28rem;
}

.bullpen-rank-track {
  display: block;
  height: 3px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(130, 144, 135, .20);
}

.bullpen-rank-fill {
  display: block;
  height: 100%;
  min-width: 0;
  border-radius: inherit;
  background: currentColor !important;
  box-shadow: none !important;
}

.bullpen-rank-label {
  color: var(--muted);
  font-size: .58rem;
  line-height: 1;
  white-space: nowrap;
}

/* Phase 9K: centered bullpen stat and rank numbers */

.bullpen-summary-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.bullpen-summary-label,
.bullpen-summary-value,
.bullpen-summary-rank {
  display: block;
  width: 100%;
  text-align: center;
}

.bullpen-summary-value {
  margin-top: .15rem;
  font-weight: 900;
}

.bullpen-summary-rank {
  margin-top: .22rem;
  font-size: .68rem;
  font-weight: 900;
  line-height: 1;
}

.bullpen-rank-line,
.bullpen-rank-track,
.bullpen-rank-fill,
.bullpen-rank-label {
  display: none !important;
}

.bullpen-roster-table
.bullpen-pitches.bullpen-zero {
  color: var(--muted) !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Phase 9N: bullpen heading and colored metric labels */

.bullpen-summary-label[class*="metric-"] {
  background: transparent !important;
  box-shadow: none !important;
  text-align: center;
  font-weight: 800;
}


/* Phase 9P: bullpen inline roles and sample warning */

.bullpen-roster-table thead th:first-child,
.bullpen-roster-table tbody .bullpen-arm-name {
  width: 225px;
  min-width: 225px;
  max-width: 225px;
}

.bullpen-arm-name-inner {
  display: flex;
  align-items: center;
  gap: .35rem;
  width: 100%;
  white-space: nowrap;
}

.bullpen-arm-player-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bullpen-arm-name .bullpen-role {
  flex: 0 0 auto;
}

.bullpen-small-sample-warning {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  border: 1px solid rgba(92, 177, 255, .65);
  border-radius: 50%;
  color: #78bdff;
  background: rgba(70, 151, 255, .12);
  font-size: .7rem;
  font-weight: 900;
  line-height: 1;
  cursor: help;
}

@media (max-width: 760px) {
  .bullpen-roster-table thead th:first-child,
  .bullpen-roster-table tbody .bullpen-arm-name {
    width: 190px;
    min-width: 190px;
    max-width: 190px;
  }
}

/* Phase 9Q: bullpen workload cell heat */

.bullpen-widget-shell
.bullpen-roster-table
td.bullpen-pitches.metric-elite {
  color: #63ff9b !important;
  background: rgba(57, 255, 136, .18) !important;
  box-shadow: inset 0 0 0 1px rgba(57, 255, 136, .22) !important;
}

.bullpen-widget-shell
.bullpen-roster-table
td.bullpen-pitches.metric-good {
  color: #a2f5bf !important;
  background: rgba(57, 255, 136, .09) !important;
  box-shadow: inset 0 0 0 1px rgba(57, 255, 136, .12) !important;
}

.bullpen-widget-shell
.bullpen-roster-table
td.bullpen-pitches.metric-average {
  color: var(--text) !important;
  background: rgba(150, 160, 155, .11) !important;
  box-shadow: inset 0 0 0 1px rgba(150, 160, 155, .14) !important;
}

.bullpen-widget-shell
.bullpen-roster-table
td.bullpen-pitches.metric-poor {
  color: #ffadb8 !important;
  background: rgba(255, 97, 117, .10) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 97, 117, .16) !important;
}

.bullpen-widget-shell
.bullpen-roster-table
td.bullpen-pitches.metric-awful {
  color: #ff7184 !important;
  background: rgba(255, 97, 117, .20) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 97, 117, .28) !important;
}

.bullpen-widget-shell
.bullpen-roster-table
td.bullpen-pitches.bullpen-zero {
  color: var(--muted) !important;
  background: rgba(130, 144, 135, .09) !important;
  box-shadow: inset 0 0 0 1px rgba(130, 144, 135, .12) !important;
}

/* True pitcher Last Starts control */
.pitcher-start-control {
  display: grid;
  gap: 10px;
  margin: 12px 0;
}

.pitcher-start-toggle {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 13px;
  border: 1px solid rgba(120, 135, 128, 0.35);
  border-radius: 10px;
  background: rgba(10, 15, 13, 0.78);
  color: rgba(238, 244, 241, 0.78);
  cursor: pointer;
}

.pitcher-start-toggle span {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.pitcher-start-toggle small {
  font-size: 0.7rem;
  color: rgba(220, 229, 224, 0.58);
}

.pitcher-start-toggle.active {
  border-color: rgba(79, 255, 153, 0.68);
  background:
    linear-gradient(
      135deg,
      rgba(23, 112, 66, 0.32),
      rgba(7, 18, 13, 0.88)
    );
  box-shadow:
    0 0 18px rgba(35, 255, 130, 0.12);
  color: rgba(232, 255, 241, 0.98);
}

.pitcher-start-toggle.active small {
  color: rgba(132, 255, 181, 0.9);
}

.pitcher-start-slider-panel {
  padding: 12px 14px 10px;
  border: 1px solid rgba(68, 255, 145, 0.24);
  border-radius: 11px;
  background: rgba(5, 12, 9, 0.78);
}

.pitcher-start-slider-heading {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 9px;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: rgba(219, 229, 224, 0.6);
}

.pitcher-start-slider-heading strong {
  color: rgba(117, 255, 174, 0.96);
}

.pitcher-start-slider-panel input[type="range"] {
  width: 100%;
  margin: 2px 0 4px;
  accent-color: #55f596;
  cursor: pointer;
}

.pitcher-start-ticks {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
}

.pitcher-start-ticks button {
  border: 0;
  padding: 4px 2px;
  background: transparent;
  color: rgba(211, 222, 216, 0.52);
  font: inherit;
  font-size: 0.7rem;
  cursor: pointer;
}

.pitcher-start-ticks button.active {
  color: rgba(118, 255, 176, 1);
  font-weight: 800;
}

.pitcher-start-sample {
  margin: 7px 0 0;
  text-align: center;
  font-size: 0.68rem;
  color: rgba(220, 229, 224, 0.62);
}

/* Compact pitcher filters */
.pitcher-filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
  margin: 12px 0;
}

.pitcher-filter-row .pitcher-location-control {
  width: auto;
  margin: 0;
  flex: 0 0 auto;
}

.pitcher-filter-row
.pitcher-location-control button {
  min-height: 34px;
  padding: 5px 10px;
}

.pitcher-start-compact {
  position: relative;
  flex: 0 0 126px;
  height: 34px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: stretch;
  padding: 0 2px;
  border: 1px solid rgba(111, 126, 118, 0.36);
  border-radius: 8px;
  background: rgba(8, 13, 11, 0.76);
  overflow: hidden;
  transition:
    border-color 140ms ease,
    opacity 140ms ease,
    box-shadow 140ms ease;
}

.pitcher-start-compact.inactive {
  opacity: 0.48;
  filter: grayscale(1);
}

.pitcher-start-compact.active {
  border-color: rgba(71, 255, 146, 0.54);
  box-shadow:
    0 0 13px rgba(38, 255, 132, 0.1);
}

.pitcher-start-track {
  position: absolute;
  top: 10px;
  left: 15px;
  right: 15px;
  height: 2px;
  border-radius: 999px;
  background: rgba(182, 194, 188, 0.28);
  pointer-events: none;
}

.pitcher-start-compact.active
.pitcher-start-track {
  background: rgba(68, 255, 145, 0.3);
}

.pitcher-start-compact button {
  position: relative;
  z-index: 1;
  min-width: 0;
  display: grid;
  grid-template-rows: 16px 12px;
  justify-items: center;
  align-items: center;
  padding: 2px 0 1px;
  border: 0;
  background: transparent;
  color: rgba(208, 218, 213, 0.56);
  cursor: pointer;
}

.pitcher-start-dot {
  width: 7px;
  height: 7px;
  align-self: center;
  border-radius: 50%;
  background: rgba(188, 199, 193, 0.72);
  box-shadow:
    0 0 0 2px rgba(7, 12, 10, 0.94);
}

.pitcher-start-compact button small {
  font-size: 0.57rem;
  line-height: 1;
  color: inherit;
}

.pitcher-start-compact button.selected {
  color: rgba(223, 232, 227, 0.9);
  font-weight: 800;
}

.pitcher-start-compact
button.selected
.pitcher-start-dot {
  width: 10px;
  height: 10px;
}

.pitcher-start-compact.active
button.selected {
  color: rgba(105, 255, 169, 1);
}

.pitcher-start-compact.active
button.selected
.pitcher-start-dot {
  background: rgba(74, 255, 151, 1);
  box-shadow:
    0 0 0 2px rgba(7, 20, 13, 0.95),
    0 0 9px rgba(53, 255, 140, 0.65);
}

@media (max-width: 520px) {
  .pitcher-filter-row {
    gap: 6px;
  }

  .pitcher-filter-row
  .pitcher-location-control button {
    padding-left: 7px;
    padding-right: 7px;
  }

  .pitcher-start-compact {
    flex-basis: 118px;
  }
}


/* League-relative pitcher name signal */
.pitcher-name-signal {
  display: inline-block;
  transition:
    color 180ms ease,
    text-shadow 180ms ease,
    filter 180ms ease;
}

.pitcher-name-signal.pitcher-signal-strong-positive {
  color: #79ffac;
  text-shadow:
    0 0 9px rgba(57, 255, 136, 0.66),
    0 0 24px rgba(57, 255, 136, 0.28);
}

.pitcher-name-signal.pitcher-signal-positive {
  color: #b3f5c9;
  text-shadow:
    0 0 12px rgba(57, 255, 136, 0.25);
}

.pitcher-name-signal.pitcher-signal-neutral {
  color: rgba(235, 243, 239, 0.88);
  text-shadow:
    0 0 10px rgba(170, 184, 177, 0.08);
}

.pitcher-name-signal.pitcher-signal-negative {
  color: #ffadb8;
  text-shadow:
    0 0 12px rgba(255, 71, 96, 0.25);
}

.pitcher-name-signal.pitcher-signal-strong-negative {
  color: #ff7185;
  text-shadow:
    0 0 9px rgba(255, 71, 96, 0.62),
    0 0 24px rgba(255, 71, 96, 0.25);
}


/* TODAY_CARD_GREY_UI
   Gray is the neutral control and system color.
   Green/red are reserved for evaluated values.
*/
.card-page {
  --card-neutral-gray: #aeb8be;
  --card-neutral-gray-soft: #c8d0d4;
  --card-neutral-gray-dark: #69757c;
  --card-neutral-gray-bg: rgba(174, 184, 190, 0.08);
  --card-neutral-gray-active: rgba(174, 184, 190, 0.16);
  --card-neutral-gray-border: rgba(174, 184, 190, 0.31);
}

/* Sport selection boxes */
.card-page .sport-switcher-button {
  color: var(--card-neutral-gray) !important;
  background:
    var(--card-neutral-gray-bg) !important;
  border-color:
    var(--card-neutral-gray-border) !important;
  box-shadow: none !important;
}

.card-page .sport-switcher-mark {
  color:
    var(--card-neutral-gray-soft) !important;
  background:
    rgba(174, 184, 190, 0.10) !important;
  border-color:
    var(--card-neutral-gray-border) !important;
  box-shadow: none !important;
}

.card-page .sport-switcher-copy strong {
  color: #d6dcdf !important;
}

.card-page .sport-switcher-copy small {
  color: #89959c !important;
}

.card-page .sport-switcher-button:hover,
.card-page .sport-switcher-button:focus-visible {
  color: #eef1f2 !important;
  background:
    var(--card-neutral-gray-active) !important;
  border-color:
    var(--card-neutral-gray) !important;
  box-shadow:
    0 0 14px
    rgba(174, 184, 190, 0.10) !important;
}

.card-page .sport-switcher-button.is-active,
.card-page .sport-switcher-button[aria-pressed="true"] {
  color: #ffffff !important;
  background:
    linear-gradient(
      135deg,
      rgba(174, 184, 190, 0.20),
      rgba(105, 117, 124, 0.14)
    ) !important;
  border-color:
    var(--card-neutral-gray) !important;
  box-shadow:
    0 0 16px
    rgba(174, 184, 190, 0.12) !important;
}

.card-page .sport-switcher-button.is-active
  .sport-switcher-mark,
.card-page .sport-switcher-button[aria-pressed="true"]
  .sport-switcher-mark {
  color: #ffffff !important;
  background:
    var(--card-neutral-gray-dark) !important;
  border-color:
    var(--card-neutral-gray) !important;
  box-shadow: none !important;
}

/* All / Scheduled / Live / Final filter buttons */
.card-page [data-status-filter] {
  color: var(--card-neutral-gray) !important;
  background:
    var(--card-neutral-gray-bg) !important;
  border-color:
    var(--card-neutral-gray-border) !important;
  box-shadow: none !important;
}

.card-page [data-status-filter]:hover,
.card-page [data-status-filter]:focus-visible,
.card-page [data-status-filter].is-active {
  color: #ffffff !important;
  background:
    var(--card-neutral-gray-active) !important;
  border-color:
    var(--card-neutral-gray) !important;
  box-shadow: none !important;
}

/* Generic sport and league event totals stay neutral gray. */
.card-page [data-sport-count],
.card-page [data-league-count],
.card-page [data-event-count],
.card-page .league-dropdown-status,
.card-page .league-dropdown-status b,
.card-page .league-dropdown-status span {
  color: var(--card-neutral-gray) !important;
  text-shadow: none !important;
}

.card-page .league-dropdown-status i {
  color: var(--card-neutral-gray) !important;
  border-color:
    var(--card-neutral-gray-border) !important;
}

/* The four headline totals receive their calculated scale. */
.card-page .today-card-scaled-summary {
  color:
    rgb(
      var(--summary-r),
      var(--summary-g),
      var(--summary-b)
    ) !important;

  text-shadow:
    0 0 13px
    rgba(
      var(--summary-r),
      var(--summary-g),
      var(--summary-b),
      0.22
    ) !important;

  transition:
    color 180ms ease,
    text-shadow 180ms ease;
}

/*
 * Intentionally unchanged:
 * - side navigation arrows remain green
 * - previous/today/next date controls remain green
 * - favorable game data remains green
 * - unfavorable game data remains red
 * - authentic team-color bleed remains valid
 */


/* ========================================================
   PLAYER INTELLIGENCE PAGE
   ======================================================== */

.player-page {
  min-height: 100vh;
  background:
    radial-gradient(
      circle at 18% 8%,
      rgba(45, 139, 230, 0.08),
      transparent 30%
    ),
    var(--bg);
}

.player-main {
  width: min(1180px, 92%);
  margin: 0 auto;
  padding: 52px 0 86px;
}

.player-loading-card {
  padding: 30px;
  color: var(--muted);
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.player-profile {
  display: grid;
  gap: 18px;
}

.player-profile-hero,
.player-summary-section,
.player-metrics-section {
  background:
    linear-gradient(
      145deg,
      rgba(15, 27, 21, 0.96),
      rgba(6, 14, 10, 0.98)
    );
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
}

.player-profile-hero {
  display: grid;
  grid-template-columns:
    148px
    minmax(0, 1fr)
    minmax(190px, 0.3fr);
  align-items: start;
  gap: 28px;
  padding: 28px;
}

.player-portrait {
  display: grid;
  place-items: center;
  width: 148px;
  aspect-ratio: 3 / 4;
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--font-data);
  font-size: 2.2rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  background:
    linear-gradient(
      145deg,
      rgba(74, 91, 82, 0.65),
      rgba(18, 29, 23, 0.9)
    );
  border: 1px solid var(--border-teal);
  border-radius: var(--radius-md);
}

.player-identity h1 {
  margin: 2px 0 14px;
  font-family: var(--font-heading);
  font-size: clamp(2.8rem, 7vw, 5.8rem);
  line-height: 0.9;
  letter-spacing: -0.055em;
}

.player-profile-name,
.pitcher-name-link {
  text-decoration: none;
}

.player-role-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
}

.player-role-tabs button {
  padding: 8px 13px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid var(--border);
  border-radius: 999px;
  cursor: pointer;
}

.player-role-tabs button.active {
  color: var(--white);
  background: rgba(255, 255, 255, 0.11);
  border-color: rgba(255, 255, 255, 0.27);
}

.player-bio-grid {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.player-bio-grid > div,
.player-summary-grid > div {
  padding: 12px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.player-bio-grid span,
.player-summary-grid span,
.player-signal-card span,
.player-signal-card small {
  display: block;
  color: var(--muted);
  font-family: var(--font-data);
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.player-bio-grid strong {
  display: block;
  margin-top: 4px;
  color: var(--text);
  font-size: 0.82rem;
}

.player-signal-card {
  padding: 18px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.player-signal-card strong {
  display: block;
  margin: 9px 0;
  font-size: 1rem;
  line-height: 1.35;
}

.player-summary-section,
.player-metrics-section {
  padding: 25px;
}

.player-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
}

.player-section-heading h2 {
  font-size: clamp(1.8rem, 4vw, 3rem);
}

.player-section-heading > p {
  max-width: 320px;
  margin: 0;
  color: var(--muted);
  text-align: right;
}

.player-summary-grid {
  display: grid;
  grid-template-columns:
    repeat(8, minmax(0, 1fr));
  gap: 8px;
}

.player-summary-grid strong {
  display: block;
  margin-top: 7px;
  color: var(--white);
  font-family: var(--font-data);
  font-size: 1.08rem;
}

.player-metric-table {
  min-width: 650px;
}

.player-signal-strong-positive {
  color: #79ffac;
  text-shadow:
    0 0 9px rgba(57, 255, 136, 0.66),
    0 0 24px rgba(57, 255, 136, 0.28);
}

.player-signal-positive {
  color: #b3f5c9;
  text-shadow:
    0 0 12px rgba(57, 255, 136, 0.25);
}

.player-signal-neutral {
  color: rgba(235, 243, 239, 0.88);
}

.player-signal-negative {
  color: #ffadb8;
  text-shadow:
    0 0 12px rgba(255, 71, 96, 0.25);
}

.player-signal-strong-negative {
  color: #ff7185;
  text-shadow:
    0 0 9px rgba(255, 71, 96, 0.62),
    0 0 24px rgba(255, 71, 96, 0.25);
}

.pitcher-name-link:hover {
  filter: brightness(1.17);
}

@media (max-width: 900px) {
  .player-profile-hero {
    grid-template-columns:
      112px
      minmax(0, 1fr);
  }

  .player-portrait {
    width: 112px;
  }

  .player-signal-card {
    grid-column: 1 / -1;
  }

  .player-bio-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .player-summary-grid {
    grid-template-columns:
      repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .player-profile-hero {
    grid-template-columns: 1fr;
  }

  .player-portrait {
    width: 105px;
  }

  .player-bio-grid,
  .player-summary-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .player-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .player-section-heading > p {
    text-align: left;
  }
}


/* LINEUP PLAYER PROFILE LINKS */

.lineup-player-profile-link {
  display: inline;
  font: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-decoration: none;
  cursor: pointer;
  transition:
    filter 150ms ease,
    text-shadow 150ms ease;
}

.lineup-player-profile-link:hover,
.lineup-player-profile-link:focus-visible {
  filter: brightness(1.22);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.lineup-player-profile-link.player-signal-strong-positive {
  color: #79ffac !important;
}

.lineup-player-profile-link.player-signal-positive {
  color: #b3f5c9 !important;
}

.lineup-player-profile-link.player-signal-neutral {
  color: rgba(235, 243, 239, 0.88) !important;
}

.lineup-player-profile-link.player-signal-negative {
  color: #ffadb8 !important;
}

.lineup-player-profile-link.player-signal-strong-negative {
  color: #ff7185 !important;
}

/* EXPLICIT HITTER-PERSPECTIVE BVP HIGHLIGHTING */

.matchup-bvp-row.bvp-hitter-strong-positive {
  border-color: rgba(57, 255, 136, 0.62) !important;
  background:
    linear-gradient(
      90deg,
      rgba(
        57,
        255,
        136,
        var(--bvp-bg-opacity, 0.22)
      ),
      rgba(57, 255, 136, 0.055)
    ) !important;
  box-shadow:
    inset 3px 0 0 rgba(57, 255, 136, 0.92),
    0 0 13px rgba(57, 255, 136, 0.11);
}

.matchup-bvp-row.bvp-hitter-positive {
  border-color: rgba(116, 230, 157, 0.36) !important;
  background:
    linear-gradient(
      90deg,
      rgba(
        57,
        255,
        136,
        calc(var(--bvp-bg-opacity, 0.22) * 0.66)
      ),
      rgba(57, 255, 136, 0.025)
    ) !important;
  box-shadow:
    inset 3px 0 0 rgba(116, 230, 157, 0.68);
}

.matchup-bvp-row.bvp-hitter-negative {
  border-color: rgba(255, 109, 126, 0.38) !important;
  background:
    linear-gradient(
      90deg,
      rgba(
        255,
        77,
        99,
        calc(var(--bvp-bg-opacity, 0.22) * 0.66)
      ),
      rgba(255, 77, 99, 0.025)
    ) !important;
  box-shadow:
    inset 3px 0 0 rgba(255, 109, 126, 0.7);
}

.matchup-bvp-row.bvp-hitter-strong-negative {
  border-color: rgba(255, 77, 99, 0.65) !important;
  background:
    linear-gradient(
      90deg,
      rgba(
        255,
        77,
        99,
        var(--bvp-bg-opacity, 0.22)
      ),
      rgba(255, 77, 99, 0.055)
    ) !important;
  box-shadow:
    inset 3px 0 0 rgba(255, 77, 99, 0.94),
    0 0 13px rgba(255, 77, 99, 0.11);
}

.matchup-bvp-row.bvp-missing {
  border-color: rgba(255, 255, 255, 0.07) !important;
  background: rgba(255, 255, 255, 0.025) !important;
  box-shadow: none;
}

/* GAME PAGE MODULE HEADING CONTRACT */

:root {
  --game-module-heading-size: 1rem;
  --pitcher-name-size:
    calc(var(--game-module-heading-size) * 2);
}

.offense-comparison-card
.module-heading h3,

.bullpen-widget-shell
.module-heading h3 {
  margin: 0;
  font-size:
    var(--game-module-heading-size);
  font-weight: 900;
  line-height: 1.1;
}

.pitcher-name-row {
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 10px;
  margin-bottom: 4px;
  max-width: 100%;
}

.pitcher-card-heading
.pitcher-name-heading {
  min-width: 0;
  margin: 0;
  font-size:
    var(--pitcher-name-size) !important;
  font-weight: 900;
  line-height: 1;
}

.pitcher-status-label {
  flex: 0 0 auto;
  color: var(--teal);
  font-size: 0.64rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.075em;
  text-transform: uppercase;
  white-space: nowrap;
}

.offense-comparison-card
.module-heading h3 {
  margin-bottom: 4px;
}

/* END GAME PAGE MODULE HEADING CONTRACT */

/* BULLPEN PITCHER SIGNAL LINKS */

.bullpen-arm-player-link {
  text-decoration: none;
  cursor: pointer;
}

.bullpen-arm-player-link:hover {
  filter: brightness(1.18);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.bullpen-arm-player-link:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 3px;
  border-radius: 2px;
}

/* BULLPEN DIRECT GREEN-TO-RED PITCH GRADIENT */

.bullpen-widget-shell
.bullpen-roster-table
td.bullpen-pitches.bullpen-pitch-gradient {
  color:
    hsl(
      var(--bullpen-pitch-hue)
      92%
      70%
    ) !important;

  background:
    hsl(
      var(--bullpen-pitch-hue)
      82%
      46%
      /
      var(--bullpen-pitch-alpha)
    ) !important;

  box-shadow:
    inset 0 0 0 1px
    hsl(
      var(--bullpen-pitch-hue)
      88%
      58%
      /
      calc(
        var(--bullpen-pitch-alpha)
        + 0.06
      )
    ) !important;

  font-weight: 900;
  transition:
    color 160ms ease,
    background 160ms ease,
    box-shadow 160ms ease;
}

/* PITCHER CONTROL QUALITY HEAT
   Five-level scale:
   strong red → light red → grey →
   light green → strong green.
   Bullpen workload gradients are unaffected.
*/

.pitcher-location-control
button.pitcher-control-signal,
.pitcher-start-compact
button.pitcher-control-signal {
  transition:
    color 150ms ease,
    background 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease,
    filter 150ms ease,
    transform 150ms ease;
}

.pitcher-location-control
button.pitcher-control-signal {
  border:
    1px solid transparent;
}

/* Keep every start-count signal visible,
   including while Season mode is active. */
.pitcher-start-compact.inactive {
  opacity: 1;
  filter: none;
}

.pitcher-start-compact.active,
.pitcher-start-compact.inactive {
  border-color:
    rgba(150, 162, 156, 0.32);
  box-shadow: none;
}

.pitcher-start-compact
.pitcher-start-track,
.pitcher-start-compact.active
.pitcher-start-track {
  background:
    rgba(160, 172, 166, 0.28);
}


/* Strong positive */

.pitcher-location-control
button.pitcher-signal-strong-positive,
.pitcher-start-compact
button.pitcher-signal-strong-positive {
  color: #79ffac !important;
  background:
    rgba(57, 255, 136, 0.20) !important;
  border-color:
    rgba(57, 255, 136, 0.56) !important;
}

.pitcher-start-compact
button.pitcher-signal-strong-positive
.pitcher-start-dot {
  background: #39ff88 !important;
  box-shadow:
    0 0 0 2px rgba(5, 18, 11, 0.94),
    0 0 8px rgba(57, 255, 136, 0.58) !important;
}


/* Positive */

.pitcher-location-control
button.pitcher-signal-positive,
.pitcher-start-compact
button.pitcher-signal-positive {
  color: #b3f5c9 !important;
  background:
    rgba(57, 255, 136, 0.09) !important;
  border-color:
    rgba(57, 255, 136, 0.30) !important;
}

.pitcher-start-compact
button.pitcher-signal-positive
.pitcher-start-dot {
  background: #a2f5bf !important;
  box-shadow:
    0 0 0 2px rgba(5, 18, 11, 0.94),
    0 0 6px rgba(57, 255, 136, 0.30) !important;
}


/* Neutral middle */

.pitcher-location-control
button.pitcher-signal-neutral,
.pitcher-start-compact
button.pitcher-signal-neutral {
  color:
    rgba(224, 231, 227, 0.82) !important;
  background:
    rgba(145, 157, 151, 0.10) !important;
  border-color:
    rgba(160, 172, 166, 0.28) !important;
}

.pitcher-start-compact
button.pitcher-signal-neutral
.pitcher-start-dot {
  background:
    rgba(188, 199, 193, 0.82) !important;
  box-shadow:
    0 0 0 2px rgba(7, 12, 10, 0.94) !important;
}


/* Negative */

.pitcher-location-control
button.pitcher-signal-negative,
.pitcher-start-compact
button.pitcher-signal-negative {
  color: #ffadb8 !important;
  background:
    rgba(255, 97, 117, 0.09) !important;
  border-color:
    rgba(255, 97, 117, 0.30) !important;
}

.pitcher-start-compact
button.pitcher-signal-negative
.pitcher-start-dot {
  background: #ffadb8 !important;
  box-shadow:
    0 0 0 2px rgba(20, 7, 10, 0.94),
    0 0 6px rgba(255, 97, 117, 0.30) !important;
}


/* Strong negative */

.pitcher-location-control
button.pitcher-signal-strong-negative,
.pitcher-start-compact
button.pitcher-signal-strong-negative {
  color: #ff7185 !important;
  background:
    rgba(255, 97, 117, 0.20) !important;
  border-color:
    rgba(255, 97, 117, 0.58) !important;
}

.pitcher-start-compact
button.pitcher-signal-strong-negative
.pitcher-start-dot {
  background: #ff6175 !important;
  box-shadow:
    0 0 0 2px rgba(20, 7, 10, 0.94),
    0 0 8px rgba(255, 97, 117, 0.58) !important;
}


/* Active selection keeps its grade and
   gains emphasis rather than turning green. */

.pitcher-location-control
button.pitcher-control-signal.active,
.pitcher-start-compact
button.pitcher-control-signal.selected {
  color: inherit;
  font-weight: 900;
  filter: brightness(1.20);
  transform: translateY(-1px);
  outline:
    1px solid currentColor;
  outline-offset: -1px;
  box-shadow:
    0 0 10px currentColor !important;
}

.pitcher-start-compact
button.pitcher-control-signal.selected
.pitcher-start-dot {
  width: 10px;
  height: 10px;
  background:
    currentColor !important;
  box-shadow:
    0 0 0 2px rgba(7, 12, 10, 0.96),
    0 0 10px currentColor !important;
}

.pitcher-location-control
button.pitcher-control-signal:hover,
.pitcher-location-control
button.pitcher-control-signal:focus-visible,
.pitcher-start-compact
button.pitcher-control-signal:hover,
.pitcher-start-compact
button.pitcher-control-signal:focus-visible {
  filter: brightness(1.16);
  outline:
    1px solid currentColor;
  outline-offset: -1px;
}

/* PITCHER START OUTER BOX REMOVAL
   Keep the five evaluated start controls.
   Remove only their protruding outer shell.
*/

.pitcher-start-compact,
.pitcher-start-compact.active,
.pitcher-start-compact.inactive {
  padding-left: 0 !important;
  padding-right: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible;
}

.pitcher-start-compact.active,
.pitcher-start-compact.inactive {
  opacity: 1;
  filter: none;
}

/* PITCHER START DRAG SCRUBBING */

.pitcher-start-compact {
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
  cursor: default;
}

.pitcher-start-compact
button[data-pitcher-start-count] {
  cursor: pointer;
}

.pitcher-start-compact.is-scrubbing
.pitcher-start-track {
  height: 3px;
  opacity: 1;
  filter: brightness(1.25);
}

.pitcher-start-compact
button.scrub-preview {
  z-index: 3;
  filter: brightness(1.24);
  transform:
    translateY(-1px)
    scale(1.06);
}

.pitcher-start-compact
button.scrub-preview
.pitcher-start-dot {
  width: 12px !important;
  height: 12px !important;
  background: currentColor !important;
  box-shadow:
    0 0 0 2px rgba(7, 12, 10, 0.96),
    0 0 12px currentColor !important;
}

/* OFFENSE TIMEFRAME QUALITY HEAT
   strong red → light red → grey →
   light green → strong green
*/

.offense-timeframe-control
button.offense-control-signal {
  border:
    1px solid transparent !important;

  transition:
    color 150ms ease,
    background 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease,
    filter 150ms ease,
    transform 150ms ease;
}


/* Strong positive */

.offense-timeframe-control
button.offense-signal-strong-positive {
  color: #79ffac !important;

  background:
    rgba(57, 255, 136, 0.20) !important;

  border-color:
    rgba(57, 255, 136, 0.56) !important;
}


/* Positive */

.offense-timeframe-control
button.offense-signal-positive {
  color: #b3f5c9 !important;

  background:
    rgba(57, 255, 136, 0.09) !important;

  border-color:
    rgba(57, 255, 136, 0.30) !important;
}


/* Neutral */

.offense-timeframe-control
button.offense-signal-neutral {
  color:
    rgba(224, 231, 227, 0.82) !important;

  background:
    rgba(145, 157, 151, 0.10) !important;

  border-color:
    rgba(160, 172, 166, 0.28) !important;
}


/* Negative */

.offense-timeframe-control
button.offense-signal-negative {
  color: #ffadb8 !important;

  background:
    rgba(255, 97, 117, 0.09) !important;

  border-color:
    rgba(255, 97, 117, 0.30) !important;
}


/* Strong negative */

.offense-timeframe-control
button.offense-signal-strong-negative {
  color: #ff7185 !important;

  background:
    rgba(255, 97, 117, 0.20) !important;

  border-color:
    rgba(255, 97, 117, 0.58) !important;
}


/* Active keeps its actual grade. */

.offense-timeframe-control
button.offense-control-signal.active {
  color: inherit;
  font-weight: 900;
  filter: brightness(1.20);
  transform: translateY(-1px);

  outline:
    1px solid currentColor;

  outline-offset: -1px;

  box-shadow:
    0 0 10px currentColor !important;
}

.offense-timeframe-control
button.offense-control-signal:hover,
.offense-timeframe-control
button.offense-control-signal:focus-visible {
  filter: brightness(1.16);

  outline:
    1px solid currentColor;

  outline-offset: -1px;
}

/* GLOBAL FIVE-TIER HIGHLIGHT CONTROLS */

.game-status-strip {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.global-highlight-controls {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  min-width: 0;
  margin-left: auto;
  padding-left: 10px;
  opacity: 0.70;
  transition:
    opacity 150ms ease;
}

.global-highlight-controls:hover,
.global-highlight-controls:focus-within {
  opacity: 1;
}

.global-highlight-slider {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  margin: 0;
}

.global-highlight-title {
  color:
    rgba(194, 205, 199, 0.72);
  font-size: 0.54rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  line-height: 1;
  white-space: nowrap;
}

.global-highlight-range {
  width: 112px;
  height: 14px;
  margin: 0;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  cursor: pointer;
}

.global-highlight-range::-webkit-slider-runnable-track {
  width: 100%;
  height: 4px;
  background:
    linear-gradient(
      90deg,
      #747e79 0%,
      #9ba39f 42%,
      #c7ceca 72%,
      #f4f7f5 100%
    );
  border:
    1px solid rgba(215, 222, 218, 0.14);
  border-radius: 999px;
}

.global-highlight-range::-webkit-slider-thumb {
  width: 12px;
  height: 12px;
  margin-top: -5px;
  appearance: none;
  -webkit-appearance: none;
  background:
    var(--highlight-thumb-color, #f4f7f5);
  border:
    1px solid rgba(255, 255, 255, 0.78);
  border-radius: 50%;
  box-shadow:
    0 0 6px rgba(244, 247, 245, 0.34);
}

.global-highlight-range::-moz-range-track {
  width: 100%;
  height: 4px;
  background:
    linear-gradient(
      90deg,
      #747e79 0%,
      #9ba39f 42%,
      #c7ceca 72%,
      #f4f7f5 100%
    );
  border:
    1px solid rgba(215, 222, 218, 0.14);
  border-radius: 999px;
}

.global-highlight-range::-moz-range-thumb {
  width: 12px;
  height: 12px;
  background:
    var(--highlight-thumb-color, #f4f7f5);
  border:
    1px solid rgba(255, 255, 255, 0.78);
  border-radius: 50%;
  box-shadow:
    0 0 6px rgba(244, 247, 245, 0.34);
}

.global-highlight-value {
  width: 43px;
  min-width: 43px;
  height: 22px;
  margin: 0;
  padding: 2px 4px;
  color:
    rgba(244, 247, 245, 0.94);
  background:
    rgba(244, 247, 245, 0.08);
  border:
    1px solid rgba(244, 247, 245, 0.25);
  border-radius: 4px;
  outline: none;
  appearance: textfield;
  -moz-appearance: textfield;
  font: inherit;
  font-size: 0.61rem;
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  cursor: text;
}

.global-highlight-value:hover,
.global-highlight-value:focus {
  background:
    rgba(244, 247, 245, 0.14);
  border-color:
    rgba(244, 247, 245, 0.48);
}

.global-highlight-value::-webkit-inner-spin-button,
.global-highlight-value::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
}

.global-neutral-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  margin: 0;
  cursor: pointer;
}

.global-neutral-label {
  color:
    rgba(194, 205, 199, 0.72);
  font-size: 0.54rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  line-height: 1;
}

.global-neutral-toggle input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
  pointer-events: none;
}

.global-neutral-switch {
  position: relative;
  width: 28px;
  height: 14px;
  flex: 0 0 auto;
  background:
    rgba(255, 157, 52, 0.22);
  border:
    1px solid rgba(255, 180, 86, 0.34);
  border-radius: 999px;
  transition:
    background 150ms ease,
    border-color 150ms ease;
}

.global-neutral-switch::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 1px;
  width: 10px;
  height: 10px;
  background: #ffc55b;
  border-radius: 50%;
  transition:
    transform 150ms ease,
    background 150ms ease;
}

.global-neutral-toggle
input:checked
+ .global-neutral-switch {
  background:
    rgba(154, 168, 161, 0.25);
  border-color:
    rgba(199, 211, 205, 0.42);
}

.global-neutral-toggle
input:checked
+ .global-neutral-switch::after {
  transform:
    translateX(14px);
  background: #dce6e1;
}


@media (max-width: 800px) {
  .global-highlight-controls {
    width: 100%;
    justify-content: flex-end;
    margin-left: 0;
    padding:
      5px 0 0;
  }
}


@media (max-width: 520px) {
  .global-highlight-controls {
    justify-content: space-between;
    gap: 8px;
  }

  .global-highlight-range {
    width: 90px;
  }

  .global-highlight-title,
  .global-neutral-label {
    font-size: 0.49rem;
  }
}

/* Spectrum mode:
   green → yellow-green → yellow → orange → red.
   Bullpen metric classes participate in the shared highlighting bar. */

html[data-highlight-neutral="spectrum"]
.global-tier-highlight.metric-elite {
  color: #79ffac !important;
  background:
    rgba(57, 255, 136, 0.20) !important;
  box-shadow:
    inset 0 0 0 1px
    rgba(57, 255, 136, 0.36) !important;
}

html[data-highlight-neutral="spectrum"]
.global-tier-highlight.metric-good {
  color: #d8f77d !important;
  background:
    rgba(185, 235, 73, 0.15) !important;
  box-shadow:
    inset 0 0 0 1px
    rgba(185, 235, 73, 0.28) !important;
}

html[data-highlight-neutral="spectrum"]
.global-tier-highlight.metric-average {
  color: #ffe06e !important;
  background:
    rgba(255, 210, 65, 0.15) !important;
  box-shadow:
    inset 0 0 0 1px
    rgba(255, 210, 65, 0.28) !important;
}

html[data-highlight-neutral="spectrum"]
.global-tier-highlight.metric-poor {
  color: #ffad5d !important;
  background:
    rgba(255, 137, 48, 0.16) !important;
  box-shadow:
    inset 0 0 0 1px
    rgba(255, 137, 48, 0.30) !important;
}

html[data-highlight-neutral="spectrum"]
.global-tier-highlight.metric-awful {
  color: #ff7185 !important;
  background:
    rgba(255, 71, 96, 0.20) !important;
  box-shadow:
    inset 0 0 0 1px
    rgba(255, 71, 96, 0.36) !important;
}


html[data-highlight-neutral="spectrum"]
.pitcher-name-signal.global-tier-highlight
.pitcher-signal-strong-positive,
html[data-highlight-neutral="spectrum"]
.pitcher-name-signal.global-tier-highlight
.pitcher-signal-positive,
html[data-highlight-neutral="spectrum"]
.pitcher-name-signal.global-tier-highlight
.pitcher-signal-neutral,
html[data-highlight-neutral="spectrum"]
.pitcher-name-signal.global-tier-highlight
.pitcher-signal-negative,
html[data-highlight-neutral="spectrum"]
.pitcher-name-signal.global-tier-highlight
.pitcher-signal-strong-negative {
  color: inherit;
}


/* Pitcher-name spectrum overrides. */

html[data-highlight-neutral="spectrum"]
.pitcher-name-signal.global-tier-highlight.pitcher-signal-strong-positive {
  color: #79ffac !important;
}

html[data-highlight-neutral="spectrum"]
.pitcher-name-signal.global-tier-highlight.pitcher-signal-positive {
  color: #d8f77d !important;
}

html[data-highlight-neutral="spectrum"]
.pitcher-name-signal.global-tier-highlight.pitcher-signal-neutral {
  color: #ffe06e !important;
  text-shadow:
    0 0 10px rgba(255, 210, 65, 0.22);
}

html[data-highlight-neutral="spectrum"]
.pitcher-name-signal.global-tier-highlight.pitcher-signal-negative {
  color: #ffad5d !important;
  text-shadow:
    0 0 10px rgba(255, 137, 48, 0.24);
}

html[data-highlight-neutral="spectrum"]
.pitcher-name-signal.global-tier-highlight.pitcher-signal-strong-negative {
  color: #ff7185 !important;
}


/* Pitcher and offense control spectrum overrides. */

html[data-highlight-neutral="spectrum"]
button.global-tier-highlight.pitcher-signal-strong-positive,
html[data-highlight-neutral="spectrum"]
button.global-tier-highlight.offense-signal-strong-positive {
  color: #79ffac !important;
  background:
    rgba(57, 255, 136, 0.20) !important;
  border-color:
    rgba(57, 255, 136, 0.56) !important;
}

html[data-highlight-neutral="spectrum"]
button.global-tier-highlight.pitcher-signal-positive,
html[data-highlight-neutral="spectrum"]
button.global-tier-highlight.offense-signal-positive {
  color: #d8f77d !important;
  background:
    rgba(185, 235, 73, 0.13) !important;
  border-color:
    rgba(185, 235, 73, 0.38) !important;
}

html[data-highlight-neutral="spectrum"]
button.global-tier-highlight.pitcher-signal-neutral,
html[data-highlight-neutral="spectrum"]
button.global-tier-highlight.offense-signal-neutral {
  color: #ffe06e !important;
  background:
    rgba(255, 210, 65, 0.13) !important;
  border-color:
    rgba(255, 210, 65, 0.38) !important;
}

html[data-highlight-neutral="spectrum"]
button.global-tier-highlight.pitcher-signal-negative,
html[data-highlight-neutral="spectrum"]
button.global-tier-highlight.offense-signal-negative {
  color: #ffad5d !important;
  background:
    rgba(255, 137, 48, 0.14) !important;
  border-color:
    rgba(255, 137, 48, 0.40) !important;
}

html[data-highlight-neutral="spectrum"]
button.global-tier-highlight.pitcher-signal-strong-negative,
html[data-highlight-neutral="spectrum"]
button.global-tier-highlight.offense-signal-strong-negative {
  color: #ff7185 !important;
  background:
    rgba(255, 71, 96, 0.20) !important;
  border-color:
    rgba(255, 71, 96, 0.56) !important;
}


@media (max-width: 700px) {
  .global-highlight-controls {
    width:
      min(210px, calc(100% - 18px));
    gap: 8px;
    margin-right: 8px;
    padding:
      4px 7px 5px;
  }

  .global-highlight-range {
    width: auto;
    flex: 1 1 auto;
  }

  .global-neutral-label {
    font-size: 0.49rem;
  }
}


/* BORING BETS: SLATE LIVE MLB STATE */

.compact-event-card.is-live {
  border-color: rgba(90, 167, 255, 0.54);
  border-color: color-mix(
    in srgb,
    var(--compact-live-vibe-a, #5aa7ff) 56%,
    var(--compact-live-vibe-b, #9674ff) 44%
  );
  box-shadow:
    0 0 0 1px color-mix(
      in srgb,
      var(--compact-live-vibe-a, #5aa7ff) 18%,
      transparent
    ),
    0 0 28px color-mix(
      in srgb,
      var(--compact-live-vibe-b, #9674ff) 18%,
      transparent
    );
}

.compact-event-card.is-live .compact-event-status {
  display: none;
}

.compact-live-state {
  margin: 0.72rem 0 0.64rem;
  overflow: hidden;
  border: 1px solid rgba(90, 167, 255, 0.38);
  border-color: color-mix(
    in srgb,
    var(--compact-live-vibe-a, #5aa7ff) 58%,
    var(--compact-live-vibe-b, #9674ff) 42%
  );
  border-radius: 10px;
  background:
    radial-gradient(
      circle at 26% 0%,
      color-mix(
        in srgb,
        var(--compact-live-vibe-a, #5aa7ff) 17%,
        transparent
      ),
      transparent 48%
    ),
    radial-gradient(
      circle at 78% 100%,
      color-mix(
        in srgb,
        var(--compact-live-vibe-b, #9674ff) 15%,
        transparent
      ),
      transparent 50%
    ),
    rgba(7, 14, 24, 0.9);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.045),
    0 9px 22px rgba(0, 0, 0, 0.24),
    0 0 18px color-mix(
      in srgb,
      var(--compact-live-vibe-a, #5aa7ff) 12%,
      transparent
    );
}













.compact-live-situation {
  display: grid;
  grid-template-columns: minmax(62px, 0.8fr) 64px minmax(42px, auto);
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.72rem 0.72rem 0.76rem;
}

.compact-live-inning {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.compact-live-inning small {
  color: rgba(207, 224, 242, 0.58);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.compact-live-inning strong {
  color: #dceeff;
  font-size: 0.92rem;
  letter-spacing: 0.025em;
  white-space: nowrap;
}

.compact-live-bases {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
}

.compact-base-diamond {
  position: relative;
  width: 52px;
  height: 39px;
}

.compact-base {
  position: absolute;
  width: 12px;
  height: 12px;
  border: 1px solid rgba(216, 231, 246, 0.5);
  background: rgba(190, 211, 230, 0.09);
  transform: rotate(45deg);
  box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.035);
}

.compact-base.is-occupied {
  border-color: rgba(208, 153, 255, 0.98);
  background: #c784ff;
  box-shadow:
    0 0 9px rgba(190, 105, 255, 0.72),
    inset 0 0 3px rgba(255, 255, 255, 0.52);
}

.compact-base-second {
  top: 1px;
  left: 20px;
}

.compact-base-third {
  top: 18px;
  left: 4px;
}

.compact-base-first {
  top: 18px;
  right: 4px;
}

.compact-live-count-groups {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  justify-self: end;
  gap: 0.28rem;
  min-width: 34px;
}

.compact-live-count-group {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 10px;
  padding: 0;
  border: 0;
  background: transparent;
}

.compact-live-pips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.28rem;
  min-height: 12px;
}

.compact-live-pip {
  display: inline-block;
  border: 1px solid rgba(190, 209, 228, 0.42);
  background: rgba(190, 209, 228, 0.1);
  box-shadow: inset 0 0 3px rgba(255, 255, 255, 0.03);
}

.compact-live-pip-circle {
  width: 9px;
  height: 9px;
  border-radius: 999px;
}

.compact-live-pip-square {
  width: 10px;
  height: 10px;
  border-radius: 2px;
}

.compact-live-pip.is-ball-active {
  border-color: rgba(138, 197, 255, 0.98);
  background: #8ac5ff;
  box-shadow:
    0 0 7px rgba(138, 197, 255, 0.7),
    inset 0 0 2px rgba(255, 255, 255, 0.5);
}

.compact-live-pip.is-strike-active {
  border-color: rgba(255, 230, 102, 0.98);
  background: #ffe666;
  box-shadow:
    0 0 7px rgba(255, 230, 102, 0.62),
    inset 0 0 2px rgba(255, 255, 255, 0.46);
}

.compact-live-pip.is-out-active {
  border-color: rgba(255, 171, 82, 0.98);
  background: #ffab52;
  box-shadow:
    0 0 7px rgba(255, 171, 82, 0.62),
    inset 0 0 2px rgba(255, 255, 255, 0.42);
}

@media (max-width: 720px) {
  .compact-live-situation {
    grid-template-columns: minmax(56px, 0.8fr) 58px minmax(34px, auto);
    gap: 0.36rem;
    padding-inline: 0.5rem;
  }

.compact-live-score strong {
    font-size: 1.35rem;
  }

  .compact-live-count-groups {
    gap: 0.22rem;
  }

  .compact-live-pips {
    gap: 0.22rem;
  }
}


/* BORING BETS: COMPACT LIVE COUNT AND BASE BUG V2 */

.compact-live-situation {
  display: grid;
  grid-template-columns:
    minmax(42px, 1fr)
    74px
    minmax(44px, 1fr);
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.68rem 0.72rem;
}

.compact-live-inning {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  justify-self: start;
  min-width: 0;
}

.compact-live-inning small {
  display: none;
}

.compact-live-inning strong {
  color: #dceeff;
  font-size: 0.98rem;
  font-weight: 900;
  letter-spacing: 0.025em;
  line-height: 1;
  white-space: nowrap;
}

.compact-live-bases {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  width: 74px;
  min-width: 74px;
}

.compact-base-diamond.is-standard {
  position: relative;
  width: 62px;
  height: 57px;
  margin: 0 auto;
}

.compact-base-diamond.is-standard .compact-base {
  position: absolute;
  width: 14px;
  height: 14px;
  border: 1px solid rgba(216, 231, 246, 0.5);
  background: rgba(190, 211, 230, 0.09);
  transform: rotate(45deg);
  box-shadow:
    inset 0 0 5px rgba(255, 255, 255, 0.035);
}

.compact-base-diamond.is-standard .compact-base.is-occupied {
  border-color: rgba(208, 153, 255, 0.98);
  background: #c784ff;
  box-shadow:
    0 0 9px rgba(190, 105, 255, 0.72),
    inset 0 0 3px rgba(255, 255, 255, 0.52);
}

.compact-base-diamond.is-standard .compact-base-second {
  top: 0;
  left: 24px;
}

.compact-base-diamond.is-standard .compact-base-third {
  top: 20px;
  left: 7px;
}

.compact-base-diamond.is-standard .compact-base-first {
  top: 20px;
  right: 7px;
}

.compact-base-diamond.is-standard .compact-base-home {
  top: 40px;
  left: 24px;
}

.compact-base-home.is-home-hidden {
  opacity: 0;
  pointer-events: none;
}

.compact-base-home.is-run-badge {
  border-color: rgba(208, 153, 255, 0.98);
  background: rgba(133, 74, 255, 0.31);
  box-shadow:
    0 0 12px rgba(190, 105, 255, 0.78),
    inset 0 0 4px rgba(255, 255, 255, 0.46);
  animation: compact-run-base-pop 2.4s ease both;
}

.compact-base-home em {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(-45deg);
  color: #ffffff;
  font-size: 0.6rem;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
}

.compact-live-count-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  justify-self: end;
  gap: 0.36rem;
  min-width: 44px;
}

.compact-live-count-number {
  color: #eef6ff;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.045em;
  font-variant-numeric: tabular-nums;
  text-shadow:
    0 0 8px rgba(90, 167, 255, 0.24);
}

.compact-live-outs {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.3rem;
  min-height: 12px;
}

.compact-live-outs .compact-live-pip-circle {
  width: 10px;
  height: 10px;
  border-radius: 999px;
}

.compact-live-outs .compact-live-pip.is-out-active {
  border-color: rgba(255, 171, 82, 0.98);
  background: #ffab52;
  box-shadow:
    0 0 7px rgba(255, 171, 82, 0.65),
    inset 0 0 2px rgba(255, 255, 255, 0.42);
}

@keyframes compact-run-base-pop {
  0% {
    opacity: 0;
    transform: rotate(45deg) scale(0.45);
  }

  18% {
    opacity: 1;
    transform: rotate(45deg) scale(1.22);
  }

  34% {
    transform: rotate(45deg) scale(1);
  }

  82% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: rotate(45deg) scale(0.88);
  }
}

@media (max-width: 720px) {
  .compact-live-situation {
    grid-template-columns:
      minmax(38px, 1fr)
      66px
      minmax(40px, 1fr);
    gap: 0.3rem;
    padding-inline: 0.48rem;
  }

  .compact-live-inning strong {
    font-size: 0.9rem;
  }

  .compact-live-bases {
    width: 66px;
    min-width: 66px;
  }

  .compact-base-diamond.is-standard {
    width: 56px;
    height: 53px;
  }

  .compact-base-diamond.is-standard .compact-base {
    width: 13px;
    height: 13px;
  }

  .compact-base-diamond.is-standard .compact-base-second {
    left: 21.5px;
  }

  .compact-base-diamond.is-standard .compact-base-third {
    top: 19px;
    left: 6px;
  }

  .compact-base-diamond.is-standard .compact-base-first {
    top: 19px;
    right: 6px;
  }

  .compact-base-diamond.is-standard .compact-base-home {
    top: 38px;
    left: 21.5px;
  }

  .compact-live-count-number {
    font-size: 0.9rem;
  }

  .compact-live-outs {
    gap: 0.22rem;
  }
}


/* BORING BETS: LIVE STATE ALONGSIDE SCORE V1 */

.compact-event-mainline {
  display: block;
  min-width: 0;
}

.compact-event-mainline.has-live-state {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    clamp(158px, 36%, 190px);
  align-items: stretch;
  gap: 0.65rem;
}

.compact-event-mainline > .compact-event-matchup {
  min-width: 0;
  height: 100%;
}

.compact-event-mainline > .compact-live-state {
  width: 100%;
  min-width: 0;
  margin: 0;
  align-self: stretch;
}

.compact-event-mainline > .compact-live-state
  .compact-live-situation {
  grid-template-columns:
    minmax(34px, 1fr)
    64px
    minmax(38px, 1fr);
  min-height: 100%;
  gap: 0.24rem;
  padding: 0.5rem 0.46rem;
}

.compact-event-mainline > .compact-live-state
  .compact-live-inning strong {
  font-size: 0.86rem;
}

.compact-event-mainline > .compact-live-state
  .compact-live-bases {
  width: 64px;
  min-width: 64px;
}

.compact-event-mainline > .compact-live-state
  .compact-base-diamond.is-standard {
  width: 54px;
  height: 51px;
}

.compact-event-mainline > .compact-live-state
  .compact-base-diamond.is-standard
  .compact-base {
  width: 12px;
  height: 12px;
}

.compact-event-mainline > .compact-live-state
  .compact-base-diamond.is-standard
  .compact-base-second {
  left: 21px;
}

.compact-event-mainline > .compact-live-state
  .compact-base-diamond.is-standard
  .compact-base-third {
  top: 18px;
  left: 6px;
}

.compact-event-mainline > .compact-live-state
  .compact-base-diamond.is-standard
  .compact-base-first {
  top: 18px;
  right: 6px;
}

.compact-event-mainline > .compact-live-state
  .compact-base-diamond.is-standard
  .compact-base-home {
  top: 36px;
  left: 21px;
}

.compact-event-mainline > .compact-live-state
  .compact-live-count-number {
  font-size: 0.88rem;
}

.compact-event-mainline > .compact-live-state
  .compact-live-count-stack {
  min-width: 36px;
}

.compact-event-mainline > .compact-live-state
  .compact-live-outs {
  gap: 0.22rem;
}

.compact-event-mainline > .compact-live-state
  .compact-live-outs
  .compact-live-pip-circle {
  width: 9px;
  height: 9px;
}

/*
  Stack only when the card genuinely becomes too narrow.
  Normal desktop cards retain the side-by-side score-bug layout.
*/
@media (max-width: 560px) {
  .compact-event-mainline.has-live-state {
    grid-template-columns: 1fr;
  }

  .compact-event-mainline > .compact-live-state {
    margin-top: 0.55rem;
  }
}

/* BORING BETS: CLEAN COMPACT LIVE SCOREBOARD V10 */

/*
  Live cards remain in the same grid footprint as postponed cards.
*/
.compact-event-card.is-live {
  grid-column: auto;
}

.compact-event-card.is-live .compact-event-topline {
  display: none;
}

/*
  One integrated live scoreboard:
  two normal compact participant rows,
  then one compact game-state strip.
*/
.approved-live-scoreboard {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  border: 1px solid
    color-mix(
      in srgb,
      var(--compact-live-vibe-a, #5aa7ff) 66%,
      rgba(255, 255, 255, 0.28)
    );
  border-radius: 10px;
  color: inherit;
  text-decoration: none;
  background:
    radial-gradient(
      circle at 78% 84%,
      color-mix(
        in srgb,
        var(--compact-live-vibe-b, #9b63ff) 23%,
        transparent
      ),
      transparent 54%
    ),
    linear-gradient(
      135deg,
      rgba(8, 22, 43, 0.98),
      rgba(20, 18, 57, 0.97)
    );
}

/*
  These rows now use the same compact-participant structure as
  postponed cards, so logo, abbreviation, detail text and score
  inherit the established sizes.
*/
.approved-live-team-panel {
  display: grid;
  grid-template-rows: auto auto;
  min-width: 0;
}

.approved-live-team-row.compact-participant {
  min-width: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.approved-live-team-row + .approved-live-team-row {
  border-top: 1px solid rgba(194, 220, 246, 0.16);
}

.approved-live-team-identity {
  min-width: 0;
}

.approved-live-team-score {
  position: relative;
}

/*
  Bottom live-state strip.
*/
.approved-live-scoreboard > .approved-live-state {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  border: 0;
  border-top: 1px solid rgba(214, 231, 248, 0.2);
  border-radius: 0;
  background: rgba(5, 10, 30, 0.66);
}

.approved-live-scoreboard .compact-live-situation {
  display: grid;
  grid-template-columns:
    48px
    minmax(64px, 1fr)
    64px;
  align-items: center;
  width: 100%;
  min-height: 38px;
  gap: 0.35rem;
  padding: 0.22rem 0.52rem;
}

/*
  Inning: bright neutral white instead of blue on blue.
*/
.approved-live-scoreboard .compact-live-inning {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.22rem;
  min-height: 28px;
  border-right: 1px solid rgba(230, 242, 255, 0.24);
}

.approved-live-inning-marker {
  color: #ffffff;
  font-size: 0.64rem;
  font-weight: 950;
  text-shadow:
    0 0 6px rgba(255, 255, 255, 0.52),
    0 0 13px rgba(115, 221, 255, 0.4);
}

.approved-live-scoreboard .compact-live-inning strong {
  color: #ffffff;
  font-size: 0.94rem;
  font-weight: 950;
  text-shadow: 0 0 9px rgba(115, 221, 255, 0.55);
}

/*
  Bases: bright white empty bases and electric cyan occupied bases.
*/
.approved-live-scoreboard .compact-live-bases {
  width: 62px;
  min-width: 62px;
  justify-self: center;
}

.approved-live-scoreboard .compact-base-diamond.is-standard {
  position: relative;
  width: 52px;
  height: 34px;
  margin: 0 auto;
}

.approved-live-scoreboard
  .compact-base-diamond.is-standard::before {
  content: "";
  position: absolute;
  top: 7px;
  left: 16px;
  width: 19px;
  height: 19px;
  border: 1px solid rgba(242, 249, 255, 0.72);
  transform: rotate(45deg);
}

.approved-live-scoreboard
  .compact-base-diamond.is-standard
  .compact-base {
  position: absolute;
  width: 9px;
  height: 9px;
  border: 1px solid #f4fbff;
  border-radius: 2px;
  background: rgba(245, 251, 255, 0.14);
  box-shadow: 0 0 5px rgba(240, 250, 255, 0.28);
  transform: rotate(45deg);
}

.approved-live-scoreboard
  .compact-base-diamond.is-standard
  .compact-base.is-occupied {
  border-color: #ffffff;
  background: #69e9ff;
  box-shadow:
    0 0 5px rgba(255, 255, 255, 0.84),
    0 0 11px rgba(74, 224, 255, 0.92);
}

.approved-live-scoreboard .compact-base-second {
  top: 0;
  left: 22px;
}

.approved-live-scoreboard .compact-base-third {
  top: 12px;
  left: 9px;
}

.approved-live-scoreboard .compact-base-first {
  top: 12px;
  right: 9px;
}

.approved-live-scoreboard .compact-base-home {
  top: 24px;
  left: 22px;
}

.approved-live-scoreboard
  .compact-base-home.is-home-hidden {
  visibility: hidden;
}

.approved-live-scoreboard
  .compact-base-home.is-run-badge {
  display: grid;
  place-items: center;
  border-color: #ffffff;
  background: #ff5fa2;
  box-shadow:
    0 0 6px rgba(255, 255, 255, 0.72),
    0 0 12px rgba(255, 72, 153, 0.94);
}

.approved-live-scoreboard
  .compact-base-home.is-run-badge em {
  color: #ffffff;
  font-size: 0.43rem;
  font-style: normal;
  font-weight: 950;
  transform: rotate(-45deg);
}

/*
  Count and outs: white count, high-contrast orange outs.
*/
.approved-live-scoreboard .compact-live-count-stack {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.34rem;
  min-height: 28px;
  border-left: 1px solid rgba(230, 242, 255, 0.24);
}

.approved-live-scoreboard .compact-live-count-number {
  color: #ffffff;
  font-size: 0.78rem;
  font-weight: 950;
  text-shadow: 0 0 7px rgba(255, 255, 255, 0.38);
}

.approved-live-scoreboard .compact-live-outs {
  display: flex;
  gap: 0.18rem;
}

.approved-live-scoreboard
  .compact-live-outs
  .compact-live-pip-circle {
  width: 8px;
  height: 8px;
  border: 1px solid rgba(255, 222, 176, 0.9);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
}

.approved-live-scoreboard
  .compact-live-outs
  .compact-live-pip-circle.is-out-active {
  border-color: #fff0d0;
  background: #ff9e2f;
  box-shadow:
    0 0 5px rgba(255, 238, 199, 0.78),
    0 0 10px rgba(255, 143, 35, 0.92);
}

/*
  Preserve the brief red/green score-change glitch.
*/
.approved-live-team-score::before,
.approved-live-team-score::after {
  content: attr(data-score);
  position: absolute;
  inset: 0;
  opacity: 0;
}

.approved-live-team-score.is-score-changing {
  animation: approved-score-flash 1.35s steps(1, end) both;
}

.approved-live-team-score.is-score-changing::before {
  color: #ff394f;
  animation: approved-score-red-ghost 1.35s steps(2, end) both;
}

.approved-live-team-score.is-score-changing::after {
  color: #4cff78;
  animation: approved-score-green-ghost 1.35s steps(2, end) both;
}

@keyframes approved-score-flash {
  0%, 100% {
    color: inherit;
    transform: translateX(0);
  }

  14%, 40% {
    color: #ff394f;
    transform: translateX(-1px);
  }

  24%, 50% {
    color: #4cff78;
    transform: translateX(1px);
  }
}

@keyframes approved-score-red-ghost {
  0%, 100% {
    opacity: 0;
    transform: translateX(0);
  }

  14%, 40% {
    opacity: 0.85;
    transform: translateX(-3px);
  }
}

@keyframes approved-score-green-ghost {
  0%, 100% {
    opacity: 0;
    transform: translateX(0);
  }

  24%, 50% {
    opacity: 0.8;
    transform: translateX(3px);
  }
}


/* BORING BETS: MLB STYLE SEPARATE BASES V11 */

/*
  MLB score-bug style:
  three independent bases with no permanent connecting lines.
*/
.approved-live-scoreboard
  .compact-base-diamond.is-standard::before {
  display: none !important;
  content: none !important;
}

/*
  Tight triangular base arrangement.
*/
.approved-live-scoreboard
  .compact-base-diamond.is-standard {
  position: relative;
  width: 48px !important;
  height: 30px !important;
  margin: 0 auto;
}

/*
  Individual bases.
  Empty bases remain dark and outlined.
  Occupied bases retain the electric-cyan treatment.
*/
.approved-live-scoreboard
  .compact-base-diamond.is-standard
  .compact-base {
  width: 10px !important;
  height: 10px !important;
  border: 1px solid rgba(240, 249, 255, 0.9) !important;
  border-radius: 1px !important;
  background: rgba(3, 12, 29, 0.84) !important;
  box-shadow:
    inset 0 0 3px rgba(255, 255, 255, 0.12),
    0 0 4px rgba(220, 243, 255, 0.22) !important;
  transform: rotate(45deg) !important;
}

.approved-live-scoreboard
  .compact-base-diamond.is-standard
  .compact-base.is-occupied {
  border-color: #ffffff !important;
  background: #69e9ff !important;
  box-shadow:
    0 0 4px rgba(255, 255, 255, 0.92),
    0 0 10px rgba(74, 224, 255, 0.96) !important;
}

/* Second base. */
.approved-live-scoreboard
  .compact-base-second {
  top: 1px !important;
  left: 19px !important;
  right: auto !important;
}

/* Third base. */
.approved-live-scoreboard
  .compact-base-third {
  top: 16px !important;
  left: 5px !important;
  right: auto !important;
}

/* First base. */
.approved-live-scoreboard
  .compact-base-first {
  top: 16px !important;
  right: 5px !important;
  left: auto !important;
}

/*
  Home is normally invisible. It appears only for the temporary
  run-scored indicator.
*/
.approved-live-scoreboard
  .compact-base-home.is-home-hidden {
  display: none !important;
}

.approved-live-scoreboard
  .compact-base-home.is-run-badge {
  top: 29px !important;
  left: 19px !important;
  right: auto !important;
}

/* BORING BETS: SIMPLE FOUR-BASE DIAMOND V12 */

.approved-live-scoreboard
  .compact-base-diamond.is-standard::before {
  display: none !important;
}

.approved-live-scoreboard
  .compact-base-diamond.is-standard {
  position: relative;
  width: 46px !important;
  height: 42px !important;
  margin: 0 auto;
}

.approved-live-scoreboard
  .compact-base-diamond.is-standard
  .compact-base {
  position: absolute;
  width: 10px !important;
  height: 10px !important;
  border: 1px solid #ffffff !important;
  border-radius: 1px !important;
  background: rgba(3, 12, 29, 0.84) !important;
  transform: rotate(45deg) !important;
}

.approved-live-scoreboard
  .compact-base-diamond.is-standard
  .compact-base.is-occupied {
  background: #69e9ff !important;
  box-shadow: 0 0 9px rgba(74, 224, 255, 0.95) !important;
}

/* Second */
.approved-live-scoreboard .compact-base-second {
  top: 1px !important;
  left: 18px !important;
}

/* Third */
.approved-live-scoreboard .compact-base-third {
  top: 16px !important;
  left: 3px !important;
}

/* First */
.approved-live-scoreboard .compact-base-first {
  top: 16px !important;
  right: 3px !important;
  left: auto !important;
}

/* Home: hidden until runs score */
.approved-live-scoreboard .compact-base-home {
  top: 31px !important;
  left: 18px !important;
}

.approved-live-scoreboard
  .compact-base-home.is-home-hidden {
  display: none !important;
}

.approved-live-scoreboard
  .compact-base-home.is-run-badge {
  display: grid !important;
  place-items: center;
  background: #69e9ff !important;
}



/* BORING BETS: GAME CARD BORDER ATMOSPHERE V1 */

.compact-event-card.has-card-atmosphere {
  position: relative;
  isolation: isolate;

  border: 1px solid transparent !important;
  outline: none !important;

  background:
    radial-gradient(
      circle at 15% 12%,
      color-mix(
        in srgb,
        var(--compact-live-vibe-a, #5aa7ff) 17%,
        transparent
      ),
      transparent 45%
    ) padding-box,

    radial-gradient(
      circle at 86% 88%,
      color-mix(
        in srgb,
        var(--compact-live-vibe-b, #9674ff) 16%,
        transparent
      ),
      transparent 48%
    ) padding-box,

    linear-gradient(
      145deg,
      rgba(6, 12, 21, 0.95),
      rgba(4, 9, 17, 0.98)
    ) padding-box,

    linear-gradient(
      115deg,
      var(--compact-live-vibe-a, #5aa7ff),
      var(--compact-live-vibe-b, #9674ff),
      color-mix(
        in srgb,
        var(--compact-live-vibe-a, #5aa7ff) 44%,
        var(--compact-live-vibe-b, #9674ff) 56%
      ),
      var(--compact-live-vibe-a, #5aa7ff)
    ) border-box !important;

  background-size:
    165% 165%,
    165% 165%,
    100% 100%,
    320% 320% !important;

  box-shadow:
    0 8px 22px rgba(0, 0, 0, 0.28),
    0 0 18px
      color-mix(
        in srgb,
        var(--compact-live-vibe-a, #5aa7ff) 16%,
        transparent
      ),
    0 0 24px
      color-mix(
        in srgb,
        var(--compact-live-vibe-b, #9674ff) 12%,
        transparent
      ) !important;

  animation:
    boring-bets-card-border-atmosphere
    13s
    ease-in-out
    infinite alternate;
}

.compact-event-card.has-card-atmosphere.is-final {
  animation-duration: 28s;
  filter: saturate(0.72) brightness(0.88);
}

.compact-event-card.has-card-atmosphere.is-live {
  animation-duration: 8s;
  filter: saturate(1.12) brightness(1.03);
}

@keyframes boring-bets-card-border-atmosphere {
  0% {
    background-position:
      0% 0%,
      100% 100%,
      0 0,
      0% 48%;
  }

  50% {
    background-position:
      55% 35%,
      42% 62%,
      0 0,
      56% 58%;
  }

  100% {
    background-position:
      100% 80%,
      0% 15%,
      0 0,
      100% 42%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .compact-event-card.has-card-atmosphere {
    animation: none !important;
  }
}

/* BORING BETS: GAME HEADER STADIUM WEATHER V1 */

.game-matchup.game-matchup-stadium {
  display: grid;
  grid-template-columns:
    minmax(150px, 0.72fr)
    minmax(390px, 1.56fr)
    minmax(150px, 0.72fr);
  align-items: stretch;
  gap: clamp(0.85rem, 2vw, 1.7rem);
  padding: clamp(0.9rem, 2vw, 1.5rem);
  overflow: hidden;
  border: 1px solid rgba(116, 170, 217, 0.2);
  border-radius: 18px;
  background:
    linear-gradient(90deg, rgba(16, 37, 61, 0.46), transparent 34%),
    linear-gradient(270deg, rgba(36, 22, 47, 0.42), transparent 34%),
    rgba(2, 7, 14, 0.9);
  box-shadow:
    0 20px 48px rgba(0, 0, 0, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.game-matchup-stadium .game-team {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  min-width: 0;
  padding: 0.8rem 0.35rem;
  text-align: center;
}

.game-matchup-stadium .game-team img {
  width: clamp(92px, 10vw, 156px);
  height: clamp(92px, 10vw, 156px);
  object-fit: contain;
  filter: drop-shadow(0 12px 20px rgba(0, 0, 0, 0.5));
}

.game-matchup-stadium .game-team span {
  overflow: hidden;
  max-width: 100%;
  color: #f5f9ff;
  font-size: clamp(1rem, 1.6vw, 1.34rem);
  font-weight: 900;
  letter-spacing: 0.045em;
  line-height: 1.08;
  text-overflow: ellipsis;
  text-transform: uppercase;
}

.game-stadium-weather {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.game-stadium-photo-frame {
  position: relative;
  min-height: clamp(230px, 25vw, 340px);
  overflow: hidden;
  border: 1px solid rgba(115, 202, 255, 0.34);
  border-radius: 16px;
  background: #07101a;
  box-shadow:
    0 18px 36px rgba(0, 0, 0, 0.42),
    0 0 26px rgba(30, 194, 226, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  isolation: isolate;
}

.game-stadium-photo {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.01);
  transition: opacity 180ms ease, filter 260ms ease, transform 6s ease;
}

.game-stadium-photo.is-loading {
  opacity: 0.35;
}

.game-stadium-weather:hover .game-stadium-photo {
  transform: scale(1.035);
}

.game-stadium-photo-shade {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(1, 5, 10, 0.12), rgba(1, 5, 10, 0.04) 42%, rgba(1, 5, 10, 0.86) 100%),
    linear-gradient(90deg, rgba(2, 8, 15, 0.2), transparent 28%, transparent 72%, rgba(2, 8, 15, 0.2));
}

.game-stadium-weather-effect {
  position: absolute;
  inset: -10%;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
}

.game-stadium-weather.is-weather-clear .game-stadium-weather-effect {
  opacity: 0.55;
  background:
    radial-gradient(circle at 72% 8%, rgba(255, 224, 112, 0.72), transparent 28%),
    linear-gradient(180deg, rgba(69, 174, 255, 0.18), transparent 60%);
}

.game-stadium-weather.is-weather-cloudy .game-stadium-photo,
.game-stadium-weather.is-weather-neutral .game-stadium-photo {
  filter: saturate(0.8) brightness(0.78) contrast(1.06);
}

.game-stadium-weather.is-weather-cloudy .game-stadium-weather-effect {
  opacity: 0.72;
  background:
    radial-gradient(ellipse at 22% 14%, rgba(185, 198, 211, 0.45), transparent 34%),
    radial-gradient(ellipse at 74% 10%, rgba(105, 119, 135, 0.55), transparent 38%),
    linear-gradient(180deg, rgba(83, 96, 111, 0.55), transparent 68%);
  filter: blur(8px);
}

.game-stadium-weather.is-weather-rain .game-stadium-photo,
.game-stadium-weather.is-weather-thunder .game-stadium-photo {
  filter: saturate(0.72) brightness(0.62) contrast(1.08) hue-rotate(5deg);
}

.game-stadium-weather.is-weather-rain .game-stadium-weather-effect,
.game-stadium-weather.is-weather-thunder .game-stadium-weather-effect {
  opacity: 0.68;
  background:
    repeating-linear-gradient(105deg, transparent 0 14px, rgba(178, 224, 255, 0.36) 15px 16px, transparent 17px 28px),
    linear-gradient(180deg, rgba(44, 68, 92, 0.58), rgba(14, 32, 49, 0.12));
  background-size: 100% 100%, 100% 100%;
  animation: game-stadium-rain 0.85s linear infinite;
}

.game-stadium-weather.is-weather-thunder .game-stadium-photo-frame {
  animation: game-stadium-lightning 10.5s steps(1, end) infinite;
}

.game-stadium-weather.is-weather-snow .game-stadium-photo {
  filter: saturate(0.65) brightness(0.82) contrast(0.96);
}

.game-stadium-weather.is-weather-snow .game-stadium-weather-effect {
  opacity: 0.74;
  background-image:
    radial-gradient(circle, rgba(255,255,255,0.92) 0 2px, transparent 2.8px),
    radial-gradient(circle, rgba(225,243,255,0.78) 0 1.5px, transparent 2.2px);
  background-size: 42px 42px, 66px 66px;
  animation: game-stadium-snow 7s linear infinite;
}

.game-stadium-weather.is-weather-roofed .game-stadium-photo {
  filter: saturate(0.72) brightness(0.78) contrast(1.08);
}

.game-stadium-weather.is-weather-roofed .game-stadium-weather-effect {
  opacity: 0.34;
  background: linear-gradient(180deg, rgba(171, 188, 201, 0.34), transparent 55%);
}

.game-stadium-weather.is-weather-hot .game-stadium-photo {
  filter: saturate(1.12) sepia(0.08) brightness(0.88);
}

.game-stadium-weather.is-weather-cold .game-stadium-photo {
  filter: saturate(0.76) hue-rotate(9deg) brightness(0.82);
}

.game-stadium-weather.is-weather-windy .game-stadium-weather-effect::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 10%, rgba(152, 239, 240, 0.15) 38%, transparent 62%);
  transform: translateX(-120%);
  animation: game-stadium-wind 4.8s ease-in-out infinite;
}

.game-stadium-rain-chance {
  position: absolute;
  top: 0.72rem;
  right: 0.72rem;
  z-index: 5;
  padding: 0.34rem 0.58rem;
  border: 1px solid rgba(140, 219, 255, 0.36);
  border-radius: 999px;
  color: #dff7ff;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  background: rgba(3, 15, 27, 0.72);
  backdrop-filter: blur(8px);
}

.game-stadium-weather-bar {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 4;
  display: grid;
  grid-template-columns: 1.28fr 1fr 1fr;
  min-height: 82px;
  border-top: 1px solid rgba(166, 220, 255, 0.22);
  background: rgba(2, 10, 18, 0.72);
  backdrop-filter: blur(11px);
}

.game-stadium-weather-stat {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.62rem;
  min-width: 0;
  padding: 0.68rem 0.8rem;
}

.game-stadium-weather-stat + .game-stadium-weather-stat {
  border-left: 1px solid rgba(158, 204, 237, 0.16);
}

.game-stadium-weather-stat > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.game-stadium-weather-stat strong {
  overflow: hidden;
  color: #ffffff;
  font-size: clamp(1rem, 1.8vw, 1.5rem);
  font-weight: 900;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.game-stadium-weather-stat span:not(.game-stadium-weather-icon) {
  overflow: hidden;
  margin-top: 0.3rem;
  color: rgba(219, 232, 244, 0.72);
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.055em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.game-stadium-weather-icon {
  flex: 0 0 auto;
  color: #52d9de;
  font-size: clamp(1.3rem, 2.5vw, 2rem);
  line-height: 1;
  text-shadow: 0 0 14px rgba(49, 220, 226, 0.34);
}

.game-stadium-caption {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.8rem 0.7rem 0;
  text-align: center;
}

.game-stadium-caption strong {
  position: relative;
  max-width: 100%;
  color: #f6f9fc;
  font-size: clamp(0.95rem, 1.65vw, 1.3rem);
  font-weight: 900;
  letter-spacing: 0.075em;
  line-height: 1.1;
  text-transform: uppercase;
}

.game-stadium-caption span {
  margin-top: 0.38rem;
  color: rgba(231, 239, 247, 0.78);
  font-size: 0.84rem;
  font-weight: 760;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

@keyframes game-stadium-rain {
  from { transform: translate3d(-2%, -4%, 0); }
  to { transform: translate3d(2%, 4%, 0); }
}

@keyframes game-stadium-snow {
  from { background-position: 0 -10px, 0 -30px; }
  to { background-position: 30px 160px, -24px 210px; }
}

@keyframes game-stadium-wind {
  0%, 35% { transform: translateX(-120%); opacity: 0; }
  48% { opacity: 1; }
  66%, 100% { transform: translateX(120%); opacity: 0; }
}

@keyframes game-stadium-lightning {
  0%, 48%, 49%, 76%, 77%, 100% { filter: brightness(1); }
  48.3%, 76.3% { filter: brightness(1.7); }
  48.6%, 76.6% { filter: brightness(0.82); }
}

@media (max-width: 900px) {
  .game-matchup.game-matchup-stadium {
    grid-template-columns:
      minmax(86px, 0.58fr)
      minmax(280px, 1.84fr)
      minmax(86px, 0.58fr);
    gap: 0.65rem;
    padding: 0.75rem;
  }

  .game-matchup-stadium .game-team img {
    width: clamp(62px, 11vw, 98px);
    height: clamp(62px, 11vw, 98px);
  }

  .game-matchup-stadium .game-team span {
    font-size: clamp(0.74rem, 2vw, 1rem);
  }

  .game-stadium-photo-frame {
    min-height: 250px;
  }
}

@media (max-width: 620px) {
  .game-matchup.game-matchup-stadium {
    grid-template-columns: 1fr 1fr;
    align-items: center;
  }

  .game-stadium-weather {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .game-team-away {
    grid-column: 1;
    grid-row: 2;
  }

  .game-team-home {
    grid-column: 2;
    grid-row: 2;
  }

  .game-matchup-stadium .game-team {
    flex-direction: row;
    padding: 0.45rem;
  }

  .game-matchup-stadium .game-team img {
    width: 54px;
    height: 54px;
  }

  .game-stadium-photo-frame {
    min-height: 225px;
  }

  .game-stadium-weather-bar {
    grid-template-columns: 1.12fr 0.94fr 0.94fr;
    min-height: 74px;
  }

  .game-stadium-weather-stat {
    gap: 0.4rem;
    padding: 0.58rem 0.42rem;
  }

  .game-stadium-weather-stat strong {
    font-size: 0.9rem;
  }

  .game-stadium-weather-stat span:not(.game-stadium-weather-icon) {
    font-size: 0.56rem;
  }

  .game-stadium-weather-icon {
    font-size: 1.15rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .game-stadium-photo,
  .game-stadium-weather-effect,
  .game-stadium-weather-effect::after,
  .game-stadium-photo-frame {
    animation: none !important;
    transition: none !important;
  }
}

/* BORING BETS: GAME HEADER ULTRA COMPACT V3 */

/*
  Final hard-size override. This keeps the stadium/weather feature inside
  approximately the same vertical footprint as the original matchup bar.
*/
.game-matchup.game-matchup-stadium {
  position: relative !important;
  display: grid !important;
  grid-template-columns:
    minmax(150px, 1fr)
    minmax(300px, 390px)
    minmax(150px, 1fr) !important;
  align-items: center !important;
  gap: 0.7rem !important;
  box-sizing: border-box !important;
  height: 134px !important;
  min-height: 134px !important;
  max-height: 134px !important;
  padding: 0.45rem 0.85rem !important;
  overflow: hidden !important;
}

.game-matchup-stadium .game-team,
.game-matchup-stadium .game-team.game-team-home {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.65rem !important;
  min-width: 0 !important;
  padding: 0 !important;
}

.game-matchup-stadium .game-team img {
  width: 62px !important;
  height: 62px !important;
  max-width: 62px !important;
  max-height: 62px !important;
  object-fit: contain !important;
}

.game-matchup-stadium .game-team span {
  font-size: 1rem !important;
  line-height: 1 !important;
}

.game-stadium-weather {
  position: relative !important;
  align-self: center !important;
  width: 100% !important;
  height: 112px !important;
  min-height: 112px !important;
  max-height: 112px !important;
  overflow: hidden !important;
  border-radius: 10px !important;
}

.game-stadium-photo-frame {
  position: relative !important;
  box-sizing: border-box !important;
  height: 84px !important;
  min-height: 84px !important;
  max-height: 84px !important;
  overflow: hidden !important;
  border-radius: 10px 10px 0 0 !important;
}

.game-stadium-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.game-stadium-weather:hover .game-stadium-photo {
  transform: none !important;
}

.game-stadium-weather-bar {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 5 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr !important;
  box-sizing: border-box !important;
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  overflow: hidden !important;
}

.game-stadium-weather-stat {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.22rem !important;
  min-width: 0 !important;
  padding: 0 0.25rem !important;
}

.game-stadium-weather-stat strong {
  font-size: 0.69rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.game-stadium-weather-stat span:not(.game-stadium-weather-icon) {
  display: none !important;
}

.game-stadium-weather-icon {
  font-size: 0.74rem !important;
  line-height: 1 !important;
}

.game-stadium-caption {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 28px !important;
  z-index: 4 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.42rem !important;
  box-sizing: border-box !important;
  height: 24px !important;
  min-height: 24px !important;
  padding: 0.2rem 0.45rem !important;
  background:
    linear-gradient(
      180deg,
      rgba(2, 8, 12, 0),
      rgba(2, 8, 12, 0.88)
    ) !important;
  pointer-events: none !important;
}

.game-stadium-caption strong,
.game-stadium-caption span {
  overflow: hidden !important;
  margin: 0 !important;
  color: #fff !important;
  line-height: 1 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.game-stadium-caption strong {
  max-width: 62% !important;
  font-size: 0.58rem !important;
  letter-spacing: 0.045em !important;
}

.game-stadium-caption span {
  max-width: 38% !important;
  font-size: 0.53rem !important;
  letter-spacing: 0.035em !important;
}

.game-stadium-caption span::before {
  content: "•" !important;
  margin-right: 0.42rem !important;
}

.game-stadium-rain-chance {
  top: 0.26rem !important;
  right: 0.3rem !important;
  padding: 0.12rem 0.28rem !important;
  font-size: 0.47rem !important;
  line-height: 1 !important;
}

@media (max-width: 900px) {
  .game-matchup.game-matchup-stadium {
    grid-template-columns:
      minmax(105px, 0.8fr)
      minmax(270px, 1.5fr)
      minmax(105px, 0.8fr) !important;
    height: 124px !important;
    min-height: 124px !important;
    max-height: 124px !important;
    gap: 0.45rem !important;
    padding: 0.38rem 0.55rem !important;
  }

  .game-stadium-weather {
    height: 104px !important;
    min-height: 104px !important;
    max-height: 104px !important;
  }

  .game-stadium-photo-frame {
    height: 76px !important;
    min-height: 76px !important;
    max-height: 76px !important;
  }

  .game-matchup-stadium .game-team img {
    width: 52px !important;
    height: 52px !important;
  }

  .game-matchup-stadium .game-team span {
    font-size: 0.82rem !important;
  }
}

@media (max-width: 620px) {
  .game-matchup.game-matchup-stadium {
    grid-template-columns:
      minmax(64px, 0.72fr)
      minmax(190px, 2fr)
      minmax(64px, 0.72fr) !important;
    height: 108px !important;
    min-height: 108px !important;
    max-height: 108px !important;
    gap: 0.25rem !important;
    padding: 0.3rem !important;
  }

  .game-matchup-stadium .game-team,
  .game-matchup-stadium .game-team.game-team-home {
    flex-direction: column !important;
    gap: 0.18rem !important;
  }

  .game-matchup-stadium .game-team img {
    width: 39px !important;
    height: 39px !important;
  }

  .game-matchup-stadium .game-team span {
    font-size: 0.62rem !important;
  }

  .game-stadium-weather {
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
  }

  .game-stadium-photo-frame {
    height: 66px !important;
    min-height: 66px !important;
    max-height: 66px !important;
  }

  .game-stadium-weather-bar {
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
  }

  .game-stadium-caption {
    bottom: 26px !important;
    height: 20px !important;
    min-height: 20px !important;
  }

  .game-stadium-caption strong {
    max-width: 58% !important;
    font-size: 0.47rem !important;
  }

  .game-stadium-caption span {
    max-width: 42% !important;
    font-size: 0.43rem !important;
  }

  .game-stadium-weather-stat strong {
    font-size: 0.56rem !important;
  }

  .game-stadium-weather-icon {
    font-size: 0.61rem !important;
  }
}

/* BORING BETS: GAME HEADER TOP META V4 */

/*
  Move venue + time above the header, remove the dead bottom space,
  and neutralize the yellow/hot sky tint.
*/
.game-matchup.game-matchup-stadium {
  position: relative !important;
  overflow: visible !important;
  margin-top: 1.35rem !important;
  height: 116px !important;
  min-height: 116px !important;
  max-height: 116px !important;
  padding: 0.38rem 0.8rem !important;
  gap: 0.7rem !important;
  grid-template-columns:
    minmax(150px, 1fr)
    minmax(300px, 390px)
    minmax(150px, 1fr) !important;
  align-items: center !important;
}

.game-matchup-stadium .game-team,
.game-matchup-stadium .game-team.game-team-home {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.65rem !important;
  padding: 0 !important;
  min-width: 0 !important;
}

.game-matchup-stadium .game-team img {
  width: 58px !important;
  height: 58px !important;
  max-width: 58px !important;
  max-height: 58px !important;
  object-fit: contain !important;
}

.game-matchup-stadium .game-team span {
  font-size: 0.96rem !important;
  line-height: 1 !important;
}

.game-stadium-weather {
  position: relative !important;
  align-self: center !important;
  width: 100% !important;
  height: 90px !important;
  min-height: 90px !important;
  max-height: 90px !important;
  overflow: visible !important;
  border-radius: 10px !important;
}

.game-stadium-photo-frame {
  position: relative !important;
  height: 90px !important;
  min-height: 90px !important;
  max-height: 90px !important;
  overflow: hidden !important;
  border-radius: 10px !important;
}

.game-stadium-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.game-stadium-weather:hover .game-stadium-photo {
  transform: none !important;
}

.game-stadium-weather-bar {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 5 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr !important;
  height: 24px !important;
  min-height: 24px !important;
  max-height: 24px !important;
  overflow: hidden !important;
}

.game-stadium-weather-stat {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.2rem !important;
  padding: 0 0.2rem !important;
}

.game-stadium-weather-stat strong {
  font-size: 0.66rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.game-stadium-weather-stat span:not(.game-stadium-weather-icon) {
  display: none !important;
}

.game-stadium-weather-icon {
  font-size: 0.7rem !important;
  line-height: 1 !important;
}

.game-stadium-caption {
  position: absolute !important;
  left: 50% !important;
  top: -1.08rem !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
  z-index: 8 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.45rem !important;
  width: max-content !important;
  max-width: min(92%, 420px) !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  background: none !important;
  pointer-events: none !important;
}

.game-stadium-caption strong,
.game-stadium-caption span {
  overflow: hidden !important;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.94) !important;
  line-height: 1 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.45) !important;
}

.game-stadium-caption strong {
  max-width: 62% !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.06em !important;
}

.game-stadium-caption span {
  max-width: 38% !important;
  font-size: 0.62rem !important;
  letter-spacing: 0.04em !important;
}

.game-stadium-caption span::before {
  content: "•" !important;
  margin-right: 0.45rem !important;
  color: rgba(82, 217, 222, 0.82) !important;
}

.game-stadium-rain-chance {
  top: 0.26rem !important;
  right: 0.32rem !important;
  padding: 0.1rem 0.26rem !important;
  font-size: 0.45rem !important;
  line-height: 1 !important;
}

.game-stadium-weather.is-weather-hot .game-stadium-photo {
  filter: saturate(1.02) brightness(0.86) contrast(1.02) !important;
}

.game-stadium-weather.is-weather-hot .game-stadium-weather-effect {
  opacity: 0.14 !important;
  background: linear-gradient(180deg, rgba(82, 217, 222, 0.06), transparent 58%) !important;
}

@media (max-width: 900px) {
  .game-matchup.game-matchup-stadium {
    margin-top: 1.25rem !important;
    height: 108px !important;
    min-height: 108px !important;
    max-height: 108px !important;
    padding: 0.34rem 0.55rem !important;
    gap: 0.42rem !important;
    grid-template-columns:
      minmax(102px, 0.8fr)
      minmax(260px, 1.5fr)
      minmax(102px, 0.8fr) !important;
  }

  .game-matchup-stadium .game-team img {
    width: 50px !important;
    height: 50px !important;
  }

  .game-matchup-stadium .game-team span {
    font-size: 0.8rem !important;
  }

  .game-stadium-weather,
  .game-stadium-photo-frame {
    height: 82px !important;
    min-height: 82px !important;
    max-height: 82px !important;
  }

  .game-stadium-caption {
    top: -1rem !important;
  }
}

@media (max-width: 620px) {
  .game-matchup.game-matchup-stadium {
    margin-top: 1.1rem !important;
    height: 98px !important;
    min-height: 98px !important;
    max-height: 98px !important;
    padding: 0.28rem !important;
    gap: 0.25rem !important;
    grid-template-columns:
      minmax(60px, 0.72fr)
      minmax(190px, 2fr)
      minmax(60px, 0.72fr) !important;
  }

  .game-matchup-stadium .game-team,
  .game-matchup-stadium .game-team.game-team-home {
    flex-direction: column !important;
    gap: 0.14rem !important;
  }

  .game-matchup-stadium .game-team img {
    width: 38px !important;
    height: 38px !important;
  }

  .game-matchup-stadium .game-team span {
    font-size: 0.6rem !important;
  }

  .game-stadium-weather,
  .game-stadium-photo-frame {
    height: 74px !important;
    min-height: 74px !important;
    max-height: 74px !important;
  }

  .game-stadium-weather-bar {
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
  }

  .game-stadium-weather-stat strong {
    font-size: 0.56rem !important;
  }

  .game-stadium-weather-icon {
    font-size: 0.6rem !important;
  }

  .game-stadium-caption {
    top: -0.9rem !important;
    max-width: min(96%, 270px) !important;
    gap: 0.3rem !important;
  }

  .game-stadium-caption strong {
    font-size: 0.5rem !important;
  }

  .game-stadium-caption span {
    font-size: 0.45rem !important;
  }

  .game-stadium-rain-chance {
    font-size: 0.4rem !important;
  }
}

/* BORING BETS: GAME HEADER CLEAN SKY + TIME V5 */

/*
  Clear weather should not paint a fake yellow sun/smog patch into a
  static stadium photograph. Keep only a restrained neutral daylight wash.
*/
.game-stadium-weather.is-weather-clear .game-stadium-weather-effect {
  opacity: 0.18 !important;
  background:
    linear-gradient(
      180deg,
      rgba(115, 190, 225, 0.09),
      transparent 58%
    ) !important;
  filter: none !important;
}


/* BORING BETS: LOANDEPOT ZERO WEATHER EFFECT TEST V1 */

/*
  Diagnostic clean mode for loanDepot park:
  - no weather haze
  - no blur
  - no tint
  - no blend mode
  - no pseudo-element atmosphere
  This establishes whether any remaining fog is baked into the photograph.
*/
.game-stadium-weather[data-venue-slug="loandepot-park"] {
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background-image: none !important;
}

.game-stadium-weather[data-venue-slug="loandepot-park"]::before,
.game-stadium-weather[data-venue-slug="loandepot-park"]::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: none !important;
  box-shadow: none !important;
}

.game-stadium-weather[data-venue-slug="loandepot-park"]
  .game-stadium-photo {
  opacity: 1 !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  mix-blend-mode: normal !important;
}

.game-stadium-weather[data-venue-slug="loandepot-park"]
  .game-stadium-weather-effect,
.game-stadium-weather[data-venue-slug="loandepot-park"]
  [class*="weather-effect"],
.game-stadium-weather[data-venue-slug="loandepot-park"]
  [class*="weather-overlay"],
.game-stadium-weather[data-venue-slug="loandepot-park"]
  [class*="stadium-overlay"],
.game-stadium-weather[data-venue-slug="loandepot-park"]
  [class*="atmosphere"] {
  display: none !important;
  opacity: 0 !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: none !important;
  box-shadow: none !important;
}


/* BORING BETS: GLOBAL INDOOR WEATHER GATE V2 */

/*
  Weather may alter a stadium photograph only when:
  1. the venue is outdoor, or
  2. a retractable roof is explicitly confirmed open.

  Every non-outdoor venue with a closed or unknown roof state renders its
  photograph without haze, rain, cloud tint, blur, dimming, or atmosphere.
*/
.game-stadium-weather[data-roof-profile]:not([data-roof-profile="outdoor"]):not([data-roof-state="open"]):not([data-weather-exposed="true"]) {
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background-image: none !important;
}

.game-stadium-weather[data-roof-profile]:not([data-roof-profile="outdoor"]):not([data-roof-state="open"]):not([data-weather-exposed="true"])::before,
.game-stadium-weather[data-roof-profile]:not([data-roof-profile="outdoor"]):not([data-roof-state="open"]):not([data-weather-exposed="true"])::after {
  content: none !important;
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: none !important;
  box-shadow: none !important;
  mix-blend-mode: normal !important;
}

.game-stadium-weather[data-roof-profile]:not([data-roof-profile="outdoor"]):not([data-roof-state="open"]):not([data-weather-exposed="true"])
  .game-stadium-photo {
  opacity: 1 !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  mix-blend-mode: normal !important;
}

.game-stadium-weather[data-roof-profile]:not([data-roof-profile="outdoor"]):not([data-roof-state="open"]):not([data-weather-exposed="true"])
  .game-stadium-weather-effect,
.game-stadium-weather[data-roof-profile]:not([data-roof-profile="outdoor"]):not([data-roof-state="open"]):not([data-weather-exposed="true"])
  [class*="weather-effect"],
.game-stadium-weather[data-roof-profile]:not([data-roof-profile="outdoor"]):not([data-roof-state="open"]):not([data-weather-exposed="true"])
  [class*="weather-overlay"],
.game-stadium-weather[data-roof-profile]:not([data-roof-profile="outdoor"]):not([data-roof-state="open"]):not([data-weather-exposed="true"])
  [class*="atmosphere"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: none !important;
  box-shadow: none !important;
  mix-blend-mode: normal !important;
}


/* BORING BETS: T-MOBILE WEATHER EXPOSURE EXCEPTION V1 */

/*
  T-Mobile Park is weather-exposed even with the roof closed.
  This exception affects only weather visuals. The roof-state attributes
  remain intact so open/closed image selection continues to work normally.
*/
.game-stadium-weather[data-weather-exposed="true"] {
  --boring-bets-weather-exposure: outdoor;
}

/*
  BORING BETS: RAIN ANIMATION DISABLED V1

  Rain remains available as weather data and as an admin-selected photograph.
  Only animated/artificial rain overlays are disabled. Lightning effects remain.
*/

/* Stop motion on any rain-specific hero element without hiding weather text. */
.game-header [class*="rain"],
.game-hero [class*="rain"],
.stadium-hero [class*="rain"],
.matchup-hero [class*="rain"],
[data-stadium-hero] [class*="rain"],
[data-weather-effect="rain"],
[data-effect="rain"],
canvas[class*="rain"],
canvas[data-weather="rain"] {
  animation: none !important;
  transition: none !important;
}

/* Remove dedicated rain overlay layers and generated rain streaks. */
.game-header .rain-overlay,
.game-header .rain-layer,
.game-header .rain-effect,
.game-header .rain-animation,
.game-header .rain-canvas,
.game-header .raindrops,
.game-header .rain-drops,
.game-header [class*="rain-overlay"],
.game-header [class*="rain-layer"],
.game-header [class*="rain-effect"],
.game-header [class*="rain-animation"],
.game-header [class*="raindrop"],
.game-hero .rain-overlay,
.game-hero .rain-layer,
.game-hero .rain-effect,
.game-hero .rain-animation,
.game-hero .rain-canvas,
.game-hero .raindrops,
.game-hero .rain-drops,
.game-hero [class*="rain-overlay"],
.game-hero [class*="rain-layer"],
.game-hero [class*="rain-effect"],
.game-hero [class*="rain-animation"],
.game-hero [class*="raindrop"],
.stadium-hero .rain-overlay,
.stadium-hero .rain-layer,
.stadium-hero .rain-effect,
.stadium-hero .rain-animation,
.stadium-hero .rain-canvas,
.stadium-hero .raindrops,
.stadium-hero .rain-drops,
.stadium-hero [class*="rain-overlay"],
.stadium-hero [class*="rain-layer"],
.stadium-hero [class*="rain-effect"],
.stadium-hero [class*="rain-animation"],
.stadium-hero [class*="raindrop"],
[data-stadium-hero] .rain-overlay,
[data-stadium-hero] .rain-layer,
[data-stadium-hero] .rain-effect,
[data-stadium-hero] .rain-animation,
[data-stadium-hero] .rain-canvas,
[data-stadium-hero] .raindrops,
[data-stadium-hero] .rain-drops,
[data-stadium-hero] [class*="rain-overlay"],
[data-stadium-hero] [class*="rain-layer"],
[data-stadium-hero] [class*="rain-effect"],
[data-stadium-hero] [class*="rain-animation"],
[data-stadium-hero] [class*="raindrop"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  filter: none !important;
}

/* Disable pseudo-element rain streak generators on rain-state hero wrappers. */
.game-header.weather-rain::before,
.game-header.weather-rain::after,
.game-header.is-rain::before,
.game-header.is-rain::after,
.game-header[data-weather="rain"]::before,
.game-header[data-weather="rain"]::after,
.game-header[data-weather*="rain"]::before,
.game-header[data-weather*="rain"]::after,
.game-hero.weather-rain::before,
.game-hero.weather-rain::after,
.game-hero.is-rain::before,
.game-hero.is-rain::after,
.game-hero[data-weather="rain"]::before,
.game-hero[data-weather="rain"]::after,
.game-hero[data-weather*="rain"]::before,
.game-hero[data-weather*="rain"]::after,
.stadium-hero.weather-rain::before,
.stadium-hero.weather-rain::after,
.stadium-hero.is-rain::before,
.stadium-hero.is-rain::after,
.stadium-hero[data-weather="rain"]::before,
.stadium-hero[data-weather="rain"]::after,
.stadium-hero[data-weather*="rain"]::before,
.stadium-hero[data-weather*="rain"]::after,
[data-stadium-hero].weather-rain::before,
[data-stadium-hero].weather-rain::after,
[data-stadium-hero].is-rain::before,
[data-stadium-hero].is-rain::after,
[data-stadium-hero][data-weather="rain"]::before,
[data-stadium-hero][data-weather="rain"]::after,
[data-stadium-hero][data-weather*="rain"]::before,
[data-stadium-hero][data-weather*="rain"]::after {
  content: none !important;
  display: none !important;
  animation: none !important;
  background: none !important;
  background-image: none !important;
  opacity: 0 !important;
}

/*
  Do not target lightning/thunder classes here. The approved lightning
  animation remains active.
*/

/*
  BORING BETS: EXACT RAIN STREAK REMOVAL V2

  The actual streak animation is applied to .game-stadium-weather-effect
  through a rain/thunder parent state. Remove that shared streak layer while
  preserving the separate lightning animation on .game-stadium-photo-frame.
*/

.game-stadium-weather.is-weather-rain
  .game-stadium-weather-effect,
.game-stadium-weather.is-weather-thunder
  .game-stadium-weather-effect {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  animation: none !important;
  animation-name: none !important;
  background: none !important;
  background-image: none !important;
  background-size: auto !important;
  filter: none !important;
  transform: none !important;
}

.game-stadium-weather.is-weather-rain
  .game-stadium-weather-effect::before,
.game-stadium-weather.is-weather-rain
  .game-stadium-weather-effect::after,
.game-stadium-weather.is-weather-thunder
  .game-stadium-weather-effect::before,
.game-stadium-weather.is-weather-thunder
  .game-stadium-weather-effect::after {
  content: none !important;
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  animation: none !important;
  background: none !important;
  background-image: none !important;
}

/*
  Intentionally untouched:
  .game-stadium-weather.is-weather-thunder .game-stadium-photo-frame

  That is the approved lightning animation.
*/

/*
  BORING BETS: NO LIGHTNING IN ENCLOSED PARKS V1

  Enclosed parks and retractable-roof parks with the roof confirmed closed
  must never show lightning flashes. Outdoor/weather-exposed venues remain
  unchanged.
*/

.game-stadium-weather.is-weather-roofed.is-weather-thunder
  .game-stadium-photo-frame,
.game-stadium-weather.is-weather-roofed.is-weather-thunder
  .game-stadium-photo,
.game-stadium-weather.is-weather-roofed.is-weather-thunder
  .game-stadium-weather-effect,
.game-stadium-weather.is-weather-roofed
  .game-stadium-photo-frame[class*="lightning"],
.game-stadium-weather.is-weather-roofed
  .game-stadium-photo[class*="lightning"],
.game-stadium-weather.is-weather-roofed
  [class*="lightning"],
.game-stadium-weather.is-weather-roofed
  [class*="thunder"] {
  animation: none !important;
  animation-name: none !important;
  transition: none !important;
  filter: none !important;
  box-shadow: none !important;
}

.game-stadium-weather.is-weather-roofed.is-weather-thunder
  .game-stadium-photo-frame::before,
.game-stadium-weather.is-weather-roofed.is-weather-thunder
  .game-stadium-photo-frame::after,
.game-stadium-weather.is-weather-roofed.is-weather-thunder
  .game-stadium-photo::before,
.game-stadium-weather.is-weather-roofed.is-weather-thunder
  .game-stadium-photo::after,
.game-stadium-weather.is-weather-roofed
  [class*="lightning"]::before,
.game-stadium-weather.is-weather-roofed
  [class*="lightning"]::after,
.game-stadium-weather.is-weather-roofed
  [class*="thunder"]::before,
.game-stadium-weather.is-weather-roofed
  [class*="thunder"]::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  animation: none !important;
  background: none !important;
  background-image: none !important;
  filter: none !important;
}

/*
  Keep the stadium photo itself visible and untreated. This rule removes only
  the flashing/lightning presentation inside an enclosed park.
*/

/*
  BORING BETS: LOANDEPOT CLOSED HARD PHOTO FREEZE V1

  Final closed-roof LoanDepot safeguard. The photograph, its wrappers, and the
  surrounding matchup header cannot animate, pulse, transition, or change
  opacity while the roof is closed.
*/

.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"]),
.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"]) *,
.game-matchup.game-matchup-stadium.is-enclosed-static,
.game-matchup.game-matchup-stadium.is-enclosed-static * {
  animation: none !important;
  animation-name: none !important;
  transition: none !important;
}

.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"])
  .game-stadium-photo,
.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"])
  .game-stadium-photo.is-loading {
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
  mix-blend-mode: normal !important;
}

.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"])
  .game-stadium-weather-effect {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"])::before,
.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"])::after,
.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"])
  .game-stadium-photo-frame::before,
.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"])
  .game-stadium-photo-frame::after,
.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"])
  .game-stadium-photo::before,
.game-stadium-weather[data-venue-slug="loandepot-park"]:not([data-roof-state="open"])
  .game-stadium-photo::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  animation: none !important;
}

/* PITCHER_START_UNSELECTED_NO_BOX
   Unselected 1/3/7/10/20 start-count controls stay visually unboxed.
*/
button[data-pitcher-start-count]:not(.selected),
button[data-pitcher-start-count][aria-pressed="false"] {
  border-color: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

button[data-pitcher-start-count]:not(.selected):hover,
button[data-pitcher-start-count][aria-pressed="false"]:hover {
  border-color: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Preserve a non-white accessibility indicator for keyboard navigation. */
button[data-pitcher-start-count]:not(.selected):focus-visible,
button[data-pitcher-start-count][aria-pressed="false"]:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 2px;
  box-shadow: none !important;
}

/* GLOBAL_HIGHLIGHT_DISPLAY_FOUR_WAY_START */

/*
  Neutral remains a separate switch, but its visible
  label is removed.
*/
.global-neutral-toggle {
  gap: 0;
}

.global-neutral-label {
  display: none !important;
}

/*
  Compact four-position display switch:
  color, grayscale, text-only, and true off.
*/
.global-highlight-display-control {
  display: inline-flex;
  align-items: center;
  gap: 1px;

  height: 18px;
  margin: 0;
  padding: 1px;

  border:
    1px solid rgba(215, 222, 218, 0.28);
  border-radius: 999px;

  background:
    rgba(8, 13, 18, 0.72);

  box-shadow:
    inset 0 0 0 1px
    rgba(0, 0, 0, 0.22);
}

.global-highlight-display-legend {
  position: absolute;

  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;

  overflow: hidden;
  clip: rect(0, 0, 0, 0);

  white-space: nowrap;
  border: 0;
}

.global-highlight-display-option {
  position: relative;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 15px;
  height: 14px;

  margin: 0;

  cursor: pointer;
}

.global-highlight-display-option input {
  position: absolute;

  inline-size: 1px;
  block-size: 1px;

  opacity: 0;
  pointer-events: none;
}

.global-highlight-display-icon {
  position: relative;

  display: block;

  width: 13px;
  height: 12px;

  border:
    1px solid transparent;
  border-radius: 999px;

  background:
    transparent;

  transition:
    background 130ms ease,
    border-color 130ms ease,
    box-shadow 130ms ease,
    opacity 130ms ease;
}

.global-highlight-display-option:hover
.global-highlight-display-icon {
  background:
    rgba(244, 247, 245, 0.08);
}

.global-highlight-display-option
input:checked
+ .global-highlight-display-icon {
  border-color:
    rgba(244, 247, 245, 0.62);

  background:
    rgba(244, 247, 245, 0.11);

  box-shadow:
    0 0 5px
    rgba(244, 247, 245, 0.18);
}

.global-highlight-display-option
input:focus-visible
+ .global-highlight-display-icon {
  outline:
    1px solid rgba(244, 247, 245, 0.9);

  outline-offset: 1px;
}

/* Color icon */
.global-highlight-display-icon.is-color::before {
  position: absolute;
  top: 50%;
  left: 50%;

  width: 7px;
  height: 7px;

  content: "";

  border-radius: 50%;

  background:
    conic-gradient(
      #71f7a2,
      #ffe06e,
      #ff9960,
      #ff7185,
      #71f7a2
    );

  transform:
    translate(-50%, -50%);
}

/* B&W icon */
.global-highlight-display-icon.is-black-white::before {
  position: absolute;
  top: 50%;
  left: 50%;

  width: 7px;
  height: 7px;

  content: "";

  border:
    1px solid rgba(244, 247, 245, 0.36);
  border-radius: 50%;

  background:
    linear-gradient(
      90deg,
      #f2f5f3 0%,
      #aeb7b2 48%,
      #171c21 52%,
      #171c21 100%
    );

  transform:
    translate(-50%, -50%);
}

/* Text-only icon */
.global-highlight-display-icon.is-text-only::before {
  position: absolute;
  top: 50%;
  left: 50%;

  width: 8px;
  height: 2px;

  content: "";

  border-radius: 999px;

  background:
    linear-gradient(
      90deg,
      #71f7a2,
      #ffe06e,
      #ff7185
    );

  transform:
    translate(-50%, -50%);
}

/* True-off icon */
.global-highlight-display-icon.is-off::before {
  position: absolute;
  top: 50%;
  left: 50%;

  width: 7px;
  height: 7px;

  content: "";

  border:
    1px solid rgba(205, 214, 209, 0.62);
  border-radius: 50%;

  transform:
    translate(-50%, -50%);
}

.global-highlight-display-icon.is-off::after {
  position: absolute;
  top: 50%;
  left: 50%;

  width: 8px;
  height: 1px;

  content: "";

  background:
    rgba(205, 214, 209, 0.72);

  transform:
    translate(-50%, -50%)
    rotate(-45deg);
}

/*
  B&W converts the final result after Neutral and
  Color Spread have determined the shared tiers.
*/
html[data-highlight-display-mode="black-white"]
.global-tier-highlight,
html[data-highlight-display-mode="black-white"]
.pitcher-history-decision-win,
html[data-highlight-display-mode="black-white"]
.pitcher-history-decision-loss {
  filter:
    grayscale(1)
    saturate(0) !important;
}

/*
  Text-only keeps the number/text colors created by
  Neutral and Color Spread, but removes box effects.
*/
html[data-highlight-display-mode="text-only"]
.global-tier-highlight {
  background-color:
    transparent !important;

  background-image:
    none !important;

  border-color:
    rgba(255, 255, 255, 0.12) !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;
}

/*
  True Off removes both the box effects and the
  colored number/text effects.
*/
html[data-highlight-display-mode="off"]
.global-tier-highlight {
  color:
    var(--text, #dce6e1) !important;

  background-color:
    transparent !important;

  background-image:
    none !important;

  border-color:
    rgba(255, 255, 255, 0.12) !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;
}

html[data-highlight-display-mode="off"]
.global-tier-highlight * {
  color:
    inherit !important;

  text-shadow:
    none !important;

  filter:
    none !important;
}

html[data-highlight-display-mode="off"]
.pitcher-history-decision-win,
html[data-highlight-display-mode="off"]
.pitcher-history-decision-loss {
  color:
    var(--text, #dce6e1) !important;

  background:
    transparent !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;
}

/* GLOBAL_HIGHLIGHT_DISPLAY_FOUR_WAY_END */

/* BULLPEN_HIGHLIGHTING_BAR_START */

/*
  Every bullpen element carrying a five-tier metric class is
  registered by the shared highlighting engine. This includes
  summary-stat titles, values, rank numbers, and reliever stats.
*/
.bullpen-widget-shell
.global-tier-highlight {
  transition:
    color 130ms ease,
    background-color 130ms ease,
    border-color 130ms ease,
    box-shadow 130ms ease,
    filter 130ms ease;
}

/*
  Text-only removes all bullpen boxes while retaining the
  number/title colors produced by Neutral and Color Spread.
*/
html[data-highlight-display-mode="text-only"]
.bullpen-widget-shell
.global-tier-highlight {
  background:
    transparent !important;

  background-image:
    none !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;
}

/*
  True Off removes both fixed bullpen heat colors and shared
  highlighting from titles, values, ranks, and reliever stats.
*/
html[data-highlight-display-mode="off"]
.bullpen-widget-shell
.global-tier-highlight,
html[data-highlight-display-mode="off"]
.bullpen-widget-shell
.global-tier-highlight * {
  color:
    var(--text, #dce6e1) !important;

  background:
    transparent !important;

  background-image:
    none !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;
}

/*
  B&W applies after Neutral and Color Spread, so the full
  bullpen remains rank-sensitive while displaying grayscale.
*/
html[data-highlight-display-mode="black-white"]
.bullpen-widget-shell
.global-tier-highlight {
  filter:
    grayscale(1)
    saturate(0) !important;
}

/* BULLPEN_HIGHLIGHTING_BAR_END */

/* TEXT_ONLY_SPECTRUM_NUMBERS_ONLY_START */

/*
  Four-way switch position 3:
  preserve spectrum text colors, but remove the
  colored box treatment around numeric metrics.
*/
html[
  data-highlight-display-mode="text-only"
][
  data-highlight-neutral="spectrum"
]
.global-tier-highlight.metric-elite,

html[
  data-highlight-display-mode="text-only"
][
  data-highlight-neutral="spectrum"
]
.global-tier-highlight.metric-good,

html[
  data-highlight-display-mode="text-only"
][
  data-highlight-neutral="spectrum"
]
.global-tier-highlight.metric-average,

html[
  data-highlight-display-mode="text-only"
][
  data-highlight-neutral="spectrum"
]
.global-tier-highlight.metric-poor,

html[
  data-highlight-display-mode="text-only"
][
  data-highlight-neutral="spectrum"
]
.global-tier-highlight.metric-awful {
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/*
  Numeric children inherit the tier color from
  their cell instead of reverting to white.
*/
html[
  data-highlight-display-mode="text-only"
][
  data-highlight-neutral="spectrum"
]
.global-tier-highlight
.metric-value {
  color: inherit !important;
  background: transparent !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/* TEXT_ONLY_SPECTRUM_NUMBERS_ONLY_END */

/* TRUE_OFF_NO_HIGHLIGHT_COLOR_START */

/*
  Four-way switch position 4:
  remove every shared highlighting treatment while
  leaving the underlying Neutral and spread preferences saved.
*/
html[data-highlight-display-mode="off"]
.global-tier-highlight,

html[data-highlight-display-mode="off"]
.metric-elite,

html[data-highlight-display-mode="off"]
.metric-good,

html[data-highlight-display-mode="off"]
.metric-average,

html[data-highlight-display-mode="off"]
.metric-poor,

html[data-highlight-display-mode="off"]
.metric-awful,

html[data-highlight-display-mode="off"]
.pitcher-signal-elite,

html[data-highlight-display-mode="off"]
.pitcher-signal-good,

html[data-highlight-display-mode="off"]
.pitcher-signal-neutral,

html[data-highlight-display-mode="off"]
.pitcher-signal-poor,

html[data-highlight-display-mode="off"]
.pitcher-signal-awful {
  color: inherit !important;

  background-color:
    transparent !important;

  background-image:
    none !important;

  border-color:
    transparent !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}

html[data-highlight-display-mode="off"]
.global-tier-highlight *,

html[data-highlight-display-mode="off"]
.metric-elite *,

html[data-highlight-display-mode="off"]
.metric-good *,

html[data-highlight-display-mode="off"]
.metric-average *,

html[data-highlight-display-mode="off"]
.metric-poor *,

html[data-highlight-display-mode="off"]
.metric-awful *,

html[data-highlight-display-mode="off"]
.pitcher-signal-elite *,

html[data-highlight-display-mode="off"]
.pitcher-signal-good *,

html[data-highlight-display-mode="off"]
.pitcher-signal-neutral *,

html[data-highlight-display-mode="off"]
.pitcher-signal-poor *,

html[data-highlight-display-mode="off"]
.pitcher-signal-awful * {
  color: inherit !important;

  background:
    transparent !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}

/* TRUE_OFF_NO_HIGHLIGHT_COLOR_END */

/* TRUE_OFF_MODULE_SPECIFIC_COLORS_START */

/*
  Four-way switch position 4 must defeat module-specific
  color rules as well as the shared highlighting classes.
*/

/* Pitcher module numeric stats */
html[data-highlight-display-mode="off"]
.pitcher-data-table
td.pitcher-stat-cell,

html[data-highlight-display-mode="off"]
.pitcher-data-table
td.pitcher-stat-cell
.metric-value {
  color:
    var(--text, #f4f7f5) !important;

  background:
    transparent !important;

  background-image:
    none !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}


/* Pitcher location buttons and recent-start slider */
html[data-highlight-display-mode="off"]
.pitcher-location-control
button.pitcher-control-signal,

html[data-highlight-display-mode="off"]
.pitcher-start-compact
button.pitcher-control-signal {
  color:
    rgba(235, 243, 239, 0.82) !important;

  background:
    transparent !important;

  background-image:
    none !important;

  border-color:
    rgba(235, 243, 239, 0.22) !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}

html[data-highlight-display-mode="off"]
.pitcher-start-compact
button.pitcher-control-signal
small {
  color:
    rgba(235, 243, 239, 0.82) !important;
}

html[data-highlight-display-mode="off"]
.pitcher-start-compact
.pitcher-start-dot {
  background:
    rgba(235, 243, 239, 0.68) !important;

  border-color:
    transparent !important;

  box-shadow:
    none !important;
}

html[data-highlight-display-mode="off"]
.pitcher-start-compact
.pitcher-start-track {
  background:
    rgba(235, 243, 239, 0.18) !important;

  box-shadow:
    none !important;
}

/*
  Preserve a neutral selected-state indicator without
  restoring the underlying green/red tier color.
*/
html[data-highlight-display-mode="off"]
.pitcher-location-control
button.pitcher-control-signal.active,

html[data-highlight-display-mode="off"]
.pitcher-start-compact
button.pitcher-control-signal.selected {
  color:
    #f4f7f5 !important;

  outline:
    1px solid rgba(244, 247, 245, 0.62) !important;

  outline-offset:
    -1px;

  box-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}

html[data-highlight-display-mode="off"]
.pitcher-start-compact
button.pitcher-control-signal.selected
.pitcher-start-dot {
  background:
    #f4f7f5 !important;

  box-shadow:
    none !important;
}


/* Recent History W, L and ND decisions */
html[data-highlight-display-mode="off"]
.pitcher-history-table
td.pitcher-history-decision-win,

html[data-highlight-display-mode="off"]
.pitcher-history-table
td.pitcher-history-decision-loss,

html[data-highlight-display-mode="off"]
.pitcher-history-table
td.pitcher-history-decision-neutral {
  color:
    rgba(235, 243, 239, 0.82) !important;

  background:
    transparent !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}


/* Ranked numeric cells inside Recent History */
html[data-highlight-display-mode="off"]
.pitcher-history-table
td.pitcher-history-ranked-cell {
  color:
    rgba(235, 243, 239, 0.82) !important;

  background:
    transparent !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;
}


/* Rank columns inside the offense module */
html[data-highlight-display-mode="off"]
.offense-data-table
td.rank-cell,

html[data-highlight-display-mode="off"]
.offense-data-table
td.rank-cell.global-tier-highlight {
  color:
    rgba(235, 243, 239, 0.82) !important;

  background:
    transparent !important;

  background-image:
    none !important;

  border-color:
    transparent !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}

/* TRUE_OFF_MODULE_SPECIFIC_COLORS_END */

/* TRUE_OFF_NEUTRAL_INERT_START */

/*
  Position four is True Off.

  Neutral and Color Spread remain saved, but neither
  preference may recolor module content while Off is active.
*/


/* Offense ranking cells and their number children */
html[data-highlight-display-mode="off"]
body.game-page
.offense-data-table
td.rank-cell,

html[data-highlight-display-mode="off"]
body.game-page
.offense-data-table
td.rank-cell
*,

html[data-highlight-display-mode="off"]
body.game-page
.offense-data-table
[data-global-rank],

html[data-highlight-display-mode="off"]
body.game-page
.offense-data-table
[data-global-rank]
* {
  color:
    rgba(235, 243, 239, 0.84) !important;

  background:
    transparent !important;

  background-color:
    transparent !important;

  background-image:
    none !important;

  border-color:
    transparent !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}


/* Offense timeframe/day and location controls */
html[data-highlight-display-mode="off"]
body.game-page
button[data-offense-timeframe],

html[data-highlight-display-mode="off"]
body.game-page
button[data-offense-location],

html[data-highlight-display-mode="off"]
body.game-page
.offense-timeframe-control
button,

html[data-highlight-display-mode="off"]
body.game-page
.offense-location-control
button,

html[data-highlight-display-mode="off"]
body.game-page
.offense-control-signal {
  color:
    rgba(235, 243, 239, 0.82) !important;

  background:
    transparent !important;

  background-color:
    transparent !important;

  background-image:
    none !important;

  border-color:
    rgba(235, 243, 239, 0.22) !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}


/*
  Keep active offense controls recognizable,
  but use only neutral white/gray.
*/
html[data-highlight-display-mode="off"]
body.game-page
button[data-offense-timeframe].active,

html[data-highlight-display-mode="off"]
body.game-page
button[data-offense-timeframe][aria-pressed="true"],

html[data-highlight-display-mode="off"]
body.game-page
button[data-offense-location].active,

html[data-highlight-display-mode="off"]
body.game-page
button[data-offense-location][aria-pressed="true"],

html[data-highlight-display-mode="off"]
body.game-page
.offense-control-signal.active,

html[data-highlight-display-mode="off"]
body.game-page
.offense-control-signal.selected {
  color:
    #f4f7f5 !important;

  background:
    rgba(244, 247, 245, 0.07) !important;

  border-color:
    rgba(244, 247, 245, 0.46) !important;

  outline:
    none !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;
}


/* Starter, opener, bulk pitcher and bullpen-arm names */
html[data-highlight-display-mode="off"]
body.game-page
.pitcher-name-signal,

html[data-highlight-display-mode="off"]
body.game-page
.pitcher-name-link,

html[data-highlight-display-mode="off"]
body.game-page
.bullpen-arm-player-name,

html[data-highlight-display-mode="off"]
body.game-page
.bullpen-arm-player-link,

html[data-highlight-display-mode="off"]
body.game-page
.pitcher-name-signal
*,

html[data-highlight-display-mode="off"]
body.game-page
.pitcher-name-link
*,

html[data-highlight-display-mode="off"]
body.game-page
.bullpen-arm-player-name
* {
  color:
    #f4f7f5 !important;

  background:
    transparent !important;

  background-color:
    transparent !important;

  background-image:
    none !important;

  border-color:
    transparent !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}


/*
  Final safety net for ranked/signal-driven module elements.
  This intentionally excludes the highlighting bar itself.
*/
html[data-highlight-display-mode="off"]
body.game-page
main
[data-global-rank],

html[data-highlight-display-mode="off"]
body.game-page
main
[data-global-signal-score],

html[data-highlight-display-mode="off"]
body.game-page
main
[data-module-signal-score] {
  background-image:
    none !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}

/* TRUE_OFF_NEUTRAL_INERT_END */

/* TRUE_OFF_ALL_PITCHER_SIGNAL_NAMES_START */

/*
  True Off must override every pitcher-signal variant,
  including pitcher-signal-positive and
  pitcher-signal-negative.
*/
html[data-highlight-display-mode="off"][data-highlight-neutral]
body.game-page
#awayPitcherCard
a.pitcher-name-link,

html[data-highlight-display-mode="off"][data-highlight-neutral]
body.game-page
#homePitcherCard
a.pitcher-name-link,

html[data-highlight-display-mode="off"][data-highlight-neutral]
body.game-page
#awayPitcherCard
a.pitcher-name-link[class*="pitcher-signal-"],

html[data-highlight-display-mode="off"][data-highlight-neutral]
body.game-page
#homePitcherCard
a.pitcher-name-link[class*="pitcher-signal-"] {
  color: #f4f7f5 !important;

  -webkit-text-fill-color:
    #f4f7f5 !important;

  background:
    transparent !important;

  background-image:
    none !important;

  border-color:
    transparent !important;

  box-shadow:
    none !important;

  text-shadow:
    none !important;

  filter:
    none !important;

  -webkit-filter:
    none !important;
}

/* TRUE_OFF_ALL_PITCHER_SIGNAL_NAMES_END */

/* BORING BETS: FULL BAR WEATHER APP V1 */

/*
  Weather is painted across the entire matchup bar. The stadium photograph,
  team logos, names, weather readings, and venue caption remain foreground
  modules above these layers.
*/
.game-matchup.game-matchup-stadium {
  position: relative !important;
  isolation: isolate;
  overflow: hidden !important;
  --bb-weather-intensity: 0;
  --bb-rain-density: 0;
  --bb-snow-density: 0;
  --bb-wet-glass: 0;
  --bb-weather-haze: 0;
  --bb-weather-darkness: 0;
  --bb-glass-blur: 0px;
}

.game-matchup.game-matchup-stadium
  > :not(.game-header-weather-scene) {
  position: relative;
  z-index: 2;
}

.game-header-weather-scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none;
  contain: paint;
}

.game-header-weather-atmosphere,
.game-header-weather-precipitation,
.game-header-weather-glass,
.game-header-weather-lightning {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.game-header-weather-atmosphere {
  z-index: 0;
  opacity: 0;
  transition:
    opacity 260ms ease,
    background 260ms ease;
}

/* Neutral / indoor retain the existing team-color bar background. */
.game-matchup-stadium[data-bb-weather="neutral"]
  .game-header-weather-atmosphere,
.game-matchup-stadium[data-bb-weather="indoor"]
  .game-header-weather-atmosphere {
  opacity: 0;
}

/* Familiar weather-app clear sky, kept subtle behind the modules. */
.game-matchup-stadium[data-bb-weather="clear"]
  .game-header-weather-atmosphere {
  opacity: 0.64;
  background:
    radial-gradient(
      circle at 78% -18%,
      rgba(255, 232, 154, 0.38),
      transparent 35%
    ),
    linear-gradient(
      180deg,
      rgba(70, 157, 210, 0.34),
      rgba(24, 75, 112, 0.1) 58%,
      rgba(3, 11, 20, 0.18)
    );
}

/* Broad static cloud masses instead of a cartoon icon. */
.game-matchup-stadium[data-bb-weather="cloudy"]
  .game-header-weather-atmosphere {
  opacity: calc(
    0.48 + var(--bb-weather-intensity) * 0.42
  );
  background:
    radial-gradient(
      ellipse at 13% 18%,
      rgba(188, 204, 217, 0.28) 0 16%,
      transparent 42%
    ),
    radial-gradient(
      ellipse at 48% 8%,
      rgba(160, 177, 193, 0.24) 0 20%,
      transparent 48%
    ),
    radial-gradient(
      ellipse at 88% 26%,
      rgba(199, 211, 220, 0.2) 0 14%,
      transparent 40%
    ),
    linear-gradient(
      180deg,
      rgba(64, 82, 99, 0.62),
      rgba(14, 27, 42, 0.38)
    );
  filter:
    saturate(0.72)
    brightness(
      calc(1 - var(--bb-weather-darkness) * 0.36)
    );
}

.game-matchup-stadium[data-bb-weather="fog"]
  .game-header-weather-atmosphere {
  opacity: calc(
    0.58 + var(--bb-weather-haze) * 0.36
  );
  background:
    linear-gradient(
      180deg,
      rgba(203, 216, 222, 0.22),
      rgba(143, 163, 174, 0.46) 46%,
      rgba(208, 219, 223, 0.32)
    ),
    radial-gradient(
      ellipse at 50% 52%,
      rgba(231, 238, 240, 0.36),
      transparent 72%
    );
  backdrop-filter:
    blur(2.2px)
    saturate(0.68);
  -webkit-backdrop-filter:
    blur(2.2px)
    saturate(0.68);
}

/* Rain and thunder darken the complete bar, not the photo module alone. */
.game-matchup-stadium[data-bb-weather="rain"]
  .game-header-weather-atmosphere,
.game-matchup-stadium[data-bb-weather="freezing-rain"]
  .game-header-weather-atmosphere,
.game-matchup-stadium[data-bb-weather="thunder"]
  .game-header-weather-atmosphere {
  opacity: calc(
    0.58 + var(--bb-weather-intensity) * 0.36
  );
  background:
    radial-gradient(
      ellipse at 25% -8%,
      rgba(126, 155, 177, 0.2),
      transparent 44%
    ),
    radial-gradient(
      ellipse at 80% 8%,
      rgba(91, 118, 144, 0.22),
      transparent 40%
    ),
    linear-gradient(
      180deg,
      rgba(25, 45, 65, 0.7),
      rgba(4, 13, 24, 0.76)
    );
  filter:
    saturate(0.7)
    brightness(
      calc(1 - var(--bb-weather-darkness) * 0.46)
    );
}

.game-matchup-stadium[data-bb-weather="thunder"]
  .game-header-weather-atmosphere {
  background:
    radial-gradient(
      ellipse at 28% -10%,
      rgba(106, 120, 160, 0.22),
      transparent 46%
    ),
    radial-gradient(
      ellipse at 82% 6%,
      rgba(82, 91, 128, 0.28),
      transparent 42%
    ),
    linear-gradient(
      180deg,
      rgba(21, 25, 48, 0.88),
      rgba(2, 7, 17, 0.9)
    );
}

.game-matchup-stadium[data-bb-weather="snow"]
  .game-header-weather-atmosphere,
.game-matchup-stadium[data-bb-weather="sleet"]
  .game-header-weather-atmosphere {
  opacity: calc(
    0.52 + var(--bb-weather-intensity) * 0.32
  );
  background:
    linear-gradient(
      180deg,
      rgba(174, 198, 214, 0.4),
      rgba(74, 103, 127, 0.32) 58%,
      rgba(10, 26, 42, 0.36)
    );
  filter: saturate(0.58);
}

/*
  Precipitation remains static by design. Intensity changes density and
  visibility without creating a distracting looping rain animation.
*/
.game-header-weather-precipitation {
  z-index: 1;
  opacity: 0;
}

.game-matchup-stadium[data-bb-weather="rain"]
  .game-header-weather-precipitation,
.game-matchup-stadium[data-bb-weather="freezing-rain"]
  .game-header-weather-precipitation,
.game-matchup-stadium[data-bb-weather="thunder"]
  .game-header-weather-precipitation {
  opacity: calc(
    0.08 + var(--bb-rain-density) * 0.7
  );
  background-image:
    repeating-linear-gradient(
      106deg,
      transparent 0 11px,
      rgba(210, 231, 245, 0.46) 12px,
      transparent 13px 24px
    ),
    repeating-linear-gradient(
      106deg,
      transparent 0 23px,
      rgba(150, 191, 219, 0.32) 24px,
      transparent 25px 39px
    );
  background-size:
    26px 34px,
    41px 55px;
  background-position:
    0 0,
    13px 7px;
  filter:
    blur(0.2px)
    brightness(1.08);
}

.game-matchup-stadium[data-bb-weather-level="heavy"]
  .game-header-weather-precipitation {
  background-size:
    17px 25px,
    29px 38px;
  filter:
    blur(0.35px)
    brightness(1.12);
}

.game-matchup-stadium[data-bb-weather="snow"]
  .game-header-weather-precipitation,
.game-matchup-stadium[data-bb-weather="sleet"]
  .game-header-weather-precipitation {
  opacity: calc(
    0.1 + var(--bb-snow-density) * 0.68
  );
  background-image:
    radial-gradient(
      circle,
      rgba(246, 251, 255, 0.92) 0 1.3px,
      transparent 1.7px
    ),
    radial-gradient(
      circle,
      rgba(220, 236, 247, 0.78) 0 1.8px,
      transparent 2.2px
    ),
    radial-gradient(
      circle,
      rgba(255, 255, 255, 0.72) 0 0.9px,
      transparent 1.3px
    );
  background-size:
    31px 34px,
    49px 55px,
    19px 23px;
  background-position:
    0 0,
    17px 11px,
    8px 4px;
}

/*
  Water-on-glass increases sharply with rainfall intensity. The trails and
  large drops live across the bar behind the stadium card and team modules.
*/
.game-header-weather-glass {
  z-index: 2;
  opacity: 0;
  background:
    radial-gradient(
      ellipse at 7% 18%,
      rgba(231, 245, 255, 0.44) 0 1.5px,
      rgba(111, 166, 199, 0.18) 2.5px,
      transparent 5px
    ),
    radial-gradient(
      ellipse at 22% 64%,
      rgba(227, 243, 253, 0.4) 0 2px,
      rgba(92, 151, 188, 0.16) 3px,
      transparent 6px
    ),
    radial-gradient(
      ellipse at 39% 27%,
      rgba(235, 247, 255, 0.38) 0 1.4px,
      rgba(101, 157, 192, 0.15) 2.6px,
      transparent 5.5px
    ),
    radial-gradient(
      ellipse at 58% 72%,
      rgba(235, 247, 255, 0.42) 0 2.1px,
      rgba(99, 158, 195, 0.17) 3.2px,
      transparent 6.5px
    ),
    radial-gradient(
      ellipse at 74% 22%,
      rgba(232, 245, 255, 0.4) 0 1.8px,
      rgba(93, 151, 188, 0.16) 3px,
      transparent 6px
    ),
    radial-gradient(
      ellipse at 91% 57%,
      rgba(239, 249, 255, 0.38) 0 2.3px,
      rgba(98, 155, 191, 0.15) 3.4px,
      transparent 7px
    ),
    repeating-linear-gradient(
      91deg,
      transparent 0 31px,
      rgba(194, 224, 241, 0.11) 32px 33px,
      transparent 34px 68px
    ),
    linear-gradient(
      180deg,
      transparent 0 62%,
      rgba(116, 174, 207, 0.08) 78%,
      rgba(201, 228, 241, 0.13) 100%
    );
  background-size:
    83px 79px,
    101px 96px,
    73px 89px,
    119px 107px,
    91px 83px,
    127px 113px,
    100% 100%,
    100% 100%;
  background-position:
    0 0,
    8px 15px,
    21px 5px,
    2px 9px,
    17px 23px,
    5px 3px,
    0 0,
    0 0;
  backdrop-filter:
    blur(var(--bb-glass-blur))
    saturate(0.9);
  -webkit-backdrop-filter:
    blur(var(--bb-glass-blur))
    saturate(0.9);
  mix-blend-mode: screen;
}

.game-matchup-stadium[data-bb-weather="rain"]
  .game-header-weather-glass,
.game-matchup-stadium[data-bb-weather="freezing-rain"]
  .game-header-weather-glass,
.game-matchup-stadium[data-bb-weather="thunder"]
  .game-header-weather-glass {
  opacity: var(--bb-wet-glass);
}

.game-matchup-stadium[data-bb-weather-level="heavy"]
  .game-header-weather-glass {
  background-size:
    61px 57px,
    79px 72px,
    53px 67px,
    87px 81px,
    69px 61px,
    97px 83px,
    100% 100%,
    100% 100%;
}

/* Lightning remains the only animated weather effect. */
.game-header-weather-lightning {
  z-index: 3;
  opacity: 0;
  background:
    radial-gradient(
      circle at 72% 2%,
      rgba(224, 231, 255, 0.82),
      rgba(139, 156, 229, 0.28) 22%,
      transparent 48%
    );
  mix-blend-mode: screen;
}

.game-matchup-stadium[data-bb-weather="thunder"]
  .game-header-weather-lightning {
  animation:
    boring-bets-full-bar-lightning
    8.4s
    steps(1, end)
    infinite;
}

@keyframes boring-bets-full-bar-lightning {
  0%,
  7%,
  9%,
  12%,
  54%,
  57%,
  100% {
    opacity: 0;
  }

  8% {
    opacity: 0.72;
  }

  10% {
    opacity: 0.24;
  }

  55% {
    opacity: 0.46;
  }

  56% {
    opacity: 0.12;
  }
}

/* Indoor and closed-roof parks have no exterior atmosphere. */
.game-matchup-stadium[data-bb-weather="indoor"]
  .game-header-weather-scene,
.game-matchup-stadium[data-bb-weather-exposed="false"]
  .game-header-weather-scene {
  opacity: 0;
  visibility: hidden;
}

/* Keep all game information legible over intense weather. */
.game-matchup-stadium[data-bb-weather-level="heavy"]
  .game-team,
.game-matchup-stadium[data-bb-weather="thunder"]
  .game-team {
  text-shadow:
    0 2px 8px rgba(0, 0, 0, 0.9),
    0 0 18px rgba(0, 0, 0, 0.58);
}

@media (prefers-reduced-motion: reduce) {
  .game-matchup-stadium[data-bb-weather="thunder"]
    .game-header-weather-lightning {
    animation: none !important;
    opacity: 0.08;
  }
}

/* BORING BETS: REALISTIC FULL BAR RAIN V3 */

/*
  Replace the uniform striped rain with three irregular depth planes.
  Rain stays static. Intensity still comes from --bb-rain-density.
*/
.game-header-weather-precipitation {
  overflow: hidden !important;
}

.game-matchup-stadium[data-bb-weather="rain"]
  .game-header-weather-precipitation,
.game-matchup-stadium[data-bb-weather="freezing-rain"]
  .game-header-weather-precipitation,
.game-matchup-stadium[data-bb-weather="thunder"]
  .game-header-weather-precipitation {
  opacity: calc(
    0.12 + var(--bb-rain-density) * 0.68
  ) !important;

  /*
    Far rain: thin, dim, short streaks. The tile sizes deliberately do not
    share common multiples, so the pattern does not form obvious columns.
  */
  background-image:
    linear-gradient(
      108deg,
      transparent 0 46%,
      rgba(203, 225, 239, 0.26) 47% 48%,
      transparent 49% 100%
    ),
    linear-gradient(
      105deg,
      transparent 0 43%,
      rgba(173, 207, 229, 0.2) 44% 45.2%,
      transparent 46.2% 100%
    ),
    linear-gradient(
      111deg,
      transparent 0 52%,
      rgba(224, 238, 247, 0.18) 53% 54%,
      transparent 55% 100%
    ) !important;

  background-size:
    43px 71px,
    67px 103px,
    97px 137px !important;

  background-position:
    7px -13px,
    29px 17px,
    -41px 43px !important;

  background-repeat: repeat !important;
  background-blend-mode: screen !important;

  filter:
    blur(0.18px)
    brightness(1.03) !important;
}

/* Mid-distance rain. */
.game-header-weather-precipitation::before {
  content: "";
  position: absolute;
  inset: -12% -4%;
  pointer-events: none;

  background-image:
    linear-gradient(
      106deg,
      transparent 0 45%,
      rgba(224, 239, 248, 0.48) 46% 47.2%,
      transparent 48.5% 100%
    ),
    linear-gradient(
      109deg,
      transparent 0 51%,
      rgba(184, 215, 234, 0.34) 52% 53.3%,
      transparent 54.5% 100%
    ),
    linear-gradient(
      103deg,
      transparent 0 39%,
      rgba(232, 243, 250, 0.28) 40% 41%,
      transparent 42% 100%
    );

  background-size:
    79px 119px,
    113px 157px,
    149px 197px;

  background-position:
    -19px 23px,
    47px -31px,
    91px 61px;

  background-repeat: repeat;
  background-blend-mode: screen;

  opacity: 0.52;
  filter: blur(0.28px);
}

/* Sparse foreground streaks. These create depth without covering the copy. */
.game-header-weather-precipitation::after {
  content: "";
  position: absolute;
  inset: -18% -7%;
  pointer-events: none;

  background-image:
    linear-gradient(
      104deg,
      transparent 0 47%,
      rgba(240, 248, 253, 0.62) 48% 49.5%,
      transparent 51% 100%
    ),
    linear-gradient(
      110deg,
      transparent 0 55%,
      rgba(202, 226, 241, 0.48) 56% 57.5%,
      transparent 59% 100%
    );

  background-size:
    173px 231px,
    241px 307px;

  background-position:
    37px -53px,
    -83px 71px;

  background-repeat: repeat;
  background-blend-mode: screen;

  opacity: 0.1;
  filter: blur(0.62px);
}

.game-matchup-stadium[data-bb-weather-level="moderate"]
  .game-header-weather-precipitation::after {
  opacity: 0.28;
}

.game-matchup-stadium[data-bb-weather-level="heavy"]
  .game-header-weather-precipitation::before {
  opacity: 0.72;
}

.game-matchup-stadium[data-bb-weather-level="heavy"]
  .game-header-weather-precipitation::after {
  opacity: 0.48;
}

/*
  Realistic glass: small and medium beads with a bright upper edge and
  darker lower edge. Incommensurate tile sizes prevent obvious repetition.
*/
.game-header-weather-glass {
  background-image:
    radial-gradient(
      ellipse 4px 6px at 47% 42%,
      rgba(244, 251, 255, 0.56) 0 13%,
      rgba(155, 196, 220, 0.18) 31%,
      rgba(18, 53, 76, 0.16) 57%,
      transparent 72%
    ),
    radial-gradient(
      ellipse 6px 9px at 54% 48%,
      rgba(239, 249, 255, 0.46) 0 12%,
      rgba(135, 183, 211, 0.18) 30%,
      rgba(11, 42, 64, 0.17) 58%,
      transparent 74%
    ),
    radial-gradient(
      ellipse 3px 4px at 44% 39%,
      rgba(250, 253, 255, 0.6) 0 15%,
      rgba(152, 197, 222, 0.16) 34%,
      rgba(13, 44, 66, 0.14) 60%,
      transparent 75%
    ),
    radial-gradient(
      ellipse 8px 12px at 51% 52%,
      rgba(235, 247, 253, 0.38) 0 10%,
      rgba(117, 170, 202, 0.16) 29%,
      rgba(8, 37, 58, 0.18) 59%,
      transparent 76%
    ),
    linear-gradient(
      180deg,
      transparent 0 66%,
      rgba(94, 148, 181, 0.08) 82%,
      rgba(197, 224, 239, 0.14) 100%
    ) !important;

  background-size:
    71px 83px,
    109px 127px,
    47px 59px,
    157px 181px,
    100% 100% !important;

  background-position:
    3px 11px,
    29px -17px,
    -13px 31px,
    67px 43px,
    0 0 !important;

  background-repeat:
    repeat,
    repeat,
    repeat,
    repeat,
    no-repeat !important;

  background-blend-mode:
    screen,
    screen,
    screen,
    screen,
    normal !important;

  mix-blend-mode: normal !important;

  backdrop-filter:
    blur(var(--bb-glass-blur))
    saturate(0.88)
    contrast(1.02) !important;

  -webkit-backdrop-filter:
    blur(var(--bb-glass-blur))
    saturate(0.88)
    contrast(1.02) !important;
}

/* A few localized runoff trails instead of evenly spaced vertical stripes. */
.game-header-weather-glass::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  background:
    linear-gradient(
      180deg,
      transparent 0 8%,
      rgba(225, 241, 250, 0.2) 18%,
      rgba(99, 157, 191, 0.1) 48%,
      transparent 78%
    ) 8% 0 / 2px 100% no-repeat,

    linear-gradient(
      180deg,
      transparent 0 24%,
      rgba(231, 244, 251, 0.18) 34%,
      rgba(87, 145, 180, 0.1) 67%,
      transparent 92%
    ) 23% 0 / 3px 100% no-repeat,

    linear-gradient(
      180deg,
      transparent 0 4%,
      rgba(230, 244, 252, 0.16) 16%,
      rgba(82, 140, 176, 0.09) 52%,
      transparent 71%
    ) 47% 0 / 2px 100% no-repeat,

    linear-gradient(
      180deg,
      transparent 0 31%,
      rgba(238, 248, 253, 0.2) 42%,
      rgba(91, 151, 185, 0.1) 75%,
      transparent 96%
    ) 68% 0 / 4px 100% no-repeat,

    linear-gradient(
      180deg,
      transparent 0 13%,
      rgba(229, 243, 251, 0.17) 24%,
      rgba(86, 144, 178, 0.09) 58%,
      transparent 84%
    ) 89% 0 / 2px 100% no-repeat;

  opacity: calc(
    0.06 + var(--bb-rain-density) * 0.42
  );

  filter: blur(0.38px);
}

/* Heavy rain adds broader merged water paths and a stronger lower wet edge. */
.game-header-weather-glass::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  background:
    radial-gradient(
      ellipse at 13% 107%,
      rgba(183, 217, 235, 0.16),
      transparent 31%
    ),
    radial-gradient(
      ellipse at 54% 112%,
      rgba(173, 210, 231, 0.13),
      transparent 37%
    ),
    radial-gradient(
      ellipse at 91% 105%,
      rgba(193, 222, 238, 0.15),
      transparent 29%
    ),
    linear-gradient(
      180deg,
      transparent 0 76%,
      rgba(111, 169, 201, 0.09) 90%,
      rgba(215, 235, 245, 0.15) 100%
    );

  opacity: calc(
    0.04 + var(--bb-rain-density) * 0.5
  );

  filter: blur(0.5px);
}

.game-matchup-stadium[data-bb-weather-level="light"]
  .game-header-weather-glass::before {
  opacity: 0.1;
}

.game-matchup-stadium[data-bb-weather-level="heavy"]
  .game-header-weather-glass::before {
  opacity: 0.52;
}

.game-matchup-stadium[data-bb-weather-level="heavy"]
  .game-header-weather-glass::after {
  opacity: 0.58;
}

/* Freezing rain is slightly sharper and colder than normal rain. */
.game-matchup-stadium[data-bb-weather="freezing-rain"]
  .game-header-weather-precipitation {
  filter:
    blur(0.08px)
    brightness(1.15) !important;
}

/* BORING BETS: RESTRAINED WEATHER APP V4 */

/*
  Preserve the weather-state system. Remove repeating rain lines,
  explicit droplets and decorative runoff. Rain is communicated through
  atmosphere, reduced clarity, glass softness and a wet lower sheen.
*/

.game-matchup-stadium[data-bb-weather="rain"]
  .game-header-weather-precipitation,
.game-matchup-stadium[data-bb-weather="freezing-rain"]
  .game-header-weather-precipitation,
.game-matchup-stadium[data-bb-weather="thunder"]
  .game-header-weather-precipitation {
  background:
    radial-gradient(
      ellipse at 18% 8%,
      rgba(183, 210, 226, 0.12),
      transparent 42%
    ),
    radial-gradient(
      ellipse at 74% 15%,
      rgba(138, 177, 201, 0.10),
      transparent 48%
    ),
    linear-gradient(
      180deg,
      rgba(205, 225, 236, 0.035),
      rgba(79, 126, 157, 0.07) 58%,
      rgba(14, 42, 65, 0.12)
    ) !important;

  background-repeat: no-repeat !important;
  background-size: cover !important;
  opacity: calc(
    0.12 + var(--bb-rain-density) * 0.24
  ) !important;
  filter: blur(7px) !important;
  transform: scale(1.04);
}

/* Remove all pseudo-element rain streaks installed by earlier versions. */
.game-header-weather-precipitation::before,
.game-header-weather-precipitation::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/*
  Broad, non-repeating glass distortion. No beads or repeated dots.
  Heavier rain increases blur and lower-edge wetness.
*/
.game-header-weather-glass {
  background:
    radial-gradient(
      ellipse 30% 58% at 9% 18%,
      rgba(229, 241, 247, 0.075),
      transparent 72%
    ),
    radial-gradient(
      ellipse 24% 52% at 43% 1%,
      rgba(198, 222, 235, 0.06),
      transparent 74%
    ),
    radial-gradient(
      ellipse 32% 65% at 87% 22%,
      rgba(222, 237, 245, 0.065),
      transparent 76%
    ),
    linear-gradient(
      180deg,
      transparent 0 68%,
      rgba(78, 133, 166, 0.05) 82%,
      rgba(179, 211, 228, 0.13) 100%
    ) !important;

  background-repeat: no-repeat !important;
  background-size: 100% 100% !important;
  background-position: center !important;
  opacity: calc(
    0.08 + var(--bb-wet-glass) * 0.46
  ) !important;

  backdrop-filter:
    blur(calc(0.2px + var(--bb-wet-glass) * 1.15px))
    saturate(calc(1 - var(--bb-wet-glass) * 0.12))
    contrast(calc(1 + var(--bb-wet-glass) * 0.025)) !important;

  -webkit-backdrop-filter:
    blur(calc(0.2px + var(--bb-wet-glass) * 1.15px))
    saturate(calc(1 - var(--bb-wet-glass) * 0.12))
    contrast(calc(1 + var(--bb-wet-glass) * 0.025)) !important;

  mix-blend-mode: normal !important;
  filter: none !important;
}

/* Remove explicit runoff trails and pooled-drop graphics. */
.game-header-weather-glass::before,
.game-header-weather-glass::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* Light rain barely alters the bar. */
.game-matchup-stadium[data-bb-weather-level="light"]
  .game-header-weather-precipitation {
  opacity: 0.12 !important;
}

.game-matchup-stadium[data-bb-weather-level="light"]
  .game-header-weather-glass {
  opacity: 0.13 !important;
  backdrop-filter: blur(0.3px) saturate(0.98) !important;
  -webkit-backdrop-filter: blur(0.3px) saturate(0.98) !important;
}

/* Moderate rain adds visible haze without literal rain lines. */
.game-matchup-stadium[data-bb-weather-level="moderate"]
  .game-header-weather-precipitation {
  opacity: 0.24 !important;
}

.game-matchup-stadium[data-bb-weather-level="moderate"]
  .game-header-weather-glass {
  opacity: 0.30 !important;
}

/* Heavy rain becomes wetter, darker and less clear rather than busier. */
.game-matchup-stadium[data-bb-weather-level="heavy"]
  .game-header-weather-precipitation {
  opacity: 0.38 !important;
  filter: blur(10px) !important;
}

.game-matchup-stadium[data-bb-weather-level="heavy"]
  .game-header-weather-glass {
  opacity: 0.52 !important;
  backdrop-filter: blur(1.35px) saturate(0.88) contrast(1.025) !important;
  -webkit-backdrop-filter: blur(1.35px) saturate(0.88) contrast(1.025) !important;
}

/* Thunder stays darker; lightning remains the obvious animation. */
.game-matchup-stadium[data-bb-weather="thunder"]
  .game-header-weather-precipitation {
  background:
    radial-gradient(
      ellipse at 20% 0%,
      rgba(141, 151, 202, 0.12),
      transparent 46%
    ),
    radial-gradient(
      ellipse at 78% 12%,
      rgba(102, 123, 177, 0.11),
      transparent 50%
    ),
    linear-gradient(
      180deg,
      rgba(169, 178, 219, 0.035),
      rgba(44, 57, 99, 0.095) 60%,
      rgba(6, 13, 34, 0.14)
    ) !important;
}

/* Fog is atmospheric obscuration rather than wet glass. */
.game-matchup-stadium[data-bb-weather="fog"]
  .game-header-weather-precipitation {
  background:
    radial-gradient(
      ellipse at 50% 48%,
      rgba(235, 242, 245, 0.28),
      transparent 72%
    ),
    linear-gradient(
      180deg,
      rgba(214, 226, 232, 0.11),
      rgba(129, 151, 163, 0.18)
    ) !important;
  opacity: 0.68 !important;
  filter: blur(12px) !important;
}

/* Snow remains visually distinct without borrowing the rain treatment. */
.game-matchup-stadium[data-bb-weather="snow"]
  .game-header-weather-glass,
.game-matchup-stadium[data-bb-weather="sleet"]
  .game-header-weather-glass {
  opacity: 0.12 !important;
  backdrop-filter: blur(0.35px) saturate(0.9) !important;
  -webkit-backdrop-filter: blur(0.35px) saturate(0.9) !important;
}

/* BORING BETS: CLEAN CENTERED MATCHUP HEADER V1 */

/*
  One real large header box:
    away team | venue + stadium + weather | home team

  No fake caps, no translated containers, no floating text.
*/
.game-matchup.game-matchup-stadium.bb-clean-matchup-header {
  box-sizing: border-box !important;
  position: relative !important;

  display: grid !important;
  grid-template-columns:
    minmax(170px, 1fr)
    minmax(360px, 430px)
    minmax(170px, 1fr) !important;
  align-items: center !important;
  justify-items: stretch !important;
  column-gap: clamp(20px, 4vw, 58px) !important;

  min-height: 154px !important;
  padding: 14px clamp(24px, 5vw, 72px) !important;

  overflow: hidden !important;
  isolation: isolate !important;

  border-top-color:
    rgba(74, 116, 167, 0.48) !important;
}

/* Remove every obsolete cap artifact, even before JavaScript removes it. */
.game-matchup.game-matchup-stadium
  > :is(
    .bb-explicit-stadium-top-cap,
    .bb-outer-team-box-top-cap,
    .bb-isolated-venue-label
  ) {
  display: none !important;
}

/* Full-bar weather remains attached to the whole header box. */
.game-matchup.game-matchup-stadium
  > .game-header-weather-scene {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  transform: none !important;
  translate: 0 0 !important;
}

/* Both team/logo blocks are genuinely centered in their thirds. */
.game-matchup.game-matchup-stadium
  > .bb-clean-team-block {
  position: relative !important;
  inset: auto !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  align-self: center !important;
  justify-self: stretch !important;

  margin: 0 !important;
  transform: none !important;
  translate: 0 0 !important;

  min-width: 0 !important;
  z-index: 4 !important;
}

/*
  Center stack: venue/time as a normal row, then the stadium picture,
  then the weather strip. Nothing floats over anything else.
*/
.game-matchup.game-matchup-stadium
  > .game-stadium-weather.bb-clean-stadium-stack {
  position: relative !important;
  inset: auto !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: center !important;

  align-self: center !important;
  justify-self: center !important;

  width: min(100%, 430px) !important;
  max-width: 430px !important;
  min-width: 0 !important;

  margin: 0 !important;
  padding: 0 !important;
  gap: 5px !important;

  transform: none !important;
  translate: 0 0 !important;

  overflow: visible !important;
  z-index: 5 !important;
}

/* Exact venue/time row, now inside the center stack above the picture. */
.game-stadium-weather
  > .bb-clean-venue-row {
  position: static !important;
  inset: auto !important;

  order: -100 !important;
  flex: 0 0 auto !important;
  align-self: stretch !important;

  display: block !important;

  width: 100% !important;
  height: auto !important;

  margin: 0 !important;
  padding: 0 !important;

  transform: none !important;
  translate: 0 0 !important;

  color: rgba(255, 255, 255, 0.98) !important;
  -webkit-text-fill-color:
    rgba(255, 255, 255, 0.98) !important;

  text-align: center !important;
  white-space: nowrap !important;
  line-height: 1.1 !important;

  opacity: 1 !important;
  visibility: visible !important;
  overflow: visible !important;
  z-index: 8 !important;

  text-shadow:
    0 1px 2px rgba(0, 0, 0, 1),
    0 2px 6px rgba(0, 0, 0, 0.86) !important;
}

/* Reset any surviving movement from previous experiments. */
.game-matchup.game-matchup-stadium
  :is(
    .bb-stadium-text-aligned,
    .bb-venue-row-photo-aligned,
    .bb-venue-text-above-photo,
    .bb-final-venue-row,
    .bb-venue-row-over-cap,
    .bb-venue-row-above-outer-cap
  ) {
  transform: none !important;
  translate: 0 0 !important;
}

@media (max-width: 820px) {
  .game-matchup.game-matchup-stadium.bb-clean-matchup-header {
    grid-template-columns:
      minmax(105px, 1fr)
      minmax(270px, 1.6fr)
      minmax(105px, 1fr) !important;
    column-gap: 14px !important;
    min-height: 142px !important;
    padding: 12px 16px !important;
  }
}

@media (max-width: 600px) {
  .game-matchup.game-matchup-stadium.bb-clean-matchup-header {
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "away home"
      "stadium stadium" !important;
    row-gap: 10px !important;
    min-height: auto !important;
    padding: 14px !important;
  }

  .game-matchup.game-matchup-stadium
    > .bb-clean-team-away {
    grid-area: away !important;
  }

  .game-matchup.game-matchup-stadium
    > .bb-clean-team-home {
    grid-area: home !important;
  }

  .game-matchup.game-matchup-stadium
    > .game-stadium-weather.bb-clean-stadium-stack {
    grid-area: stadium !important;
    width: min(100%, 430px) !important;
  }
}

/* BORING BETS: DEDUPE VENUE TIME ROW V1 */

.game-matchup.game-matchup-stadium
  .bb-duplicate-venue-time-hidden {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

/* Ensure the single retained row remains readable. */
.game-stadium-weather
  > .bb-clean-venue-row {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* BORING BETS: TIGHT HEADER ORIGINAL VENUE FONT V1 */

/*
  Tighten the real outer header. Content height now determines the box;
  there is no large forced minimum height or oversized empty padding.
*/
.game-matchup.game-matchup-stadium.bb-clean-matchup-header {
  grid-template-columns:
    minmax(150px, 1fr)
    minmax(340px, 410px)
    minmax(150px, 1fr) !important;

  column-gap: clamp(14px, 2.4vw, 34px) !important;

  min-height: 0 !important;
  height: auto !important;

  padding:
    8px clamp(18px, 3vw, 42px) 9px !important;
}

/* Tighten the center stack without allowing overlap. */
.game-matchup.game-matchup-stadium
  > .game-stadium-weather.bb-clean-stadium-stack {
  width: min(100%, 410px) !important;
  max-width: 410px !important;
  gap: 3px !important;
}

/* Remove extra vertical margins inside the three major columns. */
.game-matchup.game-matchup-stadium
  > .bb-clean-team-block,
.game-matchup.game-matchup-stadium
  > .game-stadium-weather.bb-clean-stadium-stack {
  margin-block: 0 !important;
}

/*
  Restore the original venue/time typography measured in the old outer
  header context. Do not impose a new uppercase, weight, size, or spacing.
*/
.game-stadium-weather
  > .bb-clean-venue-row {
  font-family:
    var(--bb-original-venue-font-family, inherit) !important;
  font-size:
    var(--bb-original-venue-font-size, inherit) !important;
  font-weight:
    var(--bb-original-venue-font-weight, inherit) !important;
  font-style:
    var(--bb-original-venue-font-style, normal) !important;
  letter-spacing:
    var(--bb-original-venue-letter-spacing, normal) !important;
  text-transform:
    var(--bb-original-venue-text-transform, none) !important;
  line-height:
    var(--bb-original-venue-line-height, normal) !important;

  margin: 0 !important;
  padding: 0 0 2px !important;
}

/* Keep compact behavior sensible at narrower desktop/tablet widths. */
@media (max-width: 820px) {
  .game-matchup.game-matchup-stadium.bb-clean-matchup-header {
    grid-template-columns:
      minmax(105px, 1fr)
      minmax(260px, 1.55fr)
      minmax(105px, 1fr) !important;
    column-gap: 10px !important;
    min-height: 0 !important;
    padding: 7px 12px 8px !important;
  }
}

@media (max-width: 600px) {
  .game-matchup.game-matchup-stadium.bb-clean-matchup-header {
    row-gap: 7px !important;
    padding: 9px 10px !important;
  }

  .game-matchup.game-matchup-stadium
    > .game-stadium-weather.bb-clean-stadium-stack {
    width: min(100%, 410px) !important;
  }
}

/* BORING BETS: VENUE TEXT DOWN 3PX V1 */

/* Nudge only the park-name / game-time row. */
.game-stadium-weather
  > .bb-clean-venue-row {
  position: relative !important;
  top: 3px !important;
}


/* MLB opener-role notice */



/* MLB opener control */
.pitcher-bulk-toggle {
  border: 1px solid rgba(34, 151, 177, 0.78) !important;
  background:
    linear-gradient(
      135deg,
      rgba(8, 64, 83, 0.98),
      rgba(9, 104, 128, 0.92)
    ) !important;
  color: #e6faff !important;
  box-shadow:
    0 0 0 1px rgba(51, 175, 204, 0.10),
    0 0 12px rgba(16, 119, 148, 0.20) !important;
}

.pitcher-bulk-toggle:hover,
.pitcher-bulk-toggle:focus-visible {
  border-color: rgba(82, 190, 216, 0.95) !important;
  background:
    linear-gradient(
      135deg,
      rgba(7, 53, 72, 1),
      rgba(8, 87, 111, 0.98)
    ) !important;
  box-shadow:
    0 0 0 2px rgba(63, 169, 197, 0.16),
    0 0 16px rgba(17, 127, 158, 0.30) !important;
}

/* BORING BETS: PHOTOGRAPHIC WEATHER SKIES V1 */

/*
  Dormant until higher-resolution images are available.
  Original generated weather atmosphere remains active by default.

  Re-enable later by setting:
    data-bb-photo-weather-skies="true"
  on .game-matchup-stadium.
*/

/*
  Weather and game-time combinations select a photographic sky.
  Existing precipitation, wet-glass and lightning layers remain
  separate. No blur, backdrop blur, saturation or brightness
  filters are applied to these photographs.
*/

/* Clear */
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="clear"][data-bb-sky-time="day"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/day-clear.webp");
}

.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="clear"][data-bb-sky-time="dusk"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/dusk-clear.webp");
}

.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="clear"][data-bb-sky-time="night"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/night-clear.webp");
}

/* Cloudy */
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="cloudy"][data-bb-sky-time="day"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/day-partly-cloudy.webp");
}

.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="cloudy"][data-bb-sky-time="dusk"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/dusk-partly-cloudy.webp");
}

.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="cloudy"][data-bb-sky-time="night"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/night-cloudy.webp");
}

/* Fog */
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="fog"][data-bb-sky-time="day"],
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="fog"][data-bb-sky-time="dusk"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/dusk-fog.webp");
}

.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="fog"][data-bb-sky-time="night"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/night-fog.webp");
}

/* Rain */
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="rain"][data-bb-sky-time="day"],
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="freezing-rain"][data-bb-sky-time="day"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/day-rain.webp");
}

.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="rain"][data-bb-sky-time="dusk"],
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="rain"][data-bb-sky-time="night"],
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="freezing-rain"][data-bb-sky-time="dusk"],
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="freezing-rain"][data-bb-sky-time="night"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/night-rain.webp");
}

/* Thunder */
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="thunder"][data-bb-sky-time="day"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/day-thunderstorm.webp");
}

.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="thunder"][data-bb-sky-time="dusk"],
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="thunder"][data-bb-sky-time="night"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/night-thunderstorm.webp");
}

/* Snow currently falls back to the available night photograph. */
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="snow"] {
  --bb-weather-sky-image:
    url("assets/images/weather-skies/night-snow.webp");
}

/* Replace the old generated atmosphere with the selected photograph. */
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-photo-weather-skies="true"]:is(
  [data-bb-weather="clear"],
  [data-bb-weather="cloudy"],
  [data-bb-weather="fog"],
  [data-bb-weather="rain"],
  [data-bb-weather="freezing-rain"],
  [data-bb-weather="thunder"],
  [data-bb-weather="snow"]
) .game-header-weather-atmosphere {
  opacity: 1 !important;

  background:
    var(--bb-weather-sky-image)
    center 42% / cover
    no-repeat !important;

  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Indoor and roof-closed suppression remains authoritative. */
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather="indoor"]
  .game-header-weather-scene,
.game-matchup-stadium[data-bb-photo-weather-skies="true"][data-bb-weather-exposed="false"]
  .game-header-weather-scene {
  opacity: 0 !important;
  visibility: hidden !important;
}

/* END BORING BETS: PHOTOGRAPHIC WEATHER SKIES V1 */


/* BORING BETS ROOF STATUS V1 */

.starter-roof-status-group {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.roof-status::before {
  content: " · ";
  color: var(--muted);
}

.roof-status-unknown {
  color: var(--muted);
}

/* BORING BETS: PORTRAIT STADIUM HEADER FIX V1 */

/*
  The older compact header rules cap the stadium module and photo at
  74px on phones. The clean two-row mobile layout needs normal content
  height so the venue row and a usable landscape stadium photo both fit.
*/
@media (max-width: 600px) {
  .game-matchup.game-matchup-stadium.bb-clean-matchup-header {
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "away home"
      "stadium stadium" !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    align-items: start !important;
    row-gap: 8px !important;
    overflow: hidden !important;
  }

  .game-matchup.game-matchup-stadium
    > .game-stadium-weather.bb-clean-stadium-stack {
    grid-area: stadium !important;

    display: flex !important;
    flex-direction: column !important;

    width: min(100%, 430px) !important;
    max-width: 430px !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    justify-self: center !important;
    align-self: start !important;
    overflow: visible !important;
  }

  .game-matchup.game-matchup-stadium
    > .game-stadium-weather.bb-clean-stadium-stack
    > .game-stadium-photo-frame {
    position: relative !important;

    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    aspect-ratio: 16 / 9 !important;
    overflow: hidden !important;
  }

  .game-matchup.game-matchup-stadium
    > .game-stadium-weather.bb-clean-stadium-stack
    .game-stadium-photo {
    position: absolute !important;
    inset: 0 !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
  }

  .game-matchup.game-matchup-stadium
    > .game-stadium-weather.bb-clean-stadium-stack
    .game-stadium-weather-bar {
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
  }
}

/* BORING BETS: MLB TEAM INTELLIGENCE PANEL V1 */
.game-team.team-intelligence-trigger {
  position: relative;
  cursor: pointer;
  border-radius: 14px;
  transition:
    box-shadow 160ms ease,
    transform 160ms ease,
    background-color 160ms ease;
}

.game-team.team-intelligence-trigger:hover,
.game-team.team-intelligence-trigger:focus-visible,
.game-team.team-intelligence-trigger.is-team-intelligence-selected {
  outline: none;
  transform: translateY(-1px);
  background: rgba(12, 22, 32, 0.42);
  box-shadow:
    inset 0 0 0 1px rgba(65, 223, 190, 0.42),
    0 0 22px rgba(65, 223, 190, 0.13);
}

.team-intelligence-trigger-hint {
  display: block;
  margin-top: 4px;
  color: rgba(205, 225, 236, 0.74);
  font-size: 0.56rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  white-space: nowrap;
}

.team-intelligence-panel[hidden] {
  display: none !important;
}

.team-intelligence-panel {
  margin: 12px 0 16px;
  overflow: hidden;
  border: 1px solid rgba(73, 118, 139, 0.42);
  border-radius: 18px;
  background:
    linear-gradient(
      180deg,
      rgba(13, 24, 34, 0.98),
      rgba(7, 13, 20, 0.99)
    );
  box-shadow:
    0 18px 50px rgba(0, 0, 0, 0.26),
    inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.team-intelligence-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(73, 118, 139, 0.28);
  background:
    linear-gradient(
      90deg,
      rgba(33, 102, 117, 0.2),
      rgba(82, 51, 126, 0.13),
      transparent
    );
}

.team-intelligence-panel-header > div {
  display: grid;
  gap: 3px;
}

.team-intelligence-eyebrow {
  color: #55e3c0;
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.team-intelligence-panel-header strong {
  color: #f4fbff;
  font-size: 1rem;
  letter-spacing: 0.03em;
}

.team-intelligence-close {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid rgba(151, 181, 196, 0.28);
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.22);
  color: #d8e7ee;
  font: inherit;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.team-intelligence-close:hover,
.team-intelligence-close:focus-visible {
  border-color: rgba(85, 227, 192, 0.7);
  color: #ffffff;
  outline: none;
}

.team-intelligence-status {
  padding: 22px 16px;
  color: #9db1bc;
  text-align: center;
}

.team-intelligence-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  padding: 12px;
}

.team-intelligence-team-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(89, 124, 143, 0.3);
  border-radius: 15px;
  background: rgba(4, 10, 16, 0.72);
}

.team-intelligence-team-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 15px;
  border-bottom: 1px solid rgba(89, 124, 143, 0.24);
}

.team-intelligence-team-heading > div:first-child {
  min-width: 0;
}

.team-intelligence-team-heading span,
.team-intelligence-summary-row span,
.team-intelligence-metric span {
  color: #78909d;
  font-size: 0.63rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.team-intelligence-team-heading h2 {
  margin: 4px 0 2px;
  color: #f3f8fb;
  font-size: clamp(1rem, 1.7vw, 1.25rem);
  line-height: 1.08;
}

.team-intelligence-team-heading p {
  margin: 0;
  color: #c7d5dc;
  font-size: 0.76rem;
}

.team-intelligence-team-heading small {
  display: block;
  margin-top: 4px;
  color: #778c98;
  font-size: 0.66rem;
}

.team-intelligence-record-block {
  flex: 0 0 auto;
  min-width: 94px;
  text-align: right;
}

.team-intelligence-record-block strong {
  display: block;
  color: #ffffff;
  font-size: 1.35rem;
  line-height: 1;
}

.team-intelligence-record-block span,
.team-intelligence-record-block small {
  display: block;
  margin-top: 5px;
  color: #90a5b0;
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.team-intelligence-summary-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  padding: 12px 15px;
  border-bottom: 1px solid rgba(89, 124, 143, 0.2);
  background: rgba(21, 42, 52, 0.22);
}

.team-intelligence-summary-row strong {
  display: block;
  margin-top: 3px;
  color: #e7f3f8;
  font-size: 0.82rem;
}

.team-intelligence-summary-row small {
  display: block;
  margin-top: 3px;
  color: #728994;
  font-size: 0.67rem;
}

.team-intelligence-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: rgba(78, 112, 129, 0.18);
}

.team-intelligence-metric {
  min-width: 0;
  min-height: 68px;
  padding: 10px 9px;
  background: rgba(7, 15, 22, 0.96);
}

.team-intelligence-metric strong {
  display: block;
  margin-top: 6px;
  color: #edf6fa;
  font-size: 0.91rem;
  line-height: 1;
}

.team-intelligence-metric small {
  display: block;
  margin-top: 4px;
  overflow: hidden;
  color: #647b87;
  font-size: 0.58rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.team-intelligence-recent {
  padding: 13px 15px 15px;
}

.team-intelligence-section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 9px;
}

.team-intelligence-section-heading strong {
  color: #d9e8ee;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
}

.team-intelligence-section-heading span {
  color: #657c87;
  font-size: 0.62rem;
}

.team-intelligence-margin-graph {
  position: relative;
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  align-items: stretch;
  height: 96px;
  padding: 4px 3px 18px;
}

.team-intelligence-margin-center {
  position: absolute;
  top: 42px;
  right: 0;
  left: 0;
  height: 1px;
  background: rgba(136, 159, 171, 0.26);
}

.team-intelligence-margin-column {
  position: relative;
  min-width: 0;
}

.team-intelligence-margin-column small {
  position: absolute;
  right: 1px;
  bottom: -16px;
  left: 1px;
  overflow: hidden;
  color: #627985;
  font-size: 0.52rem;
  text-align: center;
  text-overflow: clip;
  white-space: nowrap;
}

.team-intelligence-margin-bar {
  position: absolute;
  left: 50%;
  width: min(15px, 58%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%);
}

.team-intelligence-margin-bar.is-positive {
  bottom: 50%;
  background:
    linear-gradient(
      180deg,
      rgba(82, 234, 165, 0.96),
      rgba(39, 144, 104, 0.86)
    );
}

.team-intelligence-margin-bar.is-negative {
  top: 50%;
  border-radius: 2px 2px 4px 4px;
  background:
    linear-gradient(
      180deg,
      rgba(181, 58, 81, 0.84),
      rgba(255, 101, 124, 0.96)
    );
}

.team-intelligence-empty {
  padding: 18px 0;
  color: #718792;
  font-size: 0.72rem;
  text-align: center;
}

@media (max-width: 980px) {
  .team-intelligence-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .team-intelligence-content {
    grid-template-columns: minmax(0, 1fr);
  }

  .team-intelligence-panel[data-selected-side="home"]
    .team-intelligence-team-home {
    order: -1;
  }

  .team-intelligence-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .team-intelligence-trigger-hint {
    font-size: 0.5rem;
    letter-spacing: 0.08em;
  }
}

@media (max-width: 520px) {
  .team-intelligence-panel {
    margin-right: -2px;
    margin-left: -2px;
    border-radius: 14px;
  }

  .team-intelligence-content {
    padding: 8px;
  }

  .team-intelligence-team-heading {
    padding: 12px;
  }

  .team-intelligence-record-block {
    min-width: 82px;
  }

  .team-intelligence-record-block strong {
    font-size: 1.15rem;
  }

  .team-intelligence-summary-row {
    grid-template-columns: 1fr;
    padding: 10px 12px;
  }

  .team-intelligence-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .team-intelligence-metric {
    min-height: 62px;
  }

  .team-intelligence-recent {
    padding: 11px 12px 14px;
  }
}

/* BORING BETS: TEAM INTELLIGENCE HEADER REVEAL V2 */

/*
  Keep the panel as a real document-flow sibling immediately beneath the
  matchup header. Opening it therefore pushes the UPDATED / LINEUPS /
  STARTERS / ROOF strip, global color controls, pitching, bullpens, and
  every later section downward.
*/
.team-intelligence-panel,
.team-intelligence-panel[hidden] {
  display: block !important;
}

.team-intelligence-panel {
  --team-intelligence-open-height: 1px;

  max-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform:
    translateY(-12px)
    scaleY(0.985);
  transform-origin: top center;
  border-color: transparent;

  transition:
    max-height 420ms cubic-bezier(0.22, 1, 0.36, 1),
    margin-top 360ms cubic-bezier(0.22, 1, 0.36, 1),
    margin-bottom 360ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 220ms ease,
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1),
    border-color 180ms ease,
    visibility 0s linear 440ms;
}

.team-intelligence-panel.is-team-intelligence-open {
  max-height:
    var(
      --team-intelligence-open-height,
      3200px
    );
  margin-top: 10px;
  margin-bottom: 16px;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform:
    translateY(0)
    scaleY(1);
  border-color: rgba(73, 118, 139, 0.42);

  transition:
    max-height 420ms cubic-bezier(0.22, 1, 0.36, 1),
    margin-top 360ms cubic-bezier(0.22, 1, 0.36, 1),
    margin-bottom 360ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 240ms ease 70ms,
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1),
    border-color 180ms ease,
    visibility 0s linear 0s;
}

@media (prefers-reduced-motion: reduce) {
  .team-intelligence-panel,
  .team-intelligence-panel.is-team-intelligence-open {
    transition-duration: 1ms;
    transition-delay: 0ms;
  }
}

/* BORING BETS: TEAM MATCHUP DASHBOARD V3 */

.team-intelligence-panel {
  width: 100%;
  box-sizing: border-box;
}

.team-intelligence-panel-header {
  display: none !important;
}

.team-intelligence-content {
  display: grid;
  grid-template-columns:
    minmax(230px, 0.88fr)
    minmax(410px, 1.55fr)
    minmax(230px, 0.88fr);
  align-items: stretch;
  gap: 14px;
  width: 100%;
}

.team-intelligence-side-column,
.team-intelligence-matchup-center {
  min-width: 0;
  border: 1px solid rgba(107, 143, 160, 0.28);
  background: rgba(6, 13, 22, 0.76);
  box-sizing: border-box;
}

.team-intelligence-side-column {
  display: flex !important;
  flex-direction: column;
  padding: 16px;
}

.team-intelligence-team-home {
  text-align: right;
}

.team-intelligence-team-home
  .team-intelligence-team-heading {
  flex-direction: row-reverse;
}

.team-intelligence-team-heading {
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
}

.team-intelligence-record-block {
  flex: 0 0 auto;
}

.team-intelligence-team-home
  .team-intelligence-record-block {
  align-items: flex-start;
  text-align: left;
}

.team-intelligence-manager {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 12px;
  padding: 9px 10px;
  border: 1px solid rgba(107, 143, 160, 0.2);
  background: rgba(255, 255, 255, 0.025);
}

.team-intelligence-manager span {
  color: rgba(218, 229, 236, 0.62);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.team-intelligence-manager strong {
  font-size: 0.76rem;
}

.team-intelligence-side-metrics {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: auto;
}

.team-intelligence-side-metrics
  .team-intelligence-metric {
  min-width: 0;
  padding: 9px 8px;
}

.team-intelligence-team-home
  .team-intelligence-side-metrics {
  text-align: right;
}

.team-intelligence-matchup-center {
  display: flex;
  flex-direction: column;
  min-height: 430px;
  padding: 18px;
  border-color: rgba(129, 93, 255, 0.34);
  background:
    linear-gradient(
      180deg,
      rgba(25, 18, 48, 0.52),
      rgba(6, 13, 22, 0.78) 28%,
      rgba(6, 13, 22, 0.82)
    );
}

.team-intelligence-current-series {
  text-align: center;
  padding: 4px 10px 15px;
  border-bottom: 1px solid rgba(129, 93, 255, 0.26);
}

.team-intelligence-current-series > span,
.team-intelligence-center-heading strong,
.team-intelligence-context-grid span {
  color: rgba(210, 196, 255, 0.82);
  font-size: 0.68rem;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.team-intelligence-current-series > strong {
  display: block;
  margin-top: 5px;
  color: #ffffff;
  font-size: clamp(1.25rem, 2.2vw, 1.8rem);
  line-height: 1.1;
}

.team-intelligence-current-series > small {
  display: block;
  margin-top: 7px;
  color: rgba(218, 229, 236, 0.66);
  font-size: 0.72rem;
}

.team-intelligence-context-grid {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 12px 0;
}

.team-intelligence-context-grid > div {
  min-width: 0;
  padding: 9px;
  border: 1px solid rgba(107, 143, 160, 0.2);
  background: rgba(255, 255, 255, 0.025);
  text-align: center;
}

.team-intelligence-context-grid strong {
  display: block;
  margin-top: 5px;
  font-size: 0.72rem;
  line-height: 1.35;
}

.team-intelligence-momentum {
  padding-top: 4px;
}

.team-intelligence-center-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 7px;
}

.team-intelligence-center-heading span {
  color: rgba(218, 229, 236, 0.5);
  font-size: 0.67rem;
  text-align: right;
}

.team-intelligence-momentum-team {
  padding: 9px 0 4px;
  border-top: 1px solid rgba(107, 143, 160, 0.14);
}

.team-intelligence-momentum-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 3px;
}

.team-intelligence-momentum-label strong {
  color: #ffffff;
  font-size: 0.8rem;
  letter-spacing: 0.09em;
}

.team-intelligence-momentum-label span {
  color: rgba(218, 229, 236, 0.62);
  font-size: 0.7rem;
}

.team-intelligence-matchup-center
  .team-intelligence-margin-graph {
  min-height: 104px;
  margin-top: 0;
}

.team-intelligence-series-section {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid rgba(129, 93, 255, 0.22);
}

.team-intelligence-series-history {
  display: grid;
  grid-template-columns:
    repeat(7, minmax(0, 1fr));
  gap: 5px;
}

.team-intelligence-series-game {
  min-width: 0;
  padding: 7px 4px;
  border: 1px solid rgba(107, 143, 160, 0.22);
  background: rgba(255, 255, 255, 0.025);
  text-align: center;
}

.team-intelligence-series-game small,
.team-intelligence-series-game span {
  display: block;
  color: rgba(218, 229, 236, 0.56);
  font-size: 0.62rem;
}

.team-intelligence-series-game strong {
  display: block;
  margin: 3px 0;
  font-size: 0.8rem;
}

.team-intelligence-series-game.is-win strong {
  color: #54d68c;
}

.team-intelligence-series-game.is-loss strong {
  color: #ff6d79;
}

.team-intelligence-series-empty {
  padding: 12px;
  color: rgba(218, 229, 236, 0.58);
  font-size: 0.72rem;
  text-align: center;
  border: 1px dashed rgba(107, 143, 160, 0.24);
}

@media (max-width: 1120px) {
  .team-intelligence-content {
    grid-template-columns:
      minmax(210px, 0.82fr)
      minmax(350px, 1.35fr)
      minmax(210px, 0.82fr);
    gap: 10px;
  }

  .team-intelligence-side-column {
    padding: 12px;
  }

  .team-intelligence-matchup-center {
    padding: 14px;
  }

  .team-intelligence-side-metrics {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .team-intelligence-content {
    grid-template-columns: 1fr;
  }

  .team-intelligence-team-away,
  .team-intelligence-matchup-center,
  .team-intelligence-team-home {
    display: flex !important;
  }

  .team-intelligence-team-away {
    order: 1;
  }

  .team-intelligence-matchup-center {
    order: 2;
    min-height: 0;
  }

  .team-intelligence-team-home {
    order: 3;
  }

  .team-intelligence-side-metrics {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .team-intelligence-context-grid {
    grid-template-columns: 1fr;
  }

  .team-intelligence-series-history {
    grid-template-columns:
      repeat(4, minmax(0, 1fr));
  }

  .team-intelligence-center-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .team-intelligence-center-heading span {
    text-align: left;
  }
}

/* BORING BETS: FULL SEASON TEAM MOMENTUM V4 */

.team-intelligence-matchup-center {
  min-height: 640px;
}

.team-season-dashboard {
  margin: -2px -2px 16px;
  padding: 14px;
  border: 1px solid rgba(129, 93, 255, 0.34);
  background: rgba(4, 10, 18, 0.74);
}

.team-season-dashboard-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 12px;
}

.team-season-dashboard-heading > div:first-child strong {
  display: block;
  color: rgba(222, 211, 255, 0.94);
  font-size: 0.74rem;
  letter-spacing: 0.12em;
}

.team-season-dashboard-heading > div:first-child span {
  display: block;
  margin-top: 4px;
  color: rgba(218, 229, 236, 0.58);
  font-size: 0.68rem;
}

.team-season-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.team-season-zoom-control {
  display: grid;
  grid-template-columns: auto minmax(90px, 150px) auto;
  align-items: center;
  gap: 7px;
  color: rgba(218, 229, 236, 0.66);
  font-size: 0.68rem;
}

.team-season-zoom-control input[type="range"] {
  width: 100%;
  accent-color: #8b6cff;
}

.team-season-zoom-control small {
  min-width: 58px;
  color: rgba(218, 229, 236, 0.52);
  text-align: right;
}

.team-season-remaining-button {
  min-height: 30px;
  padding: 6px 10px;
  border: 1px solid rgba(129, 93, 255, 0.38);
  border-radius: 5px;
  background: rgba(129, 93, 255, 0.08);
  color: rgba(226, 218, 255, 0.86);
  font: inherit;
  font-size: 0.69rem;
  cursor: pointer;
}

.team-season-remaining-button:hover,
.team-season-remaining-button:focus-visible,
.team-season-remaining-button.is-active {
  border-color: rgba(152, 124, 255, 0.72);
  background: rgba(129, 93, 255, 0.2);
  color: #ffffff;
}

.team-season-team-row {
  margin-top: 10px;
}

.team-season-team-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}

.team-season-team-label strong {
  color: #ffffff;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
}

.team-season-team-label span {
  color: rgba(218, 229, 236, 0.55);
  font-size: 0.66rem;
}

.team-season-graph-scroller {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  overscroll-behavior-inline: contain;
}

.team-season-graph-scroller::-webkit-scrollbar {
  display: none;
}

.team-season-graph-track {
  --team-season-visible-count: 1;
  --team-season-bar-width: 4px;

  position: relative;
  display: grid;
  grid-template-columns:
    repeat(
      var(--team-season-visible-count),
      minmax(var(--team-season-bar-width), 1fr)
    );
  gap: 1px;
  width: max(
    100%,
    calc(
      var(--team-season-visible-count) *
      (var(--team-season-bar-width) + 1px)
    )
  );
  min-width: 100%;
  height: 112px;
  padding: 2px 0 15px;
  box-sizing: border-box;
  background:
    linear-gradient(
      to bottom,
      rgba(84, 214, 140, 0.025),
      transparent 48%,
      rgba(255, 109, 121, 0.025)
    );
}

.team-season-zero-line {
  position: absolute;
  z-index: 0;
  top: 48px;
  right: 0;
  left: 0;
  height: 1px;
  background: rgba(218, 229, 236, 0.25);
  pointer-events: none;
}

.team-season-game-slot {
  position: relative;
  z-index: 1;
  min-width: 0;
  height: 95px;
}

.team-season-game-slot small {
  position: absolute;
  right: -6px;
  bottom: -13px;
  color: rgba(218, 229, 236, 0.42);
  font-size: 0.54rem;
  transform: translateX(50%);
}

.team-season-margin-bar {
  position: absolute;
  right: 1px;
  left: 1px;
  min-height: 2px;
  border-radius: 1px;
}

.team-season-game-slot.is-positive
  .team-season-margin-bar {
  bottom: 47px;
  height: calc(
    max(2px, var(--team-season-margin-ratio) * 43px)
  );
  background: linear-gradient(
    to top,
    rgba(55, 170, 105, 0.78),
    rgba(84, 214, 140, 0.98)
  );
}

.team-season-game-slot.is-negative
  .team-season-margin-bar {
  top: 49px;
  height: calc(
    max(2px, var(--team-season-margin-ratio) * 43px)
  );
  background: linear-gradient(
    to bottom,
    rgba(255, 109, 121, 0.98),
    rgba(176, 53, 68, 0.78)
  );
}

.team-season-game-slot.is-zero
  .team-season-margin-bar {
  top: 47px;
  height: 3px;
  background: rgba(218, 229, 236, 0.65);
}

.team-season-future-space {
  position: absolute;
  top: 5px;
  right: 1px;
  bottom: 5px;
  left: 1px;
  border: 1px dashed rgba(177, 160, 238, 0.22);
  background: rgba(129, 93, 255, 0.025);
}

.team-season-dashboard:not(.include-remaining)
  .is-upcoming-slot {
  display: none;
}

.team-season-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 8px;
  color: rgba(218, 229, 236, 0.52);
  font-size: 0.63rem;
}

.team-season-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.team-season-legend i {
  width: 9px;
  height: 9px;
  border-radius: 2px;
}

.team-season-legend i.is-win {
  background: #54d68c;
}

.team-season-legend i.is-loss {
  background: #ff6d79;
}

.team-season-legend i.is-future {
  border: 1px dashed rgba(177, 160, 238, 0.6);
  background: rgba(129, 93, 255, 0.08);
}

.team-intelligence-current-series {
  margin-top: 0;
  padding-top: 15px;
  border-top: 1px solid rgba(129, 93, 255, 0.26);
}

.team-intelligence-current-series
  .is-series-conflict {
  color: #ff9a73;
  font-size: 1rem;
}

.team-intelligence-series-empty.is-error {
  border-color: rgba(255, 154, 115, 0.34);
  color: rgba(255, 181, 151, 0.82);
}

@media (max-width: 720px) {
  .team-season-dashboard-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .team-season-controls {
    width: 100%;
    justify-content: space-between;
  }

  .team-season-zoom-control {
    flex: 1 1 auto;
    grid-template-columns: auto minmax(80px, 1fr);
  }

  .team-season-zoom-control small {
    display: none;
  }
}

@media (max-width: 480px) {
  .team-season-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .team-season-remaining-button {
    width: 100%;
  }
}

/* BORING BETS: DISCREET MOMENTUM CONTROLS V5 */

.team-season-dashboard {
  padding-top: 10px;
}

.team-season-team-row:first-child {
  margin-top: 0;
}

.team-season-utility-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding-top: 7px;
  border-top: 1px solid rgba(218, 229, 236, 0.08);
}

.team-season-utility-bar .team-season-zoom-control {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.team-season-utility-bar
  .team-season-zoom-control
  input[type="range"] {
  display: block;
  width: 100%;
  height: 12px;
  margin: 0;
  opacity: 0.48;
  accent-color: rgba(139, 108, 255, 0.72);
  cursor: ew-resize;
  transition: opacity 150ms ease;
}

.team-season-utility-bar
  .team-season-zoom-control
  input[type="range"]:hover,
.team-season-utility-bar
  .team-season-zoom-control
  input[type="range"]:focus-visible {
  opacity: 0.9;
}

.team-season-utility-bar
  .team-season-remaining-button {
  display: inline-grid;
  place-items: center;
  flex: 0 0 24px;
  width: 24px;
  min-height: 24px;
  padding: 0;
  border: 1px solid rgba(218, 229, 236, 0.16);
  border-radius: 999px;
  background: rgba(218, 229, 236, 0.035);
  color: rgba(218, 229, 236, 0.48);
  font-size: 0.84rem;
  line-height: 1;
  cursor: pointer;
  transition:
    border-color 150ms ease,
    background 150ms ease,
    color 150ms ease,
    opacity 150ms ease;
}

.team-season-utility-bar
  .team-season-remaining-button:hover,
.team-season-utility-bar
  .team-season-remaining-button:focus-visible {
  border-color: rgba(139, 108, 255, 0.46);
  background: rgba(139, 108, 255, 0.08);
  color: rgba(235, 230, 255, 0.88);
}

.team-season-utility-bar
  .team-season-remaining-button.is-active {
  border-color: rgba(139, 108, 255, 0.5);
  background: rgba(139, 108, 255, 0.13);
  color: rgba(235, 230, 255, 0.92);
}

@media (max-width: 720px) {
  .team-season-utility-bar {
    width: 100%;
  }

  .team-season-utility-bar
    .team-season-zoom-control {
    display: block;
  }
}

@media (max-width: 480px) {
  .team-season-utility-bar {
    flex-direction: row;
    align-items: center;
  }

  .team-season-utility-bar
    .team-season-remaining-button {
    width: 24px;
  }
}

/* BORING BETS: ZOOMED SERIES LABELS V6 */

.team-season-series-layer {
  position: absolute;
  z-index: 4;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns:
    repeat(
      var(--team-season-visible-count),
      minmax(var(--team-season-bar-width), 1fr)
    );
  gap: 1px;
  height: 14px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 140ms ease;
}

.team-season-series-label {
  grid-column:
    var(--team-season-series-start) /
    span var(--team-season-series-length);
  align-self: end;
  min-width: 0;
  overflow: visible;
  color: rgba(218, 229, 236, 0.56);
  font-size: 0.48rem;
  font-weight: 700;
  letter-spacing: 0.035em;
  line-height: 1;
  text-align: center;
  text-overflow: clip;
  white-space: nowrap;
}

.team-season-dashboard.show-series-labels
  .team-season-series-layer {
  opacity: 1;
}

.team-season-dashboard.show-series-labels
  .team-season-game-slot small {
  opacity: 0;
}

.team-season-dashboard.show-series-labels
  .team-season-graph-track {
  padding-bottom: 17px;
}

@media (max-width: 560px) {
  .team-season-series-label {
    font-size: 0.45rem;
  }
}

/* BORING BETS: MOMENTUM INTERACTIONS V7 */

.team-season-dashboard {
  padding-top: 10px;
}

.team-season-team-row:first-child {
  margin-top: 0;
}

.team-season-utility-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding-top: 7px;
  border-top:
    1px solid rgba(218, 229, 236, 0.08);
}

.team-season-utility-bar
  .team-season-zoom-control {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.team-season-utility-bar
  .team-season-zoom-control
  input[type="range"] {
  display: block;
  width: 100%;
  height: 12px;
  margin: 0;
  opacity: 0.48;
  accent-color:
    rgba(139, 108, 255, 0.72);
  cursor: ew-resize;
  transition: opacity 150ms ease;
}

.team-season-utility-bar
  .team-season-zoom-control
  input[type="range"]:hover,
.team-season-utility-bar
  .team-season-zoom-control
  input[type="range"]:focus-visible {
  opacity: 0.9;
}

.team-season-utility-bar
  .team-season-remaining-button {
  display: inline-grid;
  place-items: center;
  flex: 0 0 24px;
  width: 24px;
  min-height: 24px;
  padding: 0;
  border:
    1px solid rgba(218, 229, 236, 0.16);
  border-radius: 999px;
  background:
    rgba(218, 229, 236, 0.035);
  color:
    rgba(218, 229, 236, 0.48);
  font-size: 0.84rem;
  line-height: 1;
  cursor: pointer;
}

.team-season-utility-bar
  .team-season-remaining-button:hover,
.team-season-utility-bar
  .team-season-remaining-button:focus-visible,
.team-season-utility-bar
  .team-season-remaining-button.is-active {
  border-color:
    rgba(139, 108, 255, 0.5);
  background:
    rgba(139, 108, 255, 0.12);
  color:
    rgba(235, 230, 255, 0.92);
}

.team-season-game-link {
  display: block;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  outline: none;
}

.team-season-game-link:hover,
.team-season-game-link:focus-visible {
  z-index: 5;
  background:
    rgba(139, 108, 255, 0.08);
}

.team-season-game-link:focus-visible {
  box-shadow:
    inset 0 0 0 1px
    rgba(177, 160, 238, 0.7);
}

.team-season-game-link:hover
  .team-season-margin-bar,
.team-season-game-link:focus-visible
  .team-season-margin-bar {
  filter: brightness(1.22);
}

.team-season-series-layer {
  position: absolute;
  z-index: 4;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns:
    repeat(
      var(--team-season-visible-count),
      minmax(
        var(--team-season-bar-width),
        1fr
      )
    );
  gap: 1px;
  height: 14px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 140ms ease;
}

.team-season-series-label {
  grid-column:
    var(--team-season-series-start) /
    span var(--team-season-series-length);
  align-self: end;
  min-width: 0;
  overflow: visible;
  color:
    rgba(218, 229, 236, 0.58);
  font-size: 0.48rem;
  font-weight: 700;
  letter-spacing: 0.035em;
  line-height: 1;
  text-align: center;
  text-overflow: clip;
  white-space: nowrap;
}

.team-season-dashboard.show-series-labels
  .team-season-series-layer {
  opacity: 1;
}

.team-season-dashboard.show-series-labels
  .team-season-game-slot small {
  opacity: 0;
}

.team-season-dashboard.show-series-labels
  .team-season-graph-track {
  padding-bottom: 17px;
}

@media (max-width: 560px) {
  .team-season-series-label {
    font-size: 0.45rem;
  }

  .team-season-utility-bar {
    width: 100%;
  }
}


/* BORING BETS: IMMEDIATE MOMENTUM TOOLTIP V8 */

.team-season-hover-tooltip {
  position: fixed;
  z-index: 2147483000;
  max-width: min(310px, calc(100vw - 16px));
  padding: 6px 9px;
  border:
    1px solid rgba(218, 229, 236, 0.18);
  border-radius: 7px;
  background:
    rgba(10, 14, 19, 0.96);
  box-shadow:
    0 8px 22px rgba(0, 0, 0, 0.28);
  color:
    rgba(242, 246, 249, 0.96);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.015em;
  line-height: 1.25;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transform: translateY(2px);
  transition:
    opacity 35ms linear,
    transform 45ms ease;
  will-change:
    left,
    top,
    opacity,
    transform;
}

.team-season-hover-tooltip.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.team-season-game-link {
  touch-action: manipulation;
}

@media (prefers-reduced-motion: reduce) {
  .team-season-hover-tooltip {
    transition: none;
  }
}

/* BORING BETS: SIDE METRIC LISTS V9 */

.team-intelligence-side-metrics {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: auto;
  text-align: left;
}

.team-intelligence-team-home
  .team-intelligence-side-metrics {
  text-align: left;
}

.team-intelligence-side-metrics
  .team-intelligence-metric {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    auto;
  grid-template-areas:
    "label value"
    "label detail";
  align-items: center;
  gap: 1px 12px;
  min-width: 0;
  min-height: 0;
  padding: 7px 1px;
  border: 0;
  border-bottom:
    1px solid rgba(218, 229, 236, 0.075);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.team-intelligence-side-metrics
  .team-intelligence-metric:last-child {
  border-bottom: 0;
}

.team-intelligence-side-metrics
  .team-intelligence-metric > span {
  grid-area: label;
  align-self: center;
  color: rgba(218, 229, 236, 0.64);
  font-size: 0.69rem;
  font-weight: 650;
  letter-spacing: 0.035em;
  line-height: 1.15;
  text-transform: none;
}

.team-intelligence-side-metrics
  .team-intelligence-metric > strong {
  grid-area: value;
  justify-self: end;
  color: rgba(218, 229, 236, 0.88);
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1.05;
  text-align: right;
}

.team-intelligence-side-metrics
  .team-intelligence-metric > small {
  grid-area: detail;
  justify-self: end;
  margin: 1px 0 0;
  color: rgba(218, 229, 236, 0.38);
  font-size: 0.55rem;
  line-height: 1.05;
  text-align: right;
}

.team-intelligence-side-metrics
  .team-intelligence-metric.is-good
  > strong {
  color: #5ed48a;
}

.team-intelligence-side-metrics
  .team-intelligence-metric.is-bad
  > strong {
  color: #ff6f7d;
}

.team-intelligence-side-metrics
  .team-intelligence-metric.is-neutral
  > strong {
  color: rgba(218, 229, 236, 0.68);
}

@media (max-width: 980px) {
  .team-intelligence-side-metrics {
    margin-top: 10px;
  }
}

/* BORING BETS: MLB TEAM METRIC LEAGUE RANKS V10 */

.team-intelligence-side-metrics {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: auto;
  text-align: left;
}

.team-intelligence-team-home
  .team-intelligence-side-metrics {
  text-align: left;
}

.team-intelligence-side-metrics
  .team-intelligence-metric {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    auto;
  grid-template-areas:
    "label value"
    "label detail";
  align-items: center;
  gap: 1px 12px;
  min-width: 0;
  min-height: 0;
  padding: 7px 1px;
  border: 0;
  border-bottom:
    1px solid rgba(218, 229, 236, 0.075);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.team-intelligence-side-metrics
  .team-intelligence-metric:last-child {
  border-bottom: 0;
}

.team-intelligence-side-metrics
  .team-intelligence-metric > span {
  grid-area: label;
  align-self: center;
  color: rgba(218, 229, 236, 0.64);
  font-size: 0.69rem;
  font-weight: 650;
  letter-spacing: 0.035em;
  line-height: 1.15;
  text-transform: none;
}

.team-intelligence-side-metrics
  .team-intelligence-metric > strong {
  grid-area: value;
  justify-self: end;
  min-width: 42px;
  padding: 3px 6px;
  border-radius: 5px;
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1.05;
  text-align: right;
}

.team-intelligence-side-metrics
  .team-intelligence-metric > small {
  grid-area: detail;
  justify-self: end;
  margin: 1px 0 0;
  color: rgba(218, 229, 236, 0.38);
  font-size: 0.55rem;
  line-height: 1.05;
  text-align: right;
}

.team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.metric-missing {
  color: rgba(218, 229, 236, 0.46);
  background: transparent;
  box-shadow: none;
}

@media (max-width: 980px) {
  .team-intelligence-side-metrics {
    margin-top: 10px;
  }
}

/* BORING BETS: TEAM METRIC NUMBER COLORS V10C */

/*
  MLB team split rankings are intentionally text-only in every display
  style. The global engine still assigns metric-elite/good/average/poor/
  awful according to Color Spread and Neutral. These rules consume those
  classes but never paint a cell, pill, border, or glow.
*/

.team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight {
  min-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-color: transparent !important;
  border-radius: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;
  -webkit-filter: none !important;
  transition: color 120ms ease !important;
}

/* Color and Text Only: rank color is applied to the number itself. */

.team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight.metric-elite {
  color: #63ff9b !important;
  -webkit-text-fill-color: #63ff9b !important;
}

.team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight.metric-good {
  color: #a2f5bf !important;
  -webkit-text-fill-color: #a2f5bf !important;
}

.team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight.metric-average {
  color: var(--text, #dce6e1) !important;
  -webkit-text-fill-color:
    var(--text, #dce6e1) !important;
}

.team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight.metric-poor {
  color: #ffadb8 !important;
  -webkit-text-fill-color: #ffadb8 !important;
}

.team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight.metric-awful {
  color: #ff7184 !important;
  -webkit-text-fill-color: #ff7184 !important;
}

/* Black & White: preserve the ranking as text intensity only. */

html[data-highlight-display-mode="black-white"]
  .team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight.metric-elite {
  color: #f4f7f5 !important;
  -webkit-text-fill-color: #f4f7f5 !important;
}

html[data-highlight-display-mode="black-white"]
  .team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight.metric-good {
  color: #d7ddda !important;
  -webkit-text-fill-color: #d7ddda !important;
}

html[data-highlight-display-mode="black-white"]
  .team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight.metric-average {
  color: #aeb7b2 !important;
  -webkit-text-fill-color: #aeb7b2 !important;
}

html[data-highlight-display-mode="black-white"]
  .team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight.metric-poor {
  color: #818b86 !important;
  -webkit-text-fill-color: #818b86 !important;
}

html[data-highlight-display-mode="black-white"]
  .team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight.metric-awful {
  color: #626c67 !important;
  -webkit-text-fill-color: #626c67 !important;
}

/* Off: remove rank coloring completely. */

html[data-highlight-display-mode="off"]
  .team-intelligence-side-metrics
  .team-intelligence-metric
  > strong.global-tier-highlight {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}


/* BORING BETS: TEAM HEADER LAST FIVE GAMES V1B */

.team-last-five {
  direction: ltr;
  margin: 0 0 12px;
  text-align: left;
}

.team-last-five-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px;
}

.team-last-five-heading strong {
  color: rgba(206, 219, 226, 0.78);
  font-size: 0.6rem;
  letter-spacing: 0.1em;
}

.team-last-five-heading span {
  color: rgba(206, 219, 226, 0.38);
  font-size: 0.52rem;
  white-space: nowrap;
}

.team-last-five-list {
  display: grid;
  gap: 6px;
}

.team-last-five-game {
  display: block;
  min-width: 0;
  padding: 8px;
  border: 1px solid rgba(107, 143, 160, 0.2);
  background: rgba(255, 255, 255, 0.025);
  color: inherit;
  text-decoration: none;
  transition:
    border-color 120ms ease,
    background 120ms ease,
    transform 120ms ease;
}

.team-last-five-game:hover,
.team-last-five-game:focus-visible {
  border-color: rgba(57, 255, 136, 0.52);
  background: rgba(57, 255, 136, 0.055);
  outline: none;
  transform: translateY(-1px);
}

.team-last-five-game-heading {
  display: grid;
  grid-template-columns:
    38px
    12px
    minmax(34px, 1fr)
    auto;
  align-items: baseline;
  gap: 4px;
  min-width: 0;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(107, 143, 160, 0.14);
  font-variant-numeric: tabular-nums;
}

.team-last-five-game-heading time,
.team-last-five-site {
  color: rgba(218, 229, 236, 0.55);
  font-size: 0.58rem;
}

.team-last-five-game-heading > strong {
  overflow: hidden;
  color: rgba(238, 245, 249, 0.9);
  font-size: 0.68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.team-last-five-result {
  font-size: 0.66rem;
  font-weight: 850;
  white-space: nowrap;
}

.team-last-five-game.is-win
  .team-last-five-result {
  color: #63e996;
}

.team-last-five-game.is-loss
  .team-last-five-result {
  color: #ff7887;
}

.team-last-five-game.is-neutral
  .team-last-five-result {
  color: rgba(218, 229, 236, 0.62);
}

.team-last-five-metrics {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 4px;
  padding-top: 6px;
}

.team-last-five-metric {
  min-width: 0;
  padding: 4px 3px;
  background: rgba(0, 0, 0, 0.12);
  text-align: center;
}

.team-last-five-metric span {
  display: block;
  color: rgba(218, 229, 236, 0.38);
  font-size: 0.46rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  line-height: 1;
}

.team-last-five-metric strong {
  display: block;
  margin-top: 3px;
  color: rgba(238, 245, 249, 0.86);
  font-size: 0.64rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.team-last-five-game.is-loading
  .team-last-five-metric strong {
  color: rgba(218, 229, 236, 0.25);
}

.team-last-five-game.is-unavailable
  .team-last-five-metric strong {
  color: rgba(218, 229, 236, 0.31);
}

.team-intelligence-team-home
  .team-last-five {
  text-align: left;
}

@media (max-width: 980px) {
  .team-last-five-game {
    padding: 9px;
  }

  .team-last-five-game-heading {
    grid-template-columns:
      42px
      14px
      minmax(44px, 1fr)
      auto;
  }

  .team-last-five-metric strong {
    font-size: 0.68rem;
  }
}


/* BORING BETS: TEAM LAST FIVE HORIZONTAL LIST V2 */

.team-last-five--horizontal-list {
  min-width: 0;
}

.team-last-five--horizontal-list
  .team-last-five-heading {
  margin-bottom: 6px;
}

.team-last-five--horizontal-list
  .team-last-five-heading span {
  font-size: 0.48rem;
  letter-spacing: 0.03em;
}

.team-last-five-scroll {
  position: relative;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid rgba(107, 143, 160, 0.18);
  background: rgba(0, 0, 0, 0.08);
  overscroll-behavior-x: contain;
  scroll-behavior: auto;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
  -webkit-overflow-scrolling: touch;
}

.team-last-five-scroll::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.team-last-five-scroll:focus-visible {
  border-color: rgba(57, 255, 136, 0.45);
  outline: none;
}

.team-last-five-list-table {
  width: max-content;
  min-width: 100%;
}

.team-last-five-list-row {
  display: grid;
  grid-template-columns:
    164px
    repeat(9, 54px);
  align-items: stretch;
  min-height: 34px;
}

.team-last-five-list-row--header {
  position: sticky;
  top: 0;
  z-index: 5;
  min-height: 25px;
  color: rgba(218, 229, 236, 0.38);
  background: #0a1116;
  font-size: 0.46rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-align: center;
}

.team-last-five-list-row--header > span {
  display: flex;
  align-items: center;
  justify-content: center;
  border-right:
    1px solid rgba(107, 143, 160, 0.1);
}

.team-last-five-list-game-header {
  position: sticky;
  left: 0;
  z-index: 7;
  justify-content: flex-start !important;
  padding-left: 8px;
  background: #0a1116;
  text-align: left;
}

.team-last-five-game.team-last-five-list-row {
  padding: 0;
  border: 0;
  border-top:
    1px solid rgba(107, 143, 160, 0.11);
  background: rgba(255, 255, 255, 0.012);
  text-decoration: none;
  transform: none;
}

.team-last-five-game.team-last-five-list-row:hover,
.team-last-five-game.team-last-five-list-row:focus-visible {
  border-color: rgba(107, 143, 160, 0.11);
  background: rgba(57, 255, 136, 0.045);
  transform: none;
}

.team-last-five-list-game {
  position: sticky;
  left: 0;
  z-index: 4;
  display: grid;
  grid-template-columns:
    36px
    12px
    minmax(38px, 1fr)
    auto;
  align-items: center;
  gap: 3px;
  min-width: 0;
  padding: 0 8px;
  border-right:
    1px solid rgba(107, 143, 160, 0.18);
  background: #0b1319;
  box-shadow:
    8px 0 12px rgba(5, 10, 14, 0.2);
  font-variant-numeric: tabular-nums;
}

.team-last-five-game:hover
  .team-last-five-list-game,
.team-last-five-game:focus-visible
  .team-last-five-list-game {
  background: #0d1a16;
}

.team-last-five-list-game time,
.team-last-five-list-game
  .team-last-five-site {
  color: rgba(218, 229, 236, 0.55);
  font-size: 0.54rem;
}

.team-last-five-list-game > strong {
  overflow: hidden;
  color: rgba(238, 245, 249, 0.9);
  font-size: 0.61rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.team-last-five-list-game
  .team-last-five-result {
  font-size: 0.58rem;
  font-weight: 850;
  white-space: nowrap;
}

.team-last-five-list-stat {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  border-right:
    1px solid rgba(107, 143, 160, 0.08);
  color: rgba(238, 245, 249, 0.84);
  font-variant-numeric: tabular-nums;
  text-align: center;
}

.team-last-five-list-stat strong {
  font-size: 0.59rem;
  line-height: 1;
}

.team-last-five-game.is-loading
  .team-last-five-list-stat strong {
  color: rgba(218, 229, 236, 0.24);
}

.team-last-five-game.is-unavailable
  .team-last-five-list-stat strong {
  color: rgba(218, 229, 236, 0.31);
}

/*
  The home-side dashboard previously inherits right-to-left alignment in a
  few header treatments. The game list itself always begins with GAME at
  the left so swiping left reveals H/PA through P K in order.
*/
.team-intelligence-team-home
  .team-last-five-scroll,
.team-intelligence-team-home
  .team-last-five-list-table,
.team-intelligence-team-home
  .team-last-five-list-row {
  direction: ltr;
  text-align: left;
}

@media (max-width: 980px) {
  .team-last-five-list-row {
    grid-template-columns:
      156px
      repeat(9, 52px);
  }

  .team-last-five-list-game {
    grid-template-columns:
      35px
      11px
      minmax(35px, 1fr)
      auto;
    padding-right: 7px;
    padding-left: 7px;
  }
}


/* BORING BETS: TIGHT TEAM LAST FIVE LIST V3B */

/*
  Columns:
  pinned game identity | scrollable result | nine scrollable stats
*/

.team-last-five-list-row {
  grid-template-columns:
    118px
    50px
    repeat(9, 44px);
}

.team-last-five-list-game {
  grid-template-columns:
    30px
    8px
    minmax(34px, 1fr);
  gap: 1px;
  padding-right: 5px;
  padding-left: 5px;
}

.team-last-five-list-game time,
.team-last-five-list-game
  .team-last-five-site {
  font-size: 0.52rem;
}

.team-last-five-list-game > strong {
  font-size: 0.59rem;
}

.team-last-five-list-result {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 0 3px;
  border-right:
    1px solid rgba(107, 143, 160, 0.08);
  font-size: 0.56rem;
  font-variant-numeric: tabular-nums;
  font-weight: 850;
  white-space: nowrap;
}

.team-last-five-list-stat {
  padding-right: 1px;
  padding-left: 1px;
}

.team-last-five-list-stat strong {
  font-size: 0.56rem;
}

.team-last-five-list-row--header > span {
  padding-right: 1px;
  padding-left: 1px;
}

@media (max-width: 980px) {
  .team-last-five-list-row {
    grid-template-columns:
      112px
      48px
      repeat(9, 42px);
  }

  .team-last-five-list-game {
    grid-template-columns:
      29px
      7px
      minmax(32px, 1fr);
    gap: 1px;
    padding-right: 4px;
    padding-left: 4px;
  }

  .team-last-five-list-result,
  .team-last-five-list-stat strong {
    font-size: 0.54rem;
  }
}


/* BORING BETS: FLUSH TEAM LAST FIVE STRIP V4 */

/*
  Keep only date / @ / opponent pinned. The RESULT column begins
  immediately after the opponent with no visual gutter.
*/

.team-last-five-list-row {
  grid-template-columns:
    96px
    44px
    repeat(9, 40px);
}

.team-last-five-list-game {
  grid-template-columns:
    27px
    7px
    minmax(27px, 1fr);
  gap: 0;
  padding-right: 3px;
  padding-left: 3px;
  border-right:
    1px solid rgba(107, 143, 160, 0.2);
  box-shadow: none;
}

.team-last-five-list-game-header {
  padding-left: 3px;
  box-shadow: none;
}

.team-last-five-list-game time {
  letter-spacing: -0.02em;
}

.team-last-five-list-game
  .team-last-five-site {
  text-align: center;
}

.team-last-five-list-game > strong {
  margin: 0;
  padding: 0;
}

.team-last-five-list-result {
  margin: 0;
  padding-right: 1px;
  padding-left: 1px;
  border-left: 0;
}

.team-last-five-list-stat {
  padding-right: 0;
  padding-left: 0;
}

.team-last-five-list-row--header > span {
  padding-right: 0;
  padding-left: 0;
}

@media (max-width: 980px) {
  .team-last-five-list-row {
    grid-template-columns:
      92px
      42px
      repeat(9, 39px);
  }

  .team-last-five-list-game {
    grid-template-columns:
      26px
      6px
      minmax(26px, 1fr);
    padding-right: 2px;
    padding-left: 2px;
  }
}


/* BORING BETS: HARD FLUSH TEAM LAST FIVE STRIP V5 */

/*
  Force the pinned portion to the actual visual width of:
  date + @ + opponent. The scrollable RESULT column begins at the next
  pixel. !important is intentional because several earlier responsive
  dashboard rules target the same grid.
*/

.team-last-five--horizontal-list
  .team-last-five-list-row {
  grid-template-columns:
    72px
    39px
    repeat(9, 35px) !important;
  column-gap: 0 !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-game,
.team-last-five--horizontal-list
  .team-last-five-list-game-header {
  width: 72px !important;
  min-width: 72px !important;
  max-width: 72px !important;
  margin: 0 !important;
  padding-right: 0 !important;
  padding-left: 2px !important;
  border-right:
    1px solid rgba(107, 143, 160, 0.22) !important;
  box-shadow: none !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-game {
  grid-template-columns:
    25px
    6px
    39px !important;
  gap: 0 !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-game time,
.team-last-five--horizontal-list
  .team-last-five-list-game
  .team-last-five-site,
.team-last-five--horizontal-list
  .team-last-five-list-game > strong {
  margin: 0 !important;
  padding: 0 !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-game time {
  width: 25px !important;
  letter-spacing: -0.04em !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-game
  .team-last-five-site {
  width: 6px !important;
  text-align: left !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-game > strong {
  width: 39px !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-align: left !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-result {
  width: 39px !important;
  min-width: 39px !important;
  max-width: 39px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-left: 0 !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-stat {
  width: 35px !important;
  min-width: 35px !important;
  max-width: 35px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-row--header > span {
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 980px) {
  .team-last-five--horizontal-list
    .team-last-five-list-row {
    grid-template-columns:
      69px
      38px
      repeat(9, 34px) !important;
  }

  .team-last-five--horizontal-list
    .team-last-five-list-game,
  .team-last-five--horizontal-list
    .team-last-five-list-game-header {
    width: 69px !important;
    min-width: 69px !important;
    max-width: 69px !important;
  }

  .team-last-five--horizontal-list
    .team-last-five-list-game {
    grid-template-columns:
      24px
      6px
      37px !important;
  }

  .team-last-five--horizontal-list
    .team-last-five-list-result {
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
  }

  .team-last-five--horizontal-list
    .team-last-five-list-stat {
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
  }
}


/* BORING BETS: RANKED TEAM LAST FIVE GAME STATS V6 */

.team-last-five-list-stat
  > strong.global-tier-highlight {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: calc(100% - 2px);
  min-width: 0;
  min-height: 22px;
  margin: 1px;
  padding: 2px 1px;
  border-radius: 3px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

/*
  The shared highlight engine owns all tier colors and modes.
  These cells only supply rank and pool-size metadata, so Color Spread,
  Neutral, Color, Black & White, Text Only, and Off remain synchronized
  with the rest of the game card.
*/

.team-last-five-list-stat
  > strong:not(.global-tier-highlight) {
  color: rgba(218, 229, 236, 0.34);
}


/* BORING BETS: SWAPPABLE TEAM RECENT WINDOWS V7B */

.team-intelligence-window-control {
  width: 100%;
  border-top: 0;
  border-right: 0;
  border-left: 0;
  color: inherit;
  font: inherit;
  text-align: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.team-intelligence-window-control:hover,
.team-intelligence-window-control:focus-visible {
  background:
    rgba(57, 255, 136, 0.045);
  outline: none;
}

.team-intelligence-window-control:hover
  > span,
.team-intelligence-window-control:focus-visible
  > span {
  color:
    rgba(96, 255, 157, 0.92);
}

.team-last-five-game[hidden] {
  display: none !important;
}


/* BORING BETS: ORDERED TEAM RECENT WINDOWS V8B */

.team-intelligence-window-control {
  position: relative;
}

/*
  Fixed source order:
  Last 5, Last 10, Last 20, Last 30.
*/

.team-intelligence-window-control.is-selected {
  background:
    rgba(57, 255, 136, 0.065);
}

.team-intelligence-window-control.is-selected
  > span {
  color:
    rgba(96, 255, 157, 0.96);
}

.team-intelligence-window-control.is-selected::before {
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 0;
  width: 2px;
  background:
    rgba(57, 255, 136, 0.8);
  content: "";
}


/* BORING BETS: SYNCHRONIZED TEAM RECENT WINDOWS V9B */

/*
  Selection is communicated only by each chart heading:
  LAST 5 / LAST 10 / LAST 20 / LAST 30 GAMES.
  Recent-window controls never receive a selected-state treatment.
*/

.team-intelligence-window-control.is-selected,
.team-intelligence-window-control[aria-pressed="true"] {
  background: inherit !important;
}

.team-intelligence-window-control.is-selected
  > span,
.team-intelligence-window-control[aria-pressed="true"]
  > span {
  color: inherit !important;
}

.team-intelligence-window-control.is-selected::before,
.team-intelligence-window-control[aria-pressed="true"]::before {
  display: none !important;
  content: none !important;
}


/* BORING BETS: STACKED TEAM RECENT WINDOWS V11 */

.team-last-five[data-team-recent-stack-clone="true"] {
  margin-top: 10px;
  padding-top: 9px;
  border-top:
    1px solid rgba(107, 143, 160, 0.18);
}

.team-last-five[data-team-recent-stack-clone="true"]
  .team-last-five-heading {
  margin-top: 0;
}

/*
  The controls remain neutral. Each stacked chart heading identifies
  its own Last 5 / 10 / 20 / 30 window.
*/

.team-intelligence-window-control.is-selected,
.team-intelligence-window-control[aria-pressed="true"] {
  background: inherit !important;
}

.team-intelligence-window-control.is-selected::before,
.team-intelligence-window-control[aria-pressed="true"]::before {
  display: none !important;
  content: none !important;
}


/* BORING BETS: RECENT WINDOW BUTTON LADDER V12 */

/*
  One chart remains. Buttons through the selected window move into an
  ascending ladder directly above it:
  5
  10
  20
  30
*/

.team-recent-window-button-ladder {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  width: 100%;
  margin: 7px 0 6px;
}

.team-recent-window-button-ladder[hidden] {
  display: none !important;
}

.team-recent-window-button-ladder
  .team-intelligence-window-control {
  width: 100%;
  margin: 0;
}

/*
  The ladder communicates the current depth through position, not through
  a selected color or indicator.
*/

.team-recent-window-button-ladder
  .team-intelligence-window-control,
.team-recent-window-button-ladder
  .team-intelligence-window-control.is-selected,
.team-recent-window-button-ladder
  .team-intelligence-window-control[aria-pressed="true"] {
  background: inherit !important;
}

.team-recent-window-button-ladder
  .team-intelligence-window-control::before {
  display: none !important;
  content: none !important;
}

/* V11 is obsolete: never display a stale cloned chart. */

.team-last-five[data-team-recent-stack-clone="true"] {
  display: none !important;
}


/* BORING BETS: EXISTING RECENT BUTTON BAR ON TOP V13 */

/*
  Remove:
  - LAST 5 / 10 / 20 / 30 GAMES
  - Swipe left for all stats.
*/

.team-last-five-heading {
  display: none !important;
}

/*
  The existing control bar is moved intact. Do not restyle its buttons.
*/

[data-team-recent-window-bar="true"] {
  margin-bottom: 6px;
}

/*
  Undo temporary selected-state and ladder artifacts without replacing the
  original control styling.
*/

.team-intelligence-window-control.is-selected::before,
.team-intelligence-window-control[aria-pressed="true"]::before {
  display: none !important;
  content: none !important;
}

.team-recent-window-button-ladder {
  display: none !important;
}

.team-last-five[data-team-recent-stack-clone="true"] {
  display: none !important;
}


/* BORING BETS: CHART AFTER SELECTED RECENT BUTTON V14 */

/*
  The selected window is communicated by chart position. Remove the old:
  LAST N GAMES
  Swipe left for all stats.
*/

.team-last-five-heading {
  display: none !important;
}

/*
  The chart is inserted into the same grid/stack as the existing controls.
  It spans the available width while every button keeps its original CSS.
*/

.team-intelligence-side-column
  .team-last-five[data-team-recent-chart-after-button] {
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
  margin-top: 6px;
  margin-bottom: 6px;
}

/* Remove obsolete experiment shells and duplicate charts. */

.team-recent-window-button-ladder {
  display: none !important;
}

.team-last-five[data-team-recent-stack-clone="true"] {
  display: none !important;
}

/* Never add active-state styling to recent-window buttons. */

.team-intelligence-window-control.is-selected::before,
.team-intelligence-window-control[aria-pressed="true"]::before {
  display: none !important;
  content: none !important;
}


/* BORING BETS: FULL TEAM SPLIT GAME LISTS V15 */

.team-intelligence-split-control {
  width: 100%;
}

.team-last-five.is-team-game-scrollable
  .team-last-five-scroll {
  max-height: 1045px;
  overflow-x: auto;
  overflow-y: auto;
  overscroll-behavior-y: contain;
}

.team-game-view-empty {
  padding: 14px 8px;
  color: rgba(218, 229, 236, 0.42);
  font-size: 0.62rem;
  text-align: center;
}

.team-game-view-empty[hidden] {
  display: none !important;
}

.team-intelligence-window-control.is-selected::before,
.team-intelligence-window-control[aria-pressed="true"]::before {
  display: none !important;
  content: none !important;
}


/* BORING BETS: RECORD MIX CONTROL COLORS V16 */

/*
  A 12-8 button is 60% green and 40% red.
  A 4-6 button is 40% green and 60% red.
  This is based on the button's displayed W-L record, not its league rank.
*/

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ] {
  background-color:
    rgba(13, 23, 30, 0.88) !important;
  background-image:
    linear-gradient(
      90deg,
      rgba(46, 204, 113, 0.26)
        0,
      rgba(46, 204, 113, 0.26)
        var(--bb-team-win-pct),
      rgba(224, 72, 72, 0.24)
        var(--bb-team-win-pct),
      rgba(224, 72, 72, 0.24)
        100%
    ) !important;
  background-repeat:
    no-repeat !important;
}

/*
  Hover keeps the exact same win/loss proportions.
  It may lift slightly for feedback, but it never turns green.
*/

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]:hover,
.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]:focus-visible {
  background-color:
    rgba(13, 23, 30, 0.88) !important;
  background-image:
    linear-gradient(
      90deg,
      rgba(46, 204, 113, 0.26)
        0,
      rgba(46, 204, 113, 0.26)
        var(--bb-team-win-pct),
      rgba(224, 72, 72, 0.24)
        var(--bb-team-win-pct),
      rgba(224, 72, 72, 0.24)
        100%
    ) !important;
  border-color:
    rgba(155, 177, 190, 0.42) !important;
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.16) !important;
  filter:
    brightness(1.05);
}

/*
  No-data controls remain neutral on hover instead of inheriting the old
  green hover treatment.
*/

.team-intelligence-side-column
  .team-intelligence-window-control:not(
    [data-team-record-mix="true"]
  ):hover,
.team-intelligence-side-column
  .team-intelligence-window-control:not(
    [data-team-record-mix="true"]
  ):focus-visible {
  background-color:
    rgba(18, 30, 38, 0.92) !important;
  background-image:
    none !important;
  border-color:
    rgba(155, 177, 190, 0.42) !important;
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.16) !important;
}


/* BORING BETS: COMPACT TEAM RECORD METER V17 */

/*
  Remove V16's full-button green/red background. The button returns to a
  neutral surface in every state.
*/

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ],
.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]:hover,
.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]:focus-visible {
  background-color:
    rgba(18, 30, 38, 0.9) !important;
  background-image:
    none !important;
}

/*
  Compact W/L composition meter between the metric title and record.
*/

.team-record-meter {
  position: relative;
  display: grid;
  place-items: center;
  width: min(78%, 92px);
  min-width: 52px;
  height: 13px;
  margin: 3px auto;
  overflow: hidden;
  border:
    1px solid rgba(153, 173, 185, 0.28);
  border-radius: 999px;
  background:
    linear-gradient(
      90deg,
      rgba(46, 204, 113, 0.68)
        0,
      rgba(46, 204, 113, 0.68)
        var(--bb-team-win-pct),
      rgba(215, 69, 69, 0.56)
        var(--bb-team-win-pct),
      rgba(215, 69, 69, 0.56)
        100%
    );
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.24);
  pointer-events: none;
}

.team-record-meter-value {
  position: relative;
  z-index: 1;
  color:
    rgba(220, 255, 231, 0.98);
  font-size: 0.48rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.02em;
  text-shadow:
    0 1px 2px rgba(0, 0, 0, 0.92);
}

/*
  Hover feedback stays neutral. It never changes the meter proportions or
  turns the surrounding control green.
*/

.team-intelligence-side-column
  .team-intelligence-window-control:hover
  .team-record-meter,
.team-intelligence-side-column
  .team-intelligence-window-control:focus-visible
  .team-record-meter {
  filter: brightness(1.04);
}


/* BORING BETS: CENTERED TEAM RECORD LINE V18 */

/*
  Fixed-width visual for every metric:
     green wins  [ win % ]  red losses

  Each colored arm has the same maximum length. Its scale reflects the
  corresponding share of the record.
*/

.team-record-meter {
  position: relative;
  display: grid;
  place-items: center;
  width: 94px !important;
  min-width: 94px !important;
  max-width: 94px !important;
  height: 16px;
  margin: 4px auto;
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  pointer-events: none;
}

.team-record-meter::before,
.team-record-meter::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 34px;
  height: 2px;
  border-radius: 999px;
  transform: translateY(-50%);
  will-change: transform;
}

.team-record-meter::before {
  right: calc(50% + 17px);
  transform:
    translateY(-50%)
    scaleX(
      var(--bb-team-win-ratio, 0)
    );
  transform-origin: 100% 50%;
  background:
    linear-gradient(
      90deg,
      rgba(46, 204, 113, 0.12),
      rgba(46, 204, 113, 0.96)
    );
  box-shadow:
    0 0 5px rgba(46, 204, 113, 0.32);
}

.team-record-meter::after {
  left: calc(50% + 17px);
  transform:
    translateY(-50%)
    scaleX(
      var(--bb-team-loss-ratio, 0)
    );
  transform-origin: 0 50%;
  background:
    linear-gradient(
      90deg,
      rgba(224, 72, 72, 0.96),
      rgba(224, 72, 72, 0.12)
    );
  box-shadow:
    0 0 5px rgba(224, 72, 72, 0.28);
}

.team-record-meter-value {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 30px;
  min-width: 30px;
  max-width: 30px;
  height: 14px;
  padding: 0;
  border:
    1px solid rgba(157, 178, 190, 0.34);
  border-radius: 999px;
  background:
    rgba(13, 23, 30, 0.98);
  color:
    rgba(230, 238, 243, 0.96);
  font-size: 0.44rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  text-shadow:
    0 1px 2px rgba(0, 0, 0, 0.88);
  box-shadow:
    0 0 0 2px rgba(13, 23, 30, 0.82);
}

/*
  The outer control remains neutral on hover. Only the line gets a slight
  brightness lift.
*/

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ],
.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]:hover,
.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]:focus-visible {
  background-color:
    rgba(18, 30, 38, 0.9) !important;
  background-image:
    none !important;
}

.team-intelligence-side-column
  .team-intelligence-window-control:hover
  .team-record-meter,
.team-intelligence-side-column
  .team-intelligence-window-control:focus-visible
  .team-record-meter {
  filter: brightness(1.06);
}


/* BORING BETS: FULL-WIDTH CENTERED RECORD LINE V19B */

/*
  The visual spans the full interior width between the metric label and W-L.

  LEFT  = losses (red)
  RIGHT = wins   (green)

  Each side has the same maximum available length. The colored segment grows
  outward from the center according to its percentage.
*/

.team-record-meter {
  position: relative;
  display: grid;
  place-items: center;
  width: calc(100% - 10px) !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 15px;
  margin: 3px 5px;
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background:
    linear-gradient(
      90deg,
      transparent 0,
      rgba(152, 171, 181, 0.18) 7%,
      rgba(152, 171, 181, 0.18) 47%,
      transparent 47%,
      transparent 53%,
      rgba(152, 171, 181, 0.18) 53%,
      rgba(152, 171, 181, 0.18) 93%,
      transparent 100%
    ) center / 100% 1px no-repeat !important;
  box-shadow: none !important;
  pointer-events: none;
}

.team-record-meter::before,
.team-record-meter::after {
  content: "";
  position: absolute;
  top: 50%;
  width: calc(50% - 17px);
  height: 2px;
  border-radius: 999px;
  will-change: transform;
}

/* Losses: red extends LEFT from the center. */

.team-record-meter::before {
  right: calc(50% + 13px);
  transform:
    translateY(-50%)
    scaleX(
      var(--bb-team-loss-ratio, 0)
    );
  transform-origin: 100% 50%;
  background:
    linear-gradient(
      90deg,
      rgba(224, 72, 72, 0.16),
      rgba(224, 72, 72, 0.98)
    );
  box-shadow:
    0 0 6px rgba(224, 72, 72, 0.34);
}

/* Wins: green extends RIGHT from the center. */

.team-record-meter::after {
  left: calc(50% + 13px);
  transform:
    translateY(-50%)
    scaleX(
      var(--bb-team-win-ratio, 0)
    );
  transform-origin: 0 50%;
  background:
    linear-gradient(
      90deg,
      rgba(46, 204, 113, 0.98),
      rgba(46, 204, 113, 0.16)
    );
  box-shadow:
    0 0 6px rgba(46, 204, 113, 0.38);
}

/*
  Percentage is plain text only: no pill, box, border, or badge.
*/

.team-record-meter-value {
  position: relative;
  z-index: 2;
  display: inline;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  padding: 0 3px;
  border: 0 !important;
  border-radius: 0 !important;
  background:
    rgba(18, 30, 38, 0.94) !important;
  box-shadow: none !important;
  font-size: 0.5rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.01em;
  text-align: center;
  text-shadow:
    0 1px 2px rgba(0, 0, 0, 0.9);
}

.team-record-meter-value[
  data-team-record-tone="positive"
] {
  color:
    rgba(72, 226, 137, 0.98);
}

.team-record-meter-value[
  data-team-record-tone="negative"
] {
  color:
    rgba(239, 92, 92, 0.98);
}

.team-record-meter-value[
  data-team-record-tone="neutral"
] {
  color:
    rgba(213, 222, 228, 0.92);
}

/*
  The whole metric remains neutral on hover.
*/

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ],
.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]:hover,
.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]:focus-visible {
  background-color:
    rgba(18, 30, 38, 0.9) !important;
  background-image:
    none !important;
}

.team-intelligence-side-column
  .team-intelligence-window-control:hover
  .team-record-meter,
.team-intelligence-side-column
  .team-intelligence-window-control:focus-visible
  .team-record-meter {
  filter: brightness(1.06);
}


/* BORING BETS: NEUTRAL TEAM CONTROLS AND CHART DATA V22 */

/*
  The rendered-style audit showed the unwanted blue/gray treatment on:
  - .team-intelligence-side-metrics
  - .team-intelligence-window-control
  - .team-record-meter-value
  - .team-last-five-scroll
  - .team-last-five-list-row--header
  - .team-last-five-list-game
  - .global-tier-highlight

  Do not use transparent backgrounds here: transparency exposed the tinted
  parent layer in the earlier attempts. Instead, put every affected surface
  on the same neutral near-black base so no blue/gray block remains.
*/

.team-intelligence-side-column
  .team-intelligence-side-metrics,
.team-intelligence-side-column
  .team-intelligence-window-control,
.team-intelligence-side-column
  .team-intelligence-window-control:hover,
.team-intelligence-side-column
  .team-intelligence-window-control:focus,
.team-intelligence-side-column
  .team-intelligence-window-control:focus-visible,
.team-intelligence-side-column
  .team-intelligence-window-control.is-selected,
.team-intelligence-side-column
  .team-intelligence-window-control[aria-pressed="true"],
.team-intelligence-side-column
  .team-intelligence-window-control[data-team-record-mix="true"],
.team-intelligence-side-column
  .team-intelligence-window-control[data-team-record-mix="true"]:hover,
.team-intelligence-side-column
  .team-intelligence-window-control[data-team-record-mix="true"]:focus-visible,
.team-intelligence-side-column
  .team-record-meter-value,
.team-intelligence-side-column
  .team-last-five-scroll,
.team-intelligence-side-column
  .team-last-five-list-row,
.team-intelligence-side-column
  .team-last-five-list-row:hover,
.team-intelligence-side-column
  .team-last-five-list-row:focus-within,
.team-intelligence-side-column
  .team-last-five-list-row--header,
.team-intelligence-side-column
  .team-last-five-list-game,
.team-intelligence-side-column
  .team-last-five-list-game-header,
.team-intelligence-side-column
  .team-last-five-game,
.team-intelligence-side-column
  .team-last-five-game:hover,
.team-intelligence-side-column
  .team-last-five-game:focus-within {
  background-color: #0a0a0a !important;
  background-image: none !important;
  box-shadow: none !important;
  filter: none !important;
}

/*
  Remove the colored/gray cell shading and left inset strip from ranked data.
  Keep the existing rank text colors.
*/

.team-intelligence-side-column
  .team-last-five-game
  .global-tier-highlight,
.team-intelligence-side-column
  .team-last-five-list-row
  .global-tier-highlight {
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/*
  The record line stays red/green, but the faint gray guide line is removed.
  The percentage remains plain colored text with no backing block.
*/

.team-intelligence-side-column
  .team-record-meter {
  background: none !important;
  box-shadow: none !important;
}

.team-intelligence-side-column
  .team-record-meter-value {
  background: #0a0a0a !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/*
  Preserve selection through border/text only, never through a filled face.
*/

.team-intelligence-side-column
  .team-intelligence-window-control.is-selected,
.team-intelligence-side-column
  .team-intelligence-window-control[aria-pressed="true"] {
  filter: none !important;
}


/* BORING BETS: SCORE-ONLY TEAM RECENT GAMES V24 */

.team-last-five--horizontal-list
  .team-last-five-list-row {
  grid-template-columns:
    72px
    48px
    repeat(9, 35px) !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-result {
  width: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
  font-size: 0.74rem !important;
  font-weight: 950 !important;
  letter-spacing: -0.015em !important;
  line-height: 1 !important;
  text-align: center !important;
}

.team-last-five--horizontal-list
  .team-last-five-list-row--header
  > span:nth-child(2) {
  width: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
}

@media (max-width: 980px) {
  .team-last-five--horizontal-list
    .team-last-five-list-row {
    grid-template-columns:
      69px
      46px
      repeat(9, 34px) !important;
  }

  .team-last-five--horizontal-list
    .team-last-five-list-result,
  .team-last-five--horizontal-list
    .team-last-five-list-row--header
    > span:nth-child(2) {
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
  }

  .team-last-five--horizontal-list
    .team-last-five-list-result {
    font-size: 0.7rem !important;
  }
}

/* BORING BETS: FULL-WIDTH GREEN-LEFT TEAM RECORD LINE V23 */

/*
  Metric-button layout:

  LABEL  [ green wins | red losses ]  W-L

  The middle meter receives all reasonably available horizontal space.
  Green always begins on the left. Red always finishes on the right.
  Both outside ends retain the soft fade.
*/

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ] {
  display: grid !important;
  grid-template-columns:
    max-content
    minmax(54px, 1fr)
    max-content !important;
  grid-template-rows:
    auto
    auto;
  grid-template-areas:
    "label meter value"
    "label meter detail" !important;
  align-items: center !important;
  column-gap: 9px !important;
  row-gap: 1px !important;
  width: 100%;
  min-width: 0;
}

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]
  > span:not(.team-record-meter) {
  grid-area: label !important;
  justify-self: start !important;
  min-width: 0;
  text-align: left !important;
}

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]
  > .team-record-meter {
  grid-area: meter !important;
  align-self: center;
  justify-self: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 15px;
  margin: 0 !important;
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  pointer-events: none;
}

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]
  > strong {
  grid-area: value !important;
  justify-self: end !important;
  margin: 0 !important;
  text-align: right !important;
  white-space: nowrap;
}

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]
  > small {
  grid-area: detail !important;
  justify-self: end !important;
  text-align: right !important;
}

/*
  One continuous composition line across the complete meter width.

  Green width = win percentage.
  Red width   = remaining loss percentage.
*/

.team-intelligence-side-column
  .team-record-meter::before,
.team-intelligence-side-column
  .team-record-meter::after {
  content: "";
  position: absolute;
  top: 50%;
  height: 2px;
  border-radius: 999px;
  transform: translateY(-50%) !important;
}

/* Wins: green starts at the LEFT and finishes solid at the split. */

.team-intelligence-side-column
  .team-record-meter::before {
  right: auto !important;
  left: 0 !important;
  width: var(--bb-team-win-pct, 50%) !important;
  transform-origin: initial !important;
  background:
    linear-gradient(
      90deg,
      rgba(46, 204, 113, 0.10) 0%,
      rgba(46, 204, 113, 0.72) 11%,
      rgba(46, 204, 113, 0.98) 100%
    ) !important;
  box-shadow:
    0 0 6px rgba(46, 204, 113, 0.34) !important;
}

/* Losses: red begins solid at the split and fades at the RIGHT edge. */

.team-intelligence-side-column
  .team-record-meter::after {
  right: 0 !important;
  left: var(--bb-team-win-pct, 50%) !important;
  width: auto !important;
  transform-origin: initial !important;
  background:
    linear-gradient(
      90deg,
      rgba(224, 72, 72, 0.98) 0%,
      rgba(224, 72, 72, 0.72) 89%,
      rgba(224, 72, 72, 0.10) 100%
    ) !important;
  box-shadow:
    0 0 6px rgba(224, 72, 72, 0.30) !important;
}

/*
  Percentage remains centered over the longer line without becoming a pill.
*/

.team-intelligence-side-column
  .team-record-meter-value {
  position: relative;
  z-index: 2;
  display: inline;
  justify-self: center;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  padding: 0 4px;
  border: 0 !important;
  border-radius: 0 !important;
  background: #0a0a0a !important;
  box-shadow: none !important;
  line-height: 1;
  text-align: center;
}

@media (max-width: 520px) {
  .team-intelligence-side-column
    .team-intelligence-window-control[
      data-team-record-mix="true"
    ] {
    grid-template-columns:
      max-content
      minmax(40px, 1fr)
      max-content !important;
    column-gap: 6px !important;
  }
}


/* BORING BETS: RECORD PERCENT AT COLOR SPLIT V24 */

/*
  The percentage text marks the exact boundary:
  green ends beneath the percentage and red begins there.
*/

.team-intelligence-side-column
  .team-intelligence-window-control[
    data-team-record-mix="true"
  ]
  > .team-record-meter {
  position: relative !important;
}

.team-intelligence-side-column
  .team-record-meter-value {
  position: absolute !important;
  z-index: 3 !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  left:
    clamp(
      16px,
      var(--bb-team-win-pct, 50%),
      calc(100% - 16px)
    ) !important;
  display: inline-block !important;
  justify-self: auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 4px !important;
  transform: translate(-50%, -50%) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #0a0a0a !important;
  box-shadow: none !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
  pointer-events: none;
}


/* BORING BETS: SLATE TEAM-CODE PITCHERS V1 */

.compact-team-identity {
  display: grid;
  min-width: 0;
}

.compact-team-code-line {
  display: flex;
  align-items: baseline;
  min-width: 0;
  gap: 0.38rem;
}

.compact-team-code-line > strong {
  flex: 0 0 auto;
}

.compact-team-pitcher {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.compact-event-card.is-live .compact-team-pitcher {
  color: rgba(235, 243, 255, 0.82);
}

@media (max-width: 520px) {
  .compact-team-code-line {
    gap: 0.3rem;
  }

  .compact-team-pitcher {
    font-size: 0.66rem;
  }
}

/* END BORING BETS: SLATE TEAM-CODE PITCHERS V1 */


/* BORING BETS: SLATE STACKED TEAM MATCHUP V1 */

.compact-event-matchup {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto;
  gap: 0.35rem;
}

.compact-event-matchup .compact-participant {
  width: 100%;
}

/* END BORING BETS: SLATE STACKED TEAM MATCHUP V1 */


/* BORING BETS: SLATE CARD DETAILS DROPDOWN V1 */

.compact-event-more {
  margin-top: 0.45rem;
  border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.compact-event-more > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  padding: 0.55rem 0.15rem 0.1rem;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.compact-event-more > summary::-webkit-details-marker {
  display: none;
}

.compact-event-more > summary:hover {
  color: var(--text);
}

.compact-event-more > summary b {
  font-size: 0.95rem;
  line-height: 1;
  transition: transform 160ms ease;
}

.compact-event-more[open] > summary b {
  transform: rotate(180deg);
}

.compact-event-more-content {
  display: grid;
  gap: 0.45rem;
  padding-top: 0.45rem;
}

/* END BORING BETS: SLATE CARD DETAILS DROPDOWN V1 */


/* BORING BETS: SLATE VENUE-LINE DROPDOWN V1 */

.compact-event-more {
  margin-top: 0.35rem;
  border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.compact-event-more > summary.compact-event-more-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.5rem 0.1rem 0.15rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.compact-event-more-summary::-webkit-details-marker {
  display: none;
}

.compact-event-more-summary .compact-event-venue {
  flex: 1;
  min-width: 0;
  margin: 0;
  text-align: left;
}

.compact-event-more-summary > b {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1;
  transition:
    color 150ms ease,
    transform 160ms ease;
}

.compact-event-more-summary:hover > b {
  color: var(--text);
}

.compact-event-more[open]
  > .compact-event-more-summary
  > b {
  transform: rotate(180deg);
}

.compact-event-more-content {
  display: grid;
  gap: 0.45rem;
  padding-top: 0.45rem;
}

/* END BORING BETS: SLATE VENUE-LINE DROPDOWN V1 */

/* BORING BETS: STADIUM WIND-DIRECTION OVERLAY V1 */

.game-stadium-photo-frame {
  position: relative;
}

.game-stadium-wind-direction {
  position: absolute;
  top: 0;
  right: 0;
  bottom: var(--bb-wind-overlay-bottom, 4rem);
  width: 16.6667%;
  z-index: 6;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;

  box-sizing: border-box;
  padding: 0.3rem 0.3rem 0;

  color: #fff;
  text-align: center;
  pointer-events: none;

  background:
    linear-gradient(
      90deg,
      rgba(5, 10, 14, 0) 0%,
      rgba(5, 10, 14, 0) 42%,
      rgba(5, 10, 14, 0.62) 72%,
      rgba(5, 10, 14, 0.92) 100%
    );

  border-left:
    1px solid rgba(255, 255, 255, 0.16);

  text-shadow:
    0 1px 3px rgba(0, 0, 0, 0.95);
}

.game-stadium-wind-direction[hidden] {
  display: none;
}

.game-stadium-wind-direction-arrow {
  display: block;
  margin-top: -4px;
  margin-bottom: 0.25rem;

  font-size: clamp(1.45rem, 3vw, 2.55rem);
  line-height: 1;

  transform-origin: center;
  transition: transform 180ms ease;
}

#gameWindDirectionLabel {
  display: block;

  font-size: clamp(0.66rem, 1.18vw, 0.84rem);
  line-height: 1;
  letter-spacing: 0.045em;
  white-space: nowrap;
}



/* END BORING BETS: STADIUM WIND-DIRECTION OVERLAY V1 */

/* BORING BETS: PRECISE WIND PROVENANCE AND VARIABILITY V1 */

.game-stadium-wind-direction {
  overflow: visible;
  pointer-events: auto;
  cursor: help;
}

.game-stadium-wind-direction:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.9);
  outline-offset: -3px;
}

.game-stadium-wind-direction-arrow {
  transform:
    rotate(
      var(--bb-wind-base-deg, 0deg)
    );
}

.game-stadium-wind-tooltip {
  position: absolute;
  top: 0.2rem;
  right: calc(100% + 0.45rem);
  z-index: 30;

  display: none;
  width: min(18rem, 70vw);
  box-sizing: border-box;
  padding: 0.65rem 0.75rem;

  border:
    1px solid rgba(255, 255, 255, 0.22);
  border-radius: 0.45rem;

  color: #fff;
  background:
    rgba(4, 9, 13, 0.96);

  font-size: 0.7rem;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
  white-space: pre-line;

  box-shadow:
    0 0.65rem 1.5rem
    rgba(0, 0, 0, 0.48);

  pointer-events: none;
  text-shadow: none;
}

.game-stadium-wind-direction:hover
.game-stadium-wind-tooltip,
.game-stadium-wind-direction:focus
.game-stadium-wind-tooltip,
.game-stadium-wind-direction:focus-within
.game-stadium-wind-tooltip {
  display: block;
}

.game-stadium-wind-direction.is-compass-only
.game-stadium-wind-direction-arrow {
  opacity: 0.65;
}

.game-stadium-wind-direction.is-variable-wind
.game-stadium-wind-direction-arrow {
  animation:
    bb-field-wind-variable
    var(--bb-wind-sway-duration, 4.5s)
    ease-in-out
    infinite
    alternate;
}

@keyframes bb-field-wind-variable {
  from {
    transform:
      rotate(
        calc(
          var(--bb-wind-base-deg, 0deg)
          +
          var(--bb-wind-min-delta, 0deg)
        )
      );
  }

  to {
    transform:
      rotate(
        calc(
          var(--bb-wind-base-deg, 0deg)
          +
          var(--bb-wind-max-delta, 0deg)
        )
      );
  }
}

@media (prefers-reduced-motion: reduce) {
  .game-stadium-wind-direction.is-variable-wind
  .game-stadium-wind-direction-arrow {
    animation: none;
  }
}

/* END BORING BETS: PRECISE WIND PROVENANCE AND VARIABILITY V1 */

/* BORING BETS: WEATHER STAT TOOLTIPS AND UNIT TOGGLE V1 */

.game-stadium-weather-bar {
  position: relative;
}

.game-weather-unit-toggle {
  position: absolute;
  left: 0.25rem;
  bottom: 0.25rem;
  z-index: 18;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 1.35rem;
  height: 1.35rem;
  padding: 0;

  border:
    1px solid rgba(255, 255, 255, 0.24);
  border-radius: 0.18rem;

  color: rgba(255, 255, 255, 0.82);
  background:
    rgba(3, 8, 12, 0.48);

  font: inherit;
  font-size: 0.56rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;

  cursor: pointer;
  backdrop-filter: blur(3px);
}

.game-weather-unit-toggle:hover,
.game-weather-unit-toggle:focus-visible {
  color: #fff;
  background:
    rgba(3, 8, 12, 0.78);
  border-color:
    rgba(255, 255, 255, 0.5);
}

.game-weather-unit-toggle:focus-visible {
  outline:
    2px solid rgba(255, 255, 255, 0.82);
  outline-offset: 1px;
}

.game-stadium-weather-bar
.game-stadium-weather-primary {
  margin-left: 1.45rem;
}

.game-stadium-weather-stat {
  position: relative;
}

.game-stadium-weather-stat.has-weather-stat-tooltip {
  cursor: help;
}

.game-stadium-weather-stat.has-weather-stat-tooltip:focus-visible {
  outline:
    1px solid rgba(255, 255, 255, 0.65);
  outline-offset: 2px;
}

.game-stadium-stat-tooltip {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 0.42rem);
  z-index: 45;

  display: none;
  width: min(17rem, 72vw);
  box-sizing: border-box;
  padding: 0.62rem 0.72rem;

  transform:
    translateX(-50%);

  border:
    1px solid rgba(255, 255, 255, 0.22);
  border-radius: 0.42rem;

  color: #fff;
  background:
    rgba(4, 9, 13, 0.96);

  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
  white-space: pre-line;

  box-shadow:
    0 0.65rem 1.5rem
    rgba(0, 0, 0, 0.48);

  pointer-events: none;
  text-shadow: none;
}

.game-stadium-weather-primary
.game-stadium-stat-tooltip {
  left: 0;
  transform: none;
}

.game-stadium-weather-stat:last-child
.game-stadium-stat-tooltip {
  right: 0;
  left: auto;
  transform: none;
}

.game-stadium-weather-stat:hover
.game-stadium-stat-tooltip,
.game-stadium-weather-stat:focus
.game-stadium-stat-tooltip,
.game-stadium-weather-stat:focus-within
.game-stadium-stat-tooltip {
  display: block;
}

@media (max-width: 700px) {
  .game-weather-unit-toggle {
    left: 0.18rem;
    bottom: 0.18rem;
    width: 1.2rem;
    height: 1.2rem;
    font-size: 0.5rem;
  }

  .game-stadium-weather-bar
  .game-stadium-weather-primary {
    margin-left: 1.25rem;
  }
}

/* END BORING BETS: WEATHER STAT TOOLTIPS AND UNIT TOGGLE V1 */


/* BORING BETS: WEATHER BAR MIDDLE CELL V2
   temperature | game time + venue | humidity + rain
*/

.game-matchup.game-matchup-stadium {
  margin-top: 0 !important;
}

.game-stadium-weather-bar {
  grid-template-columns:
    minmax(0, 0.85fr)
    minmax(0, 2.5fr)
    minmax(0, 1.25fr) !important;
}

.game-stadium-weather-middle {
  position: static !important;
  left: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  z-index: auto !important;

  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.24rem !important;

  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 0.35rem !important;
  overflow: hidden !important;

  background: rgba(4, 9, 14, 0.76) !important;
  border-right:
    1px solid rgba(255, 255, 255, 0.14) !important;
  border-left:
    1px solid rgba(255, 255, 255, 0.14) !important;

  pointer-events: none !important;
}

.game-stadium-weather-middle strong,
.game-stadium-weather-middle span {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  overflow: hidden !important;

  color: rgba(255, 255, 255, 0.96) !important;
  font-size: 0.56rem !important;
  line-height: 1 !important;
  text-align: center !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  text-shadow:
    0 1px 5px rgba(0, 0, 0, 0.85) !important;
}

.game-stadium-weather-middle #gameStartTime {
  flex: 0 0 auto !important;
}

.game-stadium-weather-middle #gameVenueName {
  flex: 0 1 auto !important;
  min-width: 0 !important;
}

.game-stadium-weather-middle span::before {
  content: none !important;
  margin: 0 !important;
}

.game-stadium-caption-separator {
  flex: 0 0 auto !important;
  color: rgba(82, 217, 222, 0.9) !important;
}

.game-stadium-weather-humidity-rain {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.62rem !important;
  min-width: 0 !important;
  padding: 0 0.3rem !important;
}

.game-stadium-weather-reading {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.16rem !important;
  min-width: 0 !important;
}

.game-stadium-weather-reading strong {
  font-size: 0.61rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

@media (max-width: 620px) {
  .game-stadium-weather-bar {
    grid-template-columns:
      minmax(0, 0.75fr)
      minmax(0, 2fr)
      minmax(0, 1.3fr) !important;
  }

  .game-stadium-weather-middle {
    gap: 0.12rem !important;
    padding: 0 0.12rem !important;
  }

  .game-stadium-weather-middle strong,
  .game-stadium-weather-middle span {
    font-size: 0.42rem !important;
  }

  .game-stadium-weather-humidity-rain {
    gap: 0.22rem !important;
    padding: 0 0.1rem !important;
  }

  .game-stadium-weather-reading {
    gap: 0.07rem !important;
  }

  .game-stadium-weather-reading strong {
    font-size: 0.47rem !important;
  }
}


/* BORING BETS: WEATHER BAR VENUE FIT V1
   Time is permanent and cannot shrink.
   Venue receives the remaining middle-cell width and scrolls on hover.
*/

.game-stadium-weather-bar {
  grid-template-columns:
    minmax(0, 0.8fr)
    minmax(155px, 2.5fr)
    minmax(0, 1.25fr) !important;
}

.game-stadium-weather-middle {
  overflow: hidden !important;
}

.game-stadium-weather-middle #gameStartTime {
  display: block !important;
  flex: 0 0 auto !important;
  width: max-content !important;
  max-width: none !important;
  min-width: max-content !important;

  overflow: visible !important;
  font-size: 0.56rem !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.game-stadium-weather-middle
  .game-stadium-caption-separator {
  display: block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.game-stadium-venue-viewport {
  position: relative !important;
  display: block !important;
  flex: 1 1 auto !important;

  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;

  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;

  color: inherit !important;
  line-height: 1 !important;
  text-shadow: none !important;
  white-space: nowrap !important;
}

.game-stadium-venue-viewport
  #gameVenueName {
  display: inline-block !important;
  width: max-content !important;
  max-width: none !important;
  min-width: max-content !important;

  margin: 0 !important;
  overflow: visible !important;

  font-size: 0.56rem !important;
  line-height: 1 !important;
  text-align: left !important;
  text-overflow: clip !important;
  white-space: nowrap !important;

  transform: translateX(0);
  will-change: transform;
}

.game-stadium-venue-viewport.is-overflowing {
  cursor: ew-resize;
}

.game-stadium-venue-viewport.is-overflowing:hover
  #gameVenueName,
.game-stadium-venue-viewport.is-overflowing:focus-within
  #gameVenueName {
  animation:
    bb-game-header-venue-scroll
    var(--bb-venue-scroll-duration, 5s)
    linear
    0.2s
    infinite
    alternate;
}

@keyframes bb-game-header-venue-scroll {
  0%,
  12% {
    transform: translateX(0);
  }

  88%,
  100% {
    transform:
      translateX(
        var(--bb-venue-scroll-end, 0px)
      );
  }
}

@media (max-width: 620px) {
  .game-stadium-weather-bar {
    grid-template-columns:
      minmax(0, 0.68fr)
      minmax(112px, 2fr)
      minmax(0, 1.32fr) !important;
  }

  .game-stadium-weather-middle
    #gameStartTime {
    font-size: 0.42rem !important;
  }

  .game-stadium-venue-viewport
    #gameVenueName {
    font-size: 0.42rem !important;
  }
}


/* BORING BETS: WEATHER BAR VENUE CENTER V1
   Center the complete time + venue line whenever it fits.
   Time remains fixed; only an overflowing venue name shrinks and scrolls.
*/

.game-stadium-weather-middle {
  justify-content: center !important;
}

.game-stadium-venue-viewport {
  flex: 0 1 auto !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  text-align: center !important;
}

.game-stadium-venue-viewport
  #gameVenueName {
  text-align: center !important;
}

.game-stadium-venue-viewport.is-overflowing {
  text-align: left !important;
}

.game-stadium-venue-viewport.is-overflowing
  #gameVenueName {
  text-align: left !important;
}


/* BORING BETS: TEAM SEASON RUNS MODE V1 */

.team-season-mode-switch {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  padding: 2px;
  border:
    1px solid rgba(218, 229, 236, 0.15);
  border-radius: 999px;
  background: rgba(4, 10, 18, 0.68);
}

.team-season-mode-switch button {
  min-height: 24px;
  padding: 4px 9px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(218, 229, 236, 0.5);
  font: inherit;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.025em;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background 140ms ease,
    color 140ms ease;
}

.team-season-mode-switch button:hover,
.team-season-mode-switch button:focus-visible {
  color: rgba(245, 248, 250, 0.94);
}

.team-season-mode-switch button.is-active {
  background: rgba(129, 93, 255, 0.2);
  color: rgba(245, 242, 255, 0.98);
}

.team-season-runs-for-bar,
.team-season-runs-against-bar {
  position: absolute;
  right: 1px;
  left: 1px;
  display: none;
  border-radius: 1px;
}

.team-season-runs-for-bar {
  bottom: 47px;
  height: calc(
    var(--team-season-runs-for-ratio) *
    43px
  );
  background: linear-gradient(
    to top,
    rgba(55, 170, 105, 0.78),
    rgba(84, 214, 140, 0.98)
  );
}

.team-season-runs-against-bar {
  top: 49px;
  height: calc(
    var(--team-season-runs-against-ratio) *
    43px
  );
  background: linear-gradient(
    to bottom,
    rgba(255, 109, 121, 0.98),
    rgba(176, 53, 68, 0.78)
  );
}

.team-season-dashboard[
  data-team-season-mode="runs"
] .team-season-margin-bar {
  display: none;
}

.team-season-dashboard[
  data-team-season-mode="runs"
] .team-season-runs-for-bar,
.team-season-dashboard[
  data-team-season-mode="runs"
] .team-season-runs-against-bar {
  display: block;
}

.team-season-game-link:hover
  .team-season-runs-for-bar,
.team-season-game-link:hover
  .team-season-runs-against-bar,
.team-season-game-link:focus-visible
  .team-season-runs-for-bar,
.team-season-game-link:focus-visible
  .team-season-runs-against-bar {
  filter: brightness(1.22);
}

/*
  Remaining-game graph slots and their old
  utility control are permanently retired.
*/
.team-season-game-slot.is-upcoming-slot,
.team-season-future-space,
.team-season-remaining-button {
  display: none !important;
}

@media (max-width: 620px) {
  .team-season-utility-bar {
    flex-wrap: wrap;
  }

  .team-season-utility-bar
    .team-season-zoom-control {
    flex-basis: 100%;
  }

  .team-season-mode-switch {
    width: 100%;
  }

  .team-season-mode-switch button {
    flex: 1 1 50%;
  }
}


/* BORING BETS: FORCED HOME ROW SWITCH LAYOUT V1 */

.team-season-team-row.has-forced-home-mode-switch
  .team-season-team-label {
  display: grid !important;
  grid-template-columns:
    minmax(60px, 1fr)
    auto
    minmax(60px, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
}

.team-season-team-row.has-forced-home-mode-switch
  .team-season-team-label > strong {
  justify-self: start;
}

.team-season-team-row.has-forced-home-mode-switch
  .team-season-team-label > span {
  justify-self: end;
  text-align: right;
}

.team-season-team-row.has-forced-home-mode-switch
  .team-season-mode-switch {
  position: static !important;
  display: inline-flex !important;
  justify-self: center;
  width: auto !important;
  max-width: 100%;
  margin: 0 !important;
}

.team-season-utility-bar
  .team-season-mode-switch {
  display: none;
}

@media (max-width: 620px) {
  .team-season-team-row.has-forced-home-mode-switch
    .team-season-team-label {
    grid-template-columns:
      auto
      minmax(0, 1fr)
      auto !important;
    gap: 6px !important;
  }

  .team-season-team-row.has-forced-home-mode-switch
    .team-season-mode-switch button {
    min-width: 0;
    padding-right: 6px;
    padding-left: 6px;
    font-size: 0.5rem;
    letter-spacing: 0;
  }
}

@media (max-width: 440px) {
  .team-season-team-row.has-forced-home-mode-switch
    .team-season-team-label > span {
    font-size: 0.56rem;
  }

  .team-season-team-row.has-forced-home-mode-switch
    .team-season-mode-switch button {
    padding-right: 4px;
    padding-left: 4px;
    font-size: 0.46rem;
  }
}


/* BORING BETS: EXPANDED SEASON GRAPH LAYOUT V1 */

.team-season-team-row.has-season-expand-button
  .team-season-team-label {
  display: grid !important;
  grid-template-columns:
    minmax(60px, 1fr)
    auto
    minmax(60px, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
}

.team-season-team-row.has-season-expand-button
  .team-season-team-label > strong {
  justify-self: start;
}

.team-season-team-row.has-season-expand-button
  .team-season-team-label > span {
  justify-self: end;
  text-align: right;
}

.team-season-expand-button {
  justify-self: center;
  min-height: 28px;
  padding: 4px 12px;
  border:
    1px solid rgba(218, 229, 236, 0.16);
  border-radius: 999px;
  background: rgba(4, 10, 18, 0.72);
  color: rgba(218, 229, 236, 0.64);
  font: inherit;
  font-size: 0.58rem;
  font-weight: 750;
  letter-spacing: 0.025em;
  white-space: nowrap;
  cursor: pointer;
  transition:
    border-color 140ms ease,
    background 140ms ease,
    color 140ms ease;
}

.team-season-expand-button:hover,
.team-season-expand-button:focus-visible {
  border-color: rgba(139, 108, 255, 0.54);
  background: rgba(139, 108, 255, 0.1);
  color: rgba(245, 242, 255, 0.96);
}

.team-season-expand-button.is-active {
  border-color: rgba(139, 108, 255, 0.6);
  background: rgba(139, 108, 255, 0.2);
  color: #ffffff;
}

/*
  Expanded mode removes both previous-game side panels and gives
  the season graphs the complete matchup-dropdown width.
*/

.team-intelligence-content.is-team-season-graphs-expanded {
  grid-template-columns:
    minmax(0, 1fr) !important;
  gap: 0 !important;
}

.team-intelligence-content.is-team-season-graphs-expanded
  > .team-intelligence-side-column {
  display: none !important;
}

.team-intelligence-content.is-team-season-graphs-expanded
  > .team-intelligence-matchup-center {
  display: flex !important;
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
}

/*
  The normal graph uses roughly 43px on each side of the zero line.
  Expanded mode uses 112px per side with extra headroom. The largest
  game in the shared scale therefore never touches or clips against
  the top or bottom of the graph.
*/

.team-season-dashboard.is-team-season-expanded
  .team-season-graph-track {
  height: 270px !important;
  padding:
    8px 0 17px !important;
  overflow: visible !important;
}

.team-season-dashboard.is-team-season-expanded
  .team-season-zero-line {
  top: 131px !important;
}

.team-season-dashboard.is-team-season-expanded
  .team-season-game-slot.is-positive
  .team-season-margin-bar,
.team-season-dashboard.is-team-season-expanded
  .team-season-runs-for-bar {
  bottom: 122px !important;
  height:
    calc(
      max(
        3px,
        var(
          --team-season-margin-ratio,
          var(--team-season-runs-for-ratio)
        ) * 112px
      )
    ) !important;
}

.team-season-dashboard.is-team-season-expanded
  .team-season-runs-for-bar {
  height:
    calc(
      max(
        3px,
        var(--team-season-runs-for-ratio) *
        112px
      )
    ) !important;
}

.team-season-dashboard.is-team-season-expanded
  .team-season-game-slot.is-negative
  .team-season-margin-bar,
.team-season-dashboard.is-team-season-expanded
  .team-season-runs-against-bar {
  top: 124px !important;
  height:
    calc(
      max(
        3px,
        var(
          --team-season-margin-ratio,
          var(--team-season-runs-against-ratio)
        ) * 112px
      )
    ) !important;
}

.team-season-dashboard.is-team-season-expanded
  .team-season-runs-against-bar {
  height:
    calc(
      max(
        3px,
        var(--team-season-runs-against-ratio) *
        112px
      )
    ) !important;
}

.team-season-dashboard.is-team-season-expanded
  .team-season-game-slot.is-zero
  .team-season-margin-bar {
  top: 122px !important;
  height: 3px !important;
}

@media (max-width: 620px) {
  .team-season-team-row.has-season-expand-button
    .team-season-team-label {
    grid-template-columns:
      auto
      minmax(0, 1fr)
      auto !important;
    gap: 6px !important;
  }

  .team-season-expand-button {
    min-width: 0;
    padding-right: 7px;
    padding-left: 7px;
    font-size: 0.5rem;
    letter-spacing: 0;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-graph-track {
    height: 230px !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-zero-line {
    top: 111px !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-game-slot.is-positive
    .team-season-margin-bar,
  .team-season-dashboard.is-team-season-expanded
    .team-season-runs-for-bar {
    bottom: 102px !important;
    height:
      calc(
        max(
          3px,
          var(
            --team-season-margin-ratio,
            var(--team-season-runs-for-ratio)
          ) * 92px
        )
      ) !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-runs-for-bar {
    height:
      calc(
        max(
          3px,
          var(--team-season-runs-for-ratio) *
          92px
        )
      ) !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-game-slot.is-negative
    .team-season-margin-bar,
  .team-season-dashboard.is-team-season-expanded
    .team-season-runs-against-bar {
    top: 104px !important;
    height:
      calc(
        max(
          3px,
          var(
            --team-season-margin-ratio,
            var(--team-season-runs-against-ratio)
          ) * 92px
        )
      ) !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-runs-against-bar {
    height:
      calc(
        max(
          3px,
          var(--team-season-runs-against-ratio) *
          92px
        )
      ) !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-game-slot.is-zero
    .team-season-margin-bar {
    top: 102px !important;
  }
}


/* BORING BETS: EXPANDED SEASON GRAPH GEOMETRY FIX V2 */

/*
  The expanded track was taller, but its game slots retained
  the original 95px height. Bars are positioned relative to
  those slots, so the upper half escaped the visible geometry.

  Desktop geometry:
  track 270px
  content slot 245px
  baseline 122px
  112px maximum bar
  10px headroom on both sides
*/

.team-season-dashboard.is-team-season-expanded
  .team-season-graph-track {
  height: 270px !important;
  padding: 8px 0 17px !important;
  overflow: visible !important;
}

.team-season-dashboard.is-team-season-expanded
  .team-season-game-slot {
  height: 245px !important;
}

.team-season-dashboard.is-team-season-expanded
  .team-season-zero-line {
  top: 122px !important;
}

/* Differential above zero. */

.team-season-dashboard.is-team-season-expanded
  .team-season-game-slot.is-positive
  .team-season-margin-bar {
  top: auto !important;
  bottom: 123px !important;
  height:
    calc(
      max(
        3px,
        var(--team-season-margin-ratio) *
        112px
      )
    ) !important;
}

/* Differential below zero. */

.team-season-dashboard.is-team-season-expanded
  .team-season-game-slot.is-negative
  .team-season-margin-bar {
  top: 123px !important;
  bottom: auto !important;
  height:
    calc(
      max(
        3px,
        var(--team-season-margin-ratio) *
        112px
      )
    ) !important;
}

/* Zero differential centered on the baseline. */

.team-season-dashboard.is-team-season-expanded
  .team-season-game-slot.is-zero
  .team-season-margin-bar {
  top: 121px !important;
  bottom: auto !important;
  height: 3px !important;
}

/* Runs scored above zero. */

.team-season-dashboard.is-team-season-expanded
  .team-season-runs-for-bar {
  top: auto !important;
  bottom: 123px !important;
  height:
    calc(
      max(
        3px,
        var(--team-season-runs-for-ratio) *
        112px
      )
    ) !important;
}

/* Runs allowed below zero. */

.team-season-dashboard.is-team-season-expanded
  .team-season-runs-against-bar {
  top: 123px !important;
  bottom: auto !important;
  height:
    calc(
      max(
        3px,
        var(--team-season-runs-against-ratio) *
        112px
      )
    ) !important;
}

/*
  Narrow-screen geometry:
  track 230px
  content slot 205px
  baseline 102px
  92px maximum bar
  10px headroom on both sides
*/

@media (max-width: 620px) {
  .team-season-dashboard.is-team-season-expanded
    .team-season-graph-track {
    height: 230px !important;
    padding: 8px 0 17px !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-game-slot {
    height: 205px !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-zero-line {
    top: 102px !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-game-slot.is-positive
    .team-season-margin-bar {
    top: auto !important;
    bottom: 103px !important;
    height:
      calc(
        max(
          3px,
          var(--team-season-margin-ratio) *
          92px
        )
      ) !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-game-slot.is-negative
    .team-season-margin-bar {
    top: 103px !important;
    bottom: auto !important;
    height:
      calc(
        max(
          3px,
          var(--team-season-margin-ratio) *
          92px
        )
      ) !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-game-slot.is-zero
    .team-season-margin-bar {
    top: 101px !important;
    bottom: auto !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-runs-for-bar {
    top: auto !important;
    bottom: 103px !important;
    height:
      calc(
        max(
          3px,
          var(--team-season-runs-for-ratio) *
          92px
        )
      ) !important;
  }

  .team-season-dashboard.is-team-season-expanded
    .team-season-runs-against-bar {
    top: 103px !important;
    bottom: auto !important;
    height:
      calc(
        max(
          3px,
          var(--team-season-runs-against-ratio) *
          92px
        )
      ) !important;
  }
}

/* BORING BETS: OPTIONAL GAME ZOOM V1 */

.game-page .game-zoom-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 28px;
  margin: 0;
  padding: 4px 7px 4px 9px;
  color: var(--muted);
  font: inherit;
  font-size: 0.72rem;
  font-weight: 800;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 999px;
  cursor: pointer;
}

.game-page .game-zoom-toggle:hover,
.game-page .game-zoom-toggle:focus-visible {
  color: var(--white);
  border-color: var(--teal);
}

.game-page .game-zoom-toggle-track {
  position: relative;
  display: block;
  width: 28px;
  height: 16px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: 999px;
}

.game-page .game-zoom-toggle-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 10px;
  height: 10px;
  background: var(--muted);
  border-radius: 50%;
  transition:
    transform 160ms ease,
    background 160ms ease;
}

.game-page
  .game-zoom-toggle[aria-checked="true"] {
  color: var(--white);
  border-color: rgba(255, 255, 255, 0.32);
}

.game-page
  .game-zoom-toggle[aria-checked="true"]
  .game-zoom-toggle-track {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.35);
}

.game-page
  .game-zoom-toggle[aria-checked="true"]
  .game-zoom-toggle-thumb {
  background: var(--white);
  transform: translateX(12px);
}

.game-page
  .game-zoom-toggle[aria-checked="true"]:hover,
.game-page
  .game-zoom-toggle[aria-checked="true"]:focus-visible {
  border-color: rgba(255, 255, 255, 0.42);
}

.game-page .game-zoom-side-rail {
  display: none;
}

@media (min-width: 981px) {
  .game-page.bb-game-zoomed .game-main {
    /* BORING BETS: FAST COMPOSITED GAME ZOOM V1 */
    width: 86% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding-top: 4px !important;
    box-sizing: border-box;

    /*
      Transform changes only the visual scale.
      Unlike CSS zoom, it does not relayout every
      module on the game page.
    */
    transform: scale(1.08);
    transform-origin: top center;
  }

  .game-page.bb-game-zoomed
    .bb-original-game-arrow {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .game-page.bb-game-zoomed
    .game-zoom-side-rail:not([hidden]) {
    position: fixed !important;
    top: 50% !important;
    z-index: 500;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: clamp(42px, 3.4vw, 58px);
    height: clamp(130px, 18vh, 190px);
    margin: 0 !important;
    padding: 0 !important;
    color: var(--teal);
    text-decoration: none;
    background:
      linear-gradient(
        180deg,
        rgba(10, 27, 20, 0.98),
        rgba(5, 14, 11, 0.98)
      );
    border: 1px solid
      rgba(83, 255, 170, 0.45);
    box-shadow:
      0 10px 32px rgba(0, 0, 0, 0.42);
    opacity: 0.86;
    transform: translateY(-50%) !important;
    transition:
      width 150ms ease,
      opacity 150ms ease,
      background 150ms ease;
  }

  .game-page.bb-game-zoomed
    .game-zoom-side-rail:hover,
  .game-page.bb-game-zoomed
    .game-zoom-side-rail:focus-visible {
    width: clamp(48px, 3.8vw, 66px);
    color: var(--white);
    background:
      linear-gradient(
        180deg,
        rgba(18, 52, 38, 0.99),
        rgba(8, 25, 18, 0.99)
      );
    border-color: var(--teal);
    opacity: 1;
  }

  .game-page.bb-game-zoomed
    .game-zoom-side-rail-previous {
    left: 0 !important;
    right: auto !important;
    border-left: 0;
    border-radius: 0 10px 10px 0;
  }

  .game-page.bb-game-zoomed
    .game-zoom-side-rail-next {
    right: 0 !important;
    left: auto !important;
    border-right: 0;
    border-radius: 10px 0 0 10px;
  }

  .game-page.bb-game-zoomed
    .game-zoom-side-rail-symbol {
    display: block;
    font-size: clamp(2.2rem, 3vw, 3.3rem);
    font-weight: 900;
    line-height: 1;
  }

  .game-page.bb-game-zoomed
    .game-zoom-side-rail.is-disabled {
    display: none !important;
  }
}

@media (max-width: 980px) {
  .game-page .game-zoom-toggle {
    display: none;
  }

  .game-page .game-zoom-side-rail {
    display: none !important;
  }
}

/* BORING BETS: END OPTIONAL GAME ZOOM V1 */

/* BORING BETS: ZOOM BESIDE COLOR SPREAD V2 */

.game-page
  .game-status-strip
  > .game-zoom-toggle-status-strip {
  display: inline-flex;
  flex: 0 0 auto;
  align-self: center;
  order: 20;
  min-height: 28px;
  margin:
    0
    10px
    0
    auto !important;
  padding: 4px 8px;
  border-radius: 5px;
}

.game-page
  .game-status-strip
  > .global-highlight-controls {
  order: 21;
  margin-left: 0 !important;
  padding-left: 0 !important;
}

@media (max-width: 980px) {
  .game-page
    .game-status-strip
    > .game-zoom-toggle-status-strip {
    display: none;
  }
}

/* BORING BETS: END ZOOM BESIDE COLOR SPREAD V2 */

/* BORING BETS: GAME PAGE PITCH MIX V1 */

.pitcher-filter-row .pitcher-pitch-mix-toggle {
  flex: 0 0 31px;
  align-self: stretch;
  display: inline-grid;
  place-items: center;
  min-width: 31px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 9px;
  color: rgba(205, 210, 208, 0.72);
  background: rgba(18, 21, 20, 0.76);
  cursor: pointer;
  transition:
    color 160ms ease,
    border-color 160ms ease,
    background 160ms ease;
}

.pitcher-filter-row .pitcher-pitch-mix-toggle:hover,
.pitcher-filter-row .pitcher-pitch-mix-toggle:focus-visible {
  color: rgba(255, 255, 255, 0.96);
  border-color: rgba(255, 255, 255, 0.34);
  background: rgba(34, 38, 36, 0.94);
}

.pitcher-filter-row .pitcher-pitch-mix-toggle.is-active {
  color: rgba(255, 255, 255, 0.98);
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.12);
  box-shadow: none;
}

.pitcher-pitch-mix-toggle svg {
  width: 17px;
  height: 17px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pitcher-pitch-mix-panel[hidden] {
  display: none !important;
}

.pitcher-pitch-mix-panel {
  margin-top: 8px;
  padding-top: 9px;
  border-top: 1px solid rgba(77, 255, 155, 0.14);
  animation: pitcher-pitch-mix-rise 180ms ease-out both;
}

@keyframes pitcher-pitch-mix-rise {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.pitcher-pitch-mix-status,
.pitcher-pitch-mix-empty {
  display: grid;
  gap: 3px;
  padding: 18px 10px;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  color: rgba(190, 215, 201, 0.7);
  font-size: 0.62rem;
  text-align: center;
}

.pitcher-pitch-mix-empty strong {
  color: rgba(234, 255, 241, 0.9);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.pitcher-pitch-mix-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 5px;
}

.pitcher-pitch-mix-heading > div {
  display: grid;
  gap: 1px;
}

.pitcher-pitch-mix-kicker,
.pitcher-pitch-mix-heading small {
  color: rgba(124, 154, 137, 0.72);
  font-size: 0.48rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.pitcher-pitch-mix-heading strong {
  color: rgba(236, 255, 244, 0.95);
  font-size: 0.74rem;
  line-height: 1.1;
}

.pitcher-pitch-mix-heading small {
  max-width: 48%;
  text-align: right;
  line-height: 1.35;
}

.pitcher-pitch-mix-layout {
  display: grid;
  gap: 5px;
}

.pitcher-pitch-mix-wheel-wrap {
  display: grid;
  place-items: center;
  min-height: 225px;
}

.pitcher-pitch-mix-wheel {
  display: block;
  width: min(100%, 260px);
  height: auto;
  overflow: visible;
}

.pitcher-pitch-mix-wheel-track {
  fill: none;
  stroke: rgba(255, 255, 255, 0.055);
  stroke-width: 88;
}

.pitcher-pitch-mix-slice {
  stroke: rgba(3, 10, 8, 0.9);
  stroke-width: 1.5;
  transition: filter 140ms ease, opacity 140ms ease;
}

.pitcher-pitch-mix-slice:hover {
  filter: brightness(1.16);
}

.pitcher-pitch-mix-wheel-center {
  fill: rgba(4, 14, 11, 0.98);
  stroke: rgba(255, 255, 255, 0.09);
  stroke-width: 1;
}

.pitcher-pitch-mix-wheel-label {
  fill: rgba(242, 255, 247, 0.96);
  paint-order: stroke;
  stroke: rgba(2, 8, 6, 0.95);
  stroke-width: 2.6px;
  stroke-linejoin: round;
  font-size: 7.4px;
  font-weight: 850;
  letter-spacing: 0.01em;
  pointer-events: none;
}

.pitcher-pitch-mix-wheel-label tspan + tspan {
  fill: rgba(203, 225, 213, 0.88);
  font-size: 6.8px;
  font-weight: 750;
}

.pitcher-pitch-mix-label-line {
  stroke-width: 0.9;
  opacity: 0.75;
}

.pitcher-pitch-mix-center-label,
.pitcher-pitch-mix-center-sub {
  fill: rgba(119, 151, 133, 0.8);
  font-size: 6.4px;
  font-weight: 950;
  letter-spacing: 0.12em;
}

.pitcher-pitch-mix-center-value {
  fill: rgba(236, 255, 244, 0.96);
  font-size: 12px;
  font-weight: 900;
}

.pitcher-pitch-mix-wheel-empty {
  color: rgba(160, 185, 171, 0.7);
  font-size: 0.62rem;
}

.pitcher-pitch-mix-key {
  display: grid;
  gap: 5px;
}

.pitcher-pitch-mix-key-row {
  display: grid;
  gap: 5px;
  padding: 7px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 9px;
  background: rgba(4, 13, 10, 0.54);
}

.pitcher-pitch-mix-key-title {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
}

.pitcher-pitch-mix-key-title i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--pitch-mix-color);
  box-shadow: 0 0 8px color-mix(in srgb, var(--pitch-mix-color) 55%, transparent);
}

.pitcher-pitch-mix-key-title strong {
  min-width: 0;
  overflow: hidden;
  color: rgba(238, 255, 245, 0.94);
  font-size: 0.62rem;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pitcher-pitch-mix-key-title small {
  color: rgba(124, 151, 136, 0.68);
  font-size: 0.46rem;
  white-space: nowrap;
}

.pitcher-pitch-mix-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 3px;
  margin: 0;
}

.pitcher-pitch-mix-metrics > div {
  display: grid;
  gap: 1px;
  min-width: 0;
  padding: 4px 2px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.025);
  text-align: center;
}

.pitcher-pitch-mix-metrics dt {
  overflow: hidden;
  color: rgba(113, 143, 126, 0.74);
  font-size: 0.42rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.pitcher-pitch-mix-metrics dd {
  margin: 0;
  color: rgba(230, 247, 237, 0.92);
  font-size: 0.57rem;
  font-weight: 850;
}

.pitcher-pitch-mix-footnote {
  display: grid;
  gap: 2px;
  margin-top: 7px;
  color: rgba(109, 136, 121, 0.62);
  font-size: 0.45rem;
  line-height: 1.35;
}

@media (max-width: 520px) {
  .pitcher-filter-row .pitcher-pitch-mix-toggle {
    flex-basis: 29px;
    min-width: 29px;
  }

  .pitcher-pitch-mix-wheel-wrap {
    min-height: 210px;
  }

  .pitcher-pitch-mix-wheel {
    width: min(100%, 238px);
  }

  .pitcher-pitch-mix-key-title {
    grid-template-columns: 8px minmax(0, 1fr);
  }

  .pitcher-pitch-mix-key-title small {
    display: none;
  }

  .pitcher-pitch-mix-metrics dt {
    font-size: 0.39rem;
  }

  .pitcher-pitch-mix-metrics dd {
    font-size: 0.53rem;
  }
}

/* END BORING BETS: GAME PAGE PITCH MIX V1 */

/* BORING BETS: GAME PAGE PITCH MIX V3 FIX */

/* BORING BETS: COMPACT PITCH MIX V4.1 */

.game-page .pitcher-pitch-mix-panel {
  margin-top: 3px !important;
  padding-top: 4px !important;
}

.game-page .pitcher-pitch-mix-heading {
  gap: 4px !important;
  margin-bottom: 2px !important;
}

.game-page .pitcher-pitch-mix-heading > div {
  gap: 0 !important;
}

.game-page .pitcher-pitch-mix-heading strong {
  font-size: 0.62rem !important;
}

.game-page .pitcher-pitch-mix-kicker,
.game-page .pitcher-pitch-mix-heading small {
  font-size: 0.40rem !important;
}

.game-page .pitcher-pitch-mix-layout {
  display: grid !important;
  grid-template-columns:
    minmax(118px, 134px)
    minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 5px !important;
}

.game-page .pitcher-pitch-mix-wheel-wrap {
  display: grid !important;
  place-items: start center !important;
  min-height: 0 !important;
  padding: 0 !important;
}

.game-page .pitcher-pitch-mix-wheel {
  width: min(100%, 134px) !important;
  max-width: 134px !important;
  height: auto !important;
}

.game-page .pitcher-pitch-mix-wheel-track,
.game-page .pitcher-pitch-mix-wheel-center {
  display: none !important;
  fill: transparent !important;
  stroke: transparent !important;
}

.game-page .pitcher-pitch-mix-wheel-label {
  font-size: 9px !important;
  stroke-width: 2px !important;
}

.game-page
  .pitcher-pitch-mix-wheel-label
  tspan + tspan {
  font-size: 8.2px !important;
}

.game-page .pitcher-pitch-mix-center-label,
.game-page .pitcher-pitch-mix-center-sub {
  font-size: 8px !important;
}

.game-page .pitcher-pitch-mix-center-value {
  font-size: 15px !important;
}

.game-page .pitcher-pitch-mix-key {
  gap: 2px !important;
  min-width: 0 !important;
}

.game-page .pitcher-pitch-mix-key-row {
  display: grid !important;
  grid-template-columns:
    minmax(88px, 0.80fr)
    minmax(0, 1.20fr) !important;
  align-items: center !important;
  gap: 3px !important;
  min-width: 0 !important;
  padding: 2px 3px !important;
  border-radius: 4px !important;
}

.game-page .pitcher-pitch-mix-key-title {
  grid-template-columns:
    6px
    minmax(0, 1fr) !important;
  gap: 3px !important;
  min-width: 0 !important;
}

.game-page .pitcher-pitch-mix-key-title i {
  width: 6px !important;
  height: 6px !important;
  box-shadow: none !important;
}

.game-page .pitcher-pitch-mix-key-title strong {
  font-size: 0.49rem !important;
}

.game-page .pitcher-pitch-mix-key-title small {
  grid-column: 2 !important;
  font-size: 0.35rem !important;
  line-height: 1 !important;
}

.game-page .pitcher-pitch-mix-metrics {
  gap: 1px !important;
}

.game-page .pitcher-pitch-mix-metrics > div {
  gap: 0 !important;
  padding: 1px !important;
  border-radius: 3px !important;
}

.game-page .pitcher-pitch-mix-metrics dt {
  font-size: 0.29rem !important;
  letter-spacing: 0.01em !important;
}

.game-page .pitcher-pitch-mix-metrics dd {
  font-size: 0.44rem !important;
}

.game-page .pitcher-pitch-mix-footnote {
  gap: 0 !important;
  margin-top: 2px !important;
  font-size: 0.36rem !important;
}

@media (max-width: 620px) {
  .game-page .pitcher-pitch-mix-layout {
    grid-template-columns:
      minmax(104px, 118px)
      minmax(0, 1fr) !important;
    gap: 3px !important;
  }

  .game-page .pitcher-pitch-mix-wheel {
    width: min(100%, 118px) !important;
    max-width: 118px !important;
  }

  .game-page .pitcher-pitch-mix-key-row {
    grid-template-columns:
      minmax(68px, 0.70fr)
      minmax(0, 1.30fr) !important;
    gap: 2px !important;
    padding: 2px !important;
  }

  .game-page .pitcher-pitch-mix-key-title strong {
    font-size: 0.44rem !important;
  }

  .game-page .pitcher-pitch-mix-key-title small {
    font-size: 0.32rem !important;
  }

  .game-page .pitcher-pitch-mix-metrics dt {
    font-size: 0.26rem !important;
  }

  .game-page .pitcher-pitch-mix-metrics dd {
    font-size: 0.40rem !important;
  }
}

/* END BORING BETS: COMPACT PITCH MIX V4.1 */

/* BORING BETS: PITCH-NAME COLUMN TABLE V7.1 */

/*
 * The pitch names are the diagonal column headers.
 * The statistics run vertically beneath each pitch.
 * The panel remains completely transparent and flat.
 */

.game-page .pitcher-pitch-mix-panel {
  isolation: auto !important;
  overflow: visible !important;
  margin-top: 3px !important;
  padding: 4px 0 0 !important;
  border: 0 !important;
  border-top: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.game-page .pitcher-pitch-mix-panel::before,
.game-page .pitcher-pitch-mix-panel::after {
  display: none !important;
  background: none !important;
  content: none !important;
}

.game-page .pitcher-pitch-mix-heading {
  gap: 6px !important;
  margin-bottom: 4px !important;
  padding: 0 1px 3px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.10) !important;
}

.game-page .pitcher-pitch-mix-kicker,
.game-page .pitcher-pitch-mix-heading strong,
.game-page .pitcher-pitch-mix-heading small {
  text-shadow: none !important;
}

.game-page .pitcher-pitch-mix-kicker {
  color: rgba(216, 221, 226, 0.62) !important;
}

.game-page .pitcher-pitch-mix-heading strong {
  color: rgba(248, 249, 250, 0.96) !important;
}

.game-page .pitcher-pitch-mix-heading small {
  color: rgba(184, 191, 198, 0.60) !important;
}

.game-page .pitcher-pitch-mix-layout {
  display: grid !important;
  grid-template-columns:
    minmax(118px, 134px)
    minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 8px !important;
}

.game-page .pitcher-pitch-mix-wheel-wrap {
  min-height: 0 !important;
  padding: 73px 0 0 !important;
  background: transparent !important;
}

.game-page .pitcher-pitch-mix-wheel {
  width: min(100%, 134px) !important;
  max-width: 134px !important;
  overflow: visible !important;
  filter: none !important;
}

.game-page .pitcher-pitch-mix-wheel-track,
.game-page .pitcher-pitch-mix-wheel-center {
  display: none !important;
  fill: transparent !important;
  stroke: transparent !important;
}

.game-page .pitcher-pitch-mix-slice,
.game-page .pitcher-pitch-mix-slice:hover,
.game-page .pitcher-pitch-mix-label-line {
  filter: none !important;
}

.game-page .pitcher-pitch-mix-wheel-label,
.game-page .pitcher-pitch-mix-wheel-label tspan,
.game-page .pitcher-pitch-mix-center-label,
.game-page .pitcher-pitch-mix-center-value,
.game-page .pitcher-pitch-mix-center-sub {
  text-shadow: none !important;
}

.game-page .pitcher-pitch-mix-key {
  min-width: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
}

.game-page .pitcher-pitch-mix-pitch-table {
  display: grid !important;
  grid-template-columns:
    52px
    repeat(
      var(--pitch-column-count),
      minmax(42px, 1fr)
    ) !important;
  align-items: stretch !important;
  min-width: 0 !important;
  background: transparent !important;
}

.game-page .pitcher-pitch-mix-row-labels,
.game-page .pitcher-pitch-mix-pitch-column {
  display: grid !important;
  grid-template-rows:
    72px
    repeat(5, 25px) !important;
  min-width: 0 !important;
}

.game-page .pitcher-pitch-mix-row-labels {
  border-right: 1px solid rgba(255, 255, 255, 0.13) !important;
}

.game-page .pitcher-pitch-mix-row-labels > span {
  display: grid !important;
  align-items: center !important;
  padding: 0 5px 0 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.075) !important;
  color: rgba(190, 196, 202, 0.66) !important;
  font-size: 0.36rem !important;
  font-weight: 850 !important;
  letter-spacing: 0.025em !important;
  line-height: 1 !important;
  text-align: right !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

.game-page
  .pitcher-pitch-mix-row-labels
  .pitcher-pitch-mix-row-label-spacer {
  align-items: end !important;
  padding-bottom: 5px !important;
  color: rgba(164, 171, 178, 0.50) !important;
}

.game-page .pitcher-pitch-mix-pitch-column {
  border-right: 1px solid rgba(255, 255, 255, 0.065) !important;
  background: transparent !important;
}

.game-page .pitcher-pitch-mix-pitch-column:last-child {
  border-right: 0 !important;
}

.game-page .pitcher-pitch-mix-key-title {
  position: relative !important;
  display: block !important;
  min-width: 0 !important;
  height: 72px !important;
  padding: 0 !important;
  background: transparent !important;
}

.game-page .pitcher-pitch-mix-key-title i {
  position: absolute !important;
  right: 4px !important;
  bottom: 2px !important;
  left: 4px !important;
  width: auto !important;
  height: 3px !important;
  border-radius: 1px !important;
  background: var(--pitch-mix-color) !important;
  box-shadow: none !important;
}

.game-page .pitcher-pitch-mix-key-title strong {
  position: absolute !important;
  bottom: 8px !important;
  left: 50% !important;
  display: block !important;
  width: max-content !important;
  max-width: 88px !important;
  overflow: hidden !important;
  color: rgba(245, 247, 249, 0.95) !important;
  font-size: 0.45rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.015em !important;
  line-height: 1 !important;
  text-overflow: ellipsis !important;
  text-shadow: none !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  transform: translateX(-6px) rotate(-57deg) !important;
  transform-origin: left bottom !important;
}

.game-page .pitcher-pitch-mix-key-title small {
  position: absolute !important;
  right: 2px !important;
  bottom: 6px !important;
  color: rgba(186, 192, 198, 0.58) !important;
  font-size: 0.28rem !important;
  line-height: 1 !important;
  text-align: right !important;
}

.game-page .pitcher-pitch-mix-metrics {
  display: contents !important;
  margin: 0 !important;
}

.game-page .pitcher-pitch-mix-metrics > div {
  display: grid !important;
  place-items: center !important;
  min-width: 0 !important;
  min-height: 25px !important;
  padding: 0 1px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.075) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.game-page .pitcher-pitch-mix-metrics dt {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.game-page .pitcher-pitch-mix-metrics dd {
  margin: 0 !important;
  color: rgba(236, 239, 242, 0.92) !important;
  font-size: 0.44rem !important;
  font-weight: 820 !important;
  line-height: 1 !important;
  text-align: center !important;
}

.game-page .pitcher-pitch-mix-footnote {
  margin-top: 4px !important;
  padding-top: 3px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.07) !important;
  color: rgba(169, 176, 183, 0.52) !important;
  background: transparent !important;
}

.game-page .pitcher-pitch-mix-status,
.game-page .pitcher-pitch-mix-empty,
.game-page .pitcher-pitch-mix-wheel-empty {
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: rgba(190, 196, 202, 0.70) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.game-page .pitcher-pitch-mix-empty strong {
  color: rgba(244, 246, 248, 0.92) !important;
}

@media (max-width: 620px) {
  .game-page .pitcher-pitch-mix-layout {
    grid-template-columns:
      minmax(96px, 108px)
      minmax(0, 1fr) !important;
    gap: 4px !important;
  }

  .game-page .pitcher-pitch-mix-wheel-wrap {
    padding-top: 65px !important;
  }

  .game-page .pitcher-pitch-mix-wheel {
    width: min(100%, 108px) !important;
    max-width: 108px !important;
  }

  .game-page .pitcher-pitch-mix-pitch-table {
    grid-template-columns:
      43px
      repeat(
        var(--pitch-column-count),
        minmax(34px, 1fr)
      ) !important;
  }

  .game-page .pitcher-pitch-mix-row-labels,
  .game-page .pitcher-pitch-mix-pitch-column {
    grid-template-rows:
      65px
      repeat(5, 23px) !important;
  }

  .game-page .pitcher-pitch-mix-key-title {
    height: 65px !important;
  }

  .game-page .pitcher-pitch-mix-key-title strong {
    max-width: 75px !important;
    font-size: 0.38rem !important;
  }

  .game-page .pitcher-pitch-mix-row-labels > span {
    padding-right: 3px !important;
    font-size: 0.30rem !important;
  }

  .game-page .pitcher-pitch-mix-metrics > div {
    min-height: 23px !important;
  }

  .game-page .pitcher-pitch-mix-metrics dd {
    font-size: 0.37rem !important;
  }
}

/* END BORING BETS: PITCH-NAME COLUMN TABLE V7.1 */

/* BORING BETS: SLICK PITCH-NAME HEADERS V7.2 */

/*
 * Pitch names rise from lower-left to upper-right.
 * Narrower columns and compact two-line labels allow more
 * complete pitch names to fit without widening the module.
 */

.game-page .pitcher-pitch-mix-pitch-table {
  grid-template-columns:
    46px
    repeat(
      var(--pitch-column-count),
      minmax(36px, 1fr)
    ) !important;
}

.game-page .pitcher-pitch-mix-row-labels,
.game-page .pitcher-pitch-mix-pitch-column {
  grid-template-rows:
    68px
    repeat(5, 24px) !important;
}

.game-page .pitcher-pitch-mix-key-title {
  height: 68px !important;
  overflow: visible !important;
}

.game-page .pitcher-pitch-mix-key-title strong {
  right: 50% !important;
  bottom: 8px !important;
  left: auto !important;
  width: 78px !important;
  max-width: 78px !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  color: rgba(245, 247, 249, 0.96) !important;
  font-size: 0.39rem !important;
  font-weight: 900 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.02 !important;
  text-align: right !important;
  text-overflow: clip !important;
  text-shadow: none !important;
  text-transform: uppercase !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  transform:
    translateX(5px)
    rotate(57deg) !important;
  transform-origin: right bottom !important;
}

.game-page .pitcher-pitch-mix-key-title i {
  right: 3px !important;
  bottom: 2px !important;
  left: 3px !important;
  height: 2px !important;
  border-radius: 999px !important;
}

.game-page .pitcher-pitch-mix-key-title small {
  right: 2px !important;
  bottom: 5px !important;
  font-size: 0.26rem !important;
}

.game-page .pitcher-pitch-mix-row-labels > span {
  padding-right: 4px !important;
  font-size: 0.33rem !important;
}

.game-page .pitcher-pitch-mix-metrics dd {
  font-size: 0.42rem !important;
  font-variant-numeric: tabular-nums !important;
}

.game-page .pitcher-pitch-mix-pitch-column {
  border-right-color:
    rgba(255, 255, 255, 0.055) !important;
}

.game-page .pitcher-pitch-mix-metrics > div,
.game-page .pitcher-pitch-mix-row-labels > span {
  border-bottom-color:
    rgba(255, 255, 255, 0.065) !important;
}

@media (max-width: 620px) {
  .game-page .pitcher-pitch-mix-pitch-table {
    grid-template-columns:
      39px
      repeat(
        var(--pitch-column-count),
        minmax(30px, 1fr)
      ) !important;
  }

  .game-page .pitcher-pitch-mix-row-labels,
  .game-page .pitcher-pitch-mix-pitch-column {
    grid-template-rows:
      62px
      repeat(5, 22px) !important;
  }

  .game-page .pitcher-pitch-mix-key-title {
    height: 62px !important;
  }

  .game-page .pitcher-pitch-mix-key-title strong {
    width: 68px !important;
    max-width: 68px !important;
    font-size: 0.34rem !important;
    transform:
      translateX(4px)
      rotate(57deg) !important;
  }

  .game-page .pitcher-pitch-mix-row-labels > span {
    padding-right: 2px !important;
    font-size: 0.27rem !important;
  }

  .game-page .pitcher-pitch-mix-metrics dd {
    font-size: 0.35rem !important;
  }
}

/* END BORING BETS: SLICK PITCH-NAME HEADERS V7.2 */

/* BORING BETS: ADAPTIVE GAME MODULE HOVER V2 */

/*
 * Hover color comes from the currently visible semantic colors inside
 * each module. Dominance is superlinear: a small edge stays subtle,
 * while a heavily red or green module becomes much stronger.
 */

body.game-page main [data-bb-adaptive-hover] {
  position: relative !important;
  isolation: isolate !important;
  transition:
    transform 150ms ease,
    box-shadow 180ms ease,
    border-color 180ms ease !important;
}

/* Remove the previous fixed green wash from inner clickable shells. */
body.game-page main
  [data-bb-adaptive-hover]
  .pitcher-card-link:hover,
body.game-page main
  [data-bb-adaptive-hover]
  .pitcher-card-link:focus-within,
body.game-page main
  [data-bb-adaptive-hover]
  .module-link:hover,
body.game-page main
  [data-bb-adaptive-hover]
  .module-link:focus-visible,
body.game-page main
  [data-bb-adaptive-hover]
  .module-button:hover,
body.game-page main
  [data-bb-adaptive-hover]
  .module-button:focus-visible {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  filter: none !important;
}

/* Same soft wash shape, recolored from each module's data. */
body.game-page main [data-bb-adaptive-hover]::after {
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  border-radius: inherit !important;
  pointer-events: none !important;
  content: "" !important;
  opacity: 0 !important;
  background:
    radial-gradient(
      115% 92% at 16% 5%,
      rgba(
        var(--bb-hover-rgb, 122, 132, 143),
        var(--bb-hover-alpha, 0.055)
      ) 0%,
      rgba(
        var(--bb-hover-rgb, 122, 132, 143),
        calc(var(--bb-hover-alpha, 0.055) * 0.58)
      ) 42%,
      rgba(
        var(--bb-hover-rgb, 122, 132, 143),
        0
      ) 76%
    ),
    linear-gradient(
      132deg,
      rgba(
        var(--bb-hover-rgb, 122, 132, 143),
        calc(var(--bb-hover-alpha, 0.055) * 0.74)
      ) 0%,
      rgba(
        var(--bb-hover-rgb, 122, 132, 143),
        calc(var(--bb-hover-alpha, 0.055) * 0.20)
      ) 54%,
      rgba(
        var(--bb-hover-rgb, 122, 132, 143),
        0
      ) 100%
    ) !important;
  box-shadow:
    inset 0 0 0 1px
      rgba(
        var(--bb-hover-rgb, 122, 132, 143),
        var(--bb-hover-edge-alpha, 0.07)
      ),
    inset 0 14px 36px
      rgba(
        var(--bb-hover-rgb, 122, 132, 143),
        calc(var(--bb-hover-alpha, 0.055) * 0.48)
      ) !important;
  transition:
    opacity 170ms ease,
    background 170ms ease,
    box-shadow 170ms ease !important;
}

body.game-page main [data-bb-adaptive-hover]:hover::after,
body.game-page main [data-bb-adaptive-hover]:focus-within::after {
  opacity: 1 !important;
}

body.game-page main [data-bb-adaptive-hover]:hover,
body.game-page main [data-bb-adaptive-hover]:focus-within {
  background-image: none !important;
  filter: none !important;
  box-shadow:
    0 5px 16px rgba(0, 0, 0, 0.24),
    0 0 22px
      rgba(
        var(--bb-hover-rgb, 122, 132, 143),
        var(--bb-hover-glow-alpha, 0.025)
      ) !important;
}

body.game-page main [data-bb-adaptive-hover]:focus-visible {
  outline: 1px solid rgba(216, 222, 228, 0.44) !important;
  outline-offset: -1px !important;
}

@media (prefers-reduced-motion: reduce) {
  body.game-page main [data-bb-adaptive-hover],
  body.game-page main [data-bb-adaptive-hover]::after {
    transition: none !important;
  }
}

/* END BORING BETS: ADAPTIVE GAME MODULE HOVER V2 */

/* BORING BETS: RANKED LINE PITCH MIX V8.2 */

.game-page .pitcher-pitch-mix-layout {
  display: grid !important;
  grid-template-columns:
    minmax(210px, 224px)
    minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
}

.game-page .pitcher-pitch-mix-wheel-wrap {
  display: grid !important;
  place-items: center !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

.game-page .pitcher-pitch-mix-wheel {
  display: block !important;
  width: 224px !important;
  max-width: 224px !important;
  height: auto !important;
  overflow: visible !important;
}

.game-page .pitcher-pitch-mix-wheel-track {
  display: block !important;
  fill: none !important;
  stroke: rgba(255, 255, 255, .055) !important;
  stroke-width: 2px !important;
}

.game-page .pitcher-pitch-mix-wheel-center {
  display: none !important;
}

.game-page .pitcher-pitch-mix-slice {
  fill: none !important;
  stroke-width: 10px !important;
  stroke-linecap: round !important;
  transition:
    opacity 150ms ease,
    filter 150ms ease !important;
}

.game-page .pitcher-pitch-mix-slice:hover {
  opacity: 1 !important;
}

.game-page .pitcher-pitch-mix-label-line {
  stroke-width: 1px !important;
  opacity: .52 !important;
}

.game-page .pitcher-pitch-mix-wheel-label {
  fill: var(--pitch-mix-color) !important;
  stroke: rgba(2, 8, 6, .96) !important;
  stroke-width: 2.3px !important;
  paint-order: stroke !important;
  font-size: 8.1px !important;
  font-weight: 900 !important;
}

.game-page
  .pitcher-pitch-mix-wheel-label
  tspan + tspan {
  fill: currentColor !important;
  opacity: .72;
  font-size: 7.3px !important;
}

.game-page .pitcher-pitch-mix-center-label,
.game-page .pitcher-pitch-mix-center-sub {
  fill: rgba(132, 157, 143, .74) !important;
  font-size: 7px !important;
  font-weight: 950 !important;
  letter-spacing: .12em !important;
}

.game-page .pitcher-pitch-mix-center-value {
  fill: rgba(239, 255, 246, .96) !important;
  font-size: 15px !important;
  font-weight: 950 !important;
}

.game-page .pitcher-pitch-mix-key {
  min-width: 0 !important;
  overflow: hidden !important;
}

.game-page .pitcher-pitch-mix-peer-table-wrap {
  width: 100%;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: thin;
}

.game-page .pitcher-pitch-mix-pitch-table {
  display: table !important;
  width: 100% !important;
  min-width: 360px !important;
  border-collapse: collapse !important;
  table-layout: fixed !important;
  background: transparent !important;
}

.game-page .pitcher-pitch-mix-pitch-table thead {
  display: table-header-group !important;
}

.game-page .pitcher-pitch-mix-pitch-table tbody {
  display: table-row-group !important;
}

.game-page .pitcher-pitch-mix-pitch-table tr {
  display: table-row !important;
}

.game-page .pitcher-pitch-mix-pitch-table th,
.game-page .pitcher-pitch-mix-pitch-table td {
  display: table-cell !important;
  height: 22px !important;
  padding: 2px 4px !important;
  border: 0 !important;
  border-bottom:
    1px solid rgba(255, 255, 255, .06) !important;
  background: transparent !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
}

.game-page .pitcher-pitch-mix-pitch-table thead th {
  color: rgba(149, 169, 157, .64) !important;
  font-size: .34rem !important;
  font-weight: 950 !important;
  letter-spacing: .055em !important;
  text-align: center !important;
  text-transform: uppercase !important;
}

.game-page .pitcher-pitch-mix-pitch-table thead th:first-child {
  width: 36%;
  text-align: left !important;
}

.game-page .pitcher-pitch-mix-key-row {
  display: table-row !important;
  background: transparent !important;
}

.game-page .pitcher-pitch-mix-key-title {
  position: static !important;
  display: table-cell !important;
  width: 36% !important;
  height: 22px !important;
  padding: 2px 4px !important;
  text-align: left !important;
}

.game-page .pitcher-pitch-mix-key-title i {
  position: static !important;
  display: inline-block !important;
  width: 14px !important;
  height: 2px !important;
  margin-right: 5px !important;
  border-radius: 999px !important;
  background: var(--pitch-mix-color) !important;
  vertical-align: middle !important;
}

.game-page .pitcher-pitch-mix-key-title > span {
  display: inline-grid !important;
  max-width: calc(100% - 23px);
  vertical-align: middle !important;
}

.game-page .pitcher-pitch-mix-key-title strong {
  position: static !important;
  display: block !important;
  width: auto !important;
  max-width: none !important;
  overflow: hidden !important;
  color: var(--pitch-mix-color) !important;
  font-size: .43rem !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  text-overflow: ellipsis !important;
  transform: none !important;
  white-space: nowrap !important;
}

.game-page .pitcher-pitch-mix-key-title small {
  position: static !important;
  display: block !important;
  color: rgba(145, 160, 151, .50) !important;
  font-size: .28rem !important;
  line-height: 1 !important;
  text-align: left !important;
}

.game-page .pitcher-pitch-mix-peer-cell {
  width: 12.8%;
  color: rgba(230, 240, 234, .84);
  font-size: .40rem !important;
  font-weight: 900 !important;
  font-variant-numeric: tabular-nums;
  text-align: center !important;
  cursor: help;
}

.game-page .pitcher-pitch-mix-peer-cell.metric-elite {
  color: #63ff9b !important;
}

.game-page .pitcher-pitch-mix-peer-cell.metric-good {
  color: #a2f5bf !important;
}

.game-page .pitcher-pitch-mix-peer-cell.metric-average {
  color: var(--text) !important;
}

.game-page .pitcher-pitch-mix-peer-cell.metric-poor {
  color: #ffadb8 !important;
}

.game-page .pitcher-pitch-mix-peer-cell.metric-awful {
  color: #ff7184 !important;
}

.game-page .pitcher-pitch-mix-peer-cell.metric-missing {
  color: rgba(130, 144, 136, .48) !important;
}

html[data-highlight-display-mode="black-white"]
  .game-page .pitcher-pitch-mix-peer-cell.metric-elite {
  color: #f4f7f5 !important;
}

html[data-highlight-display-mode="black-white"]
  .game-page .pitcher-pitch-mix-peer-cell.metric-good {
  color: #cbd3cf !important;
}

html[data-highlight-display-mode="black-white"]
  .game-page .pitcher-pitch-mix-peer-cell.metric-average {
  color: #959f9a !important;
}

html[data-highlight-display-mode="black-white"]
  .game-page .pitcher-pitch-mix-peer-cell.metric-poor {
  color: #737c77 !important;
}

html[data-highlight-display-mode="black-white"]
  .game-page .pitcher-pitch-mix-peer-cell.metric-awful {
  color: #525a56 !important;
}

html[data-highlight-display-mode="off"]
  .game-page .pitcher-pitch-mix-peer-cell {
  color: rgba(230, 240, 234, .84) !important;
  text-shadow: none !important;
  filter: none !important;
}

.game-page .pitcher-pitch-mix-footnote {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px !important;
  margin-top: 4px !important;
  padding-top: 3px !important;
  font-size: .34rem !important;
}

@media (max-width: 620px) {
  .game-page .pitcher-pitch-mix-layout {
    grid-template-columns:
      minmax(148px, 168px)
      minmax(0, 1fr) !important;
    gap: 5px !important;
  }

  .game-page .pitcher-pitch-mix-wheel {
    width: 168px !important;
    max-width: 168px !important;
  }

  .game-page .pitcher-pitch-mix-pitch-table {
    min-width: 290px !important;
  }

  .game-page .pitcher-pitch-mix-pitch-table th,
  .game-page .pitcher-pitch-mix-pitch-table td {
    height: 20px !important;
    padding: 1px 3px !important;
  }

  .game-page .pitcher-pitch-mix-peer-cell {
    font-size: .35rem !important;
  }

  .game-page .pitcher-pitch-mix-key-title strong {
    font-size: .38rem !important;
  }

  .game-page .pitcher-pitch-mix-footnote {
    grid-template-columns: 1fr;
    gap: 1px !important;
  }
}

/* END BORING BETS: RANKED LINE PITCH MIX V8.2 */

/* BORING BETS: COMPACT SITEWIDE PITCH MIX V8.4 */

.game-page .pitcher-pitch-mix-panel {
  margin-top: 2px !important;
  padding-top: 2px !important;
}

.game-page .pitcher-pitch-mix-heading {
  display: none !important;
}

.game-page .pitcher-pitch-mix-layout {
  display: grid !important;
  grid-template-columns:
    minmax(164px, 176px)
    minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 6px !important;
}

.game-page .pitcher-pitch-mix-wheel-wrap {
  min-height: 0 !important;
  padding: 0 !important;
}

.game-page .pitcher-pitch-mix-wheel {
  width: 176px !important;
  max-width: 176px !important;
}

.game-page .pitcher-pitch-mix-slice {
  stroke-width: 8px !important;
}

.game-page .pitcher-pitch-mix-wheel-label {
  font-size: 6.7px !important;
  stroke-width: 1.9px !important;
}

.game-page
  .pitcher-pitch-mix-wheel-label
  tspan + tspan {
  font-size: 6.1px !important;
}

.game-page .pitcher-pitch-mix-center-label,
.game-page .pitcher-pitch-mix-center-sub {
  font-size: 5.9px !important;
}

.game-page .pitcher-pitch-mix-center-value {
  font-size: 12.5px !important;
}

.game-page .pitcher-pitch-mix-pitch-table {
  min-width: 292px !important;
}

.game-page
  .pitcher-pitch-mix-pitch-table
  th,
.game-page
  .pitcher-pitch-mix-pitch-table
  td {
  height: 18px !important;
  padding: 1px 2px !important;
}

.game-page
  .pitcher-pitch-mix-pitch-table
  thead th {
  font-size: .28rem !important;
  letter-spacing: .035em !important;
}

.game-page
  .pitcher-pitch-mix-pitch-table
  thead th:first-child,
.game-page .pitcher-pitch-mix-key-title {
  width: 34% !important;
}

.game-page .pitcher-pitch-mix-key-title {
  height: 18px !important;
  padding: 1px 2px !important;
}

.game-page .pitcher-pitch-mix-key-title i {
  width: 11px !important;
  height: 2px !important;
  margin-right: 3px !important;
}

.game-page .pitcher-pitch-mix-key-title > span {
  max-width: calc(100% - 18px) !important;
}

.game-page .pitcher-pitch-mix-key-title strong {
  font-size: .36rem !important;
}

.game-page .pitcher-pitch-mix-key-title small {
  font-size: .23rem !important;
}

.game-page .pitcher-pitch-mix-peer-cell {
  width: 13.2% !important;
  font-size: .33rem !important;
}

.game-page .pitcher-pitch-mix-footnote {
  gap: 3px !important;
  margin-top: 2px !important;
  padding-top: 2px !important;
  font-size: .27rem !important;
  line-height: 1.15 !important;
}

@media (max-width: 620px) {
  .game-page .pitcher-pitch-mix-layout {
    grid-template-columns:
      minmax(126px, 138px)
      minmax(0, 1fr) !important;
    gap: 3px !important;
  }

  .game-page .pitcher-pitch-mix-wheel {
    width: 138px !important;
    max-width: 138px !important;
  }

  .game-page
    .pitcher-pitch-mix-pitch-table {
    min-width: 252px !important;
  }

  .game-page
    .pitcher-pitch-mix-pitch-table
    th,
  .game-page
    .pitcher-pitch-mix-pitch-table
    td {
    height: 17px !important;
    padding: 1px !important;
  }

  .game-page
    .pitcher-pitch-mix-peer-cell {
    font-size: .29rem !important;
  }

  .game-page
    .pitcher-pitch-mix-key-title
    strong {
    font-size: .32rem !important;
  }

  .game-page .pitcher-pitch-mix-footnote {
    font-size: .24rem !important;
  }
}

/* END BORING BETS: COMPACT SITEWIDE PITCH MIX V8.4 */

/* BORING BETS: PITCH MIX TYPOGRAPHY MATCH V8.5 */

.game-page .pitcher-pitch-mix-panel {
  margin-top: 2px !important;
  padding-top: 2px !important;
}

.game-page .pitcher-pitch-mix-heading {
  display: none !important;
}

.game-page .pitcher-pitch-mix-layout {
  display: grid !important;
  grid-template-columns:
    minmax(164px, 176px)
    minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 6px !important;
}

.game-page .pitcher-pitch-mix-wheel-wrap {
  min-height: 0 !important;
  padding: 0 !important;
}

.game-page .pitcher-pitch-mix-wheel {
  width: 176px !important;
  max-width: 176px !important;
}

.game-page .pitcher-pitch-mix-slice {
  stroke-width: 8px !important;
}

.game-page .pitcher-pitch-mix-wheel-label {
  font-family:
    var(--bb-font-data, monospace) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  stroke-width: 1.9px !important;
}

.game-page
  .pitcher-pitch-mix-wheel-label
  tspan + tspan {
  font-family:
    var(--bb-font-data, monospace) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
}

.game-page .pitcher-pitch-mix-center-label,
.game-page .pitcher-pitch-mix-center-sub {
  font-family: inherit !important;
  font-size: 8px !important;
  font-weight: 800 !important;
}

.game-page .pitcher-pitch-mix-center-value {
  font-family:
    var(--bb-font-data, monospace) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
}

.game-page .pitcher-pitch-mix-pitch-table {
  min-width: 292px !important;
  font-family: inherit !important;
  font-size: 0.63rem !important;
  line-height: 1 !important;
  font-variant-numeric: tabular-nums !important;
}

.game-page
  .pitcher-pitch-mix-pitch-table
  th,
.game-page
  .pitcher-pitch-mix-pitch-table
  td {
  height: 18px !important;
  padding: 1px 2px !important;
}

.game-page
  .pitcher-pitch-mix-pitch-table
  thead th {
  font-family: inherit !important;
  font-size: 0.50rem !important;
  font-weight: 800 !important;
  letter-spacing: .025em !important;
}

.game-page
  .pitcher-pitch-mix-pitch-table
  thead th:first-child,
.game-page .pitcher-pitch-mix-key-title {
  width: 34% !important;
}

.game-page .pitcher-pitch-mix-key-title {
  height: 18px !important;
  padding: 1px 2px !important;
}

.game-page .pitcher-pitch-mix-key-title i {
  width: 11px !important;
  height: 2px !important;
  margin-right: 3px !important;
}

.game-page .pitcher-pitch-mix-key-title > span {
  max-width: calc(100% - 18px) !important;
}

.game-page .pitcher-pitch-mix-key-title strong {
  font-family: inherit !important;
  font-size: 0.59rem !important;
  font-weight: 800 !important;
}

.game-page .pitcher-pitch-mix-key-title small {
  font-family: inherit !important;
  font-size: 0.50rem !important;
  font-weight: 700 !important;
}

.game-page .pitcher-pitch-mix-peer-cell {
  width: 13.2% !important;
  font-family:
    var(--bb-font-data, monospace) !important;
  font-size: 0.63rem !important;
  font-weight: 800 !important;
}

.game-page .pitcher-pitch-mix-footnote {
  gap: 3px !important;
  margin-top: 2px !important;
  padding-top: 2px !important;
  font-size: .27rem !important;
  line-height: 1.15 !important;
}

@media (max-width: 620px) {
  .game-page .pitcher-pitch-mix-layout {
    grid-template-columns:
      minmax(126px, 138px)
      minmax(0, 1fr) !important;
    gap: 3px !important;
  }

  .game-page .pitcher-pitch-mix-wheel {
    width: 138px !important;
    max-width: 138px !important;
  }

  .game-page
    .pitcher-pitch-mix-pitch-table {
    min-width: 252px !important;
  }

  .game-page
    .pitcher-pitch-mix-pitch-table
    th,
  .game-page
    .pitcher-pitch-mix-pitch-table
    td {
    height: 17px !important;
    padding: 1px !important;
  }

  .game-page
    .pitcher-pitch-mix-peer-cell {
    font-family:
      var(--bb-font-data, monospace) !important;
    font-size: 0.61rem !important;
    font-weight: 800 !important;
  }

  .game-page
    .pitcher-pitch-mix-key-title
    strong {
    font-family: inherit !important;
    font-size: 0.59rem !important;
    font-weight: 800 !important;
  }

  .game-page .pitcher-pitch-mix-footnote {
    font-size: .24rem !important;
  }
}

/* END BORING BETS: PITCH MIX TYPOGRAPHY MATCH V8.5 */

/* BORING BETS: INWARD FADE PITCH RING V8.6.2 */

.game-page .pitcher-pitch-mix-segment {
  transform-box: fill-box;
  transform-origin: center;
  transition:
    opacity 150ms ease,
    filter 150ms ease;
}

.game-page .pitcher-pitch-mix-segment-path {
  fill: none !important;
  stroke: var(--pitch-mix-color) !important;
  stroke-linecap: round !important;
  pointer-events: none;
}

.game-page
  .pitcher-pitch-mix-segment-path--outer {
  stroke-width: 8px !important;
  opacity: 1 !important;
}

.game-page
  .pitcher-pitch-mix-segment-path--fade-one {
  stroke-width: 8px !important;
  opacity: .38 !important;
}

.game-page
  .pitcher-pitch-mix-segment-path--fade-two {
  stroke-width: 8px !important;
  opacity: .18 !important;
}

.game-page
  .pitcher-pitch-mix-segment-path--fade-three {
  stroke-width: 8px !important;
  opacity: .07 !important;
}

.game-page .pitcher-pitch-mix-wheel-label {
  fill: var(--pitch-mix-color) !important;
  font-family:
    var(--bb-font-data, monospace) !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  letter-spacing: .015em !important;
  stroke: rgba(2, 8, 6, .98) !important;
  stroke-width: 3.2px !important;
  paint-order: stroke !important;
}

.game-page .pitcher-pitch-mix-percent-label {
  fill: var(--pitch-mix-color) !important;
  font-family:
    var(--bb-font-data, monospace) !important;
  font-size: 14px !important;
  font-weight: 950 !important;
  letter-spacing: -.02em !important;
  stroke: rgba(2, 8, 6, .98) !important;
  stroke-width: 3.4px !important;
  paint-order: stroke !important;
  pointer-events: none;
}

.game-page .pitcher-pitch-mix-label-line {
  stroke-width: 1.2px !important;
  opacity: .65 !important;
}

.game-page .pitcher-pitch-mix-center-label {
  display: none !important;
}

.game-page .pitcher-pitch-mix-center-value {
  font-size: 11px !important;
}

.game-page .pitcher-pitch-mix-center-sub {
  font-size: 8px !important;
}

@media (max-width: 620px) {
  .game-page .pitcher-pitch-mix-wheel-label {
    font-size: 14px !important;
  }

  .game-page .pitcher-pitch-mix-percent-label {
    font-size: 13px !important;
  }
}

/* END BORING BETS: INWARD FADE PITCH RING V8.6.2 */

/* BORING BETS: DISTINCT SITEWIDE PITCH COLORS V8.7 */

.game-page .pitcher-pitch-mix-segment {
  transform-box: fill-box;
  transform-origin: center;
  transition:
    opacity 150ms ease,
    filter 150ms ease;
}

.game-page .pitcher-pitch-mix-segment-path {
  fill: none !important;
  stroke: var(--pitch-mix-color) !important;
  stroke-linecap: round !important;
  pointer-events: none;
}

.game-page
  .pitcher-pitch-mix-segment-path--outer {
  stroke-width: 8px !important;
  opacity: 1 !important;
}

.game-page
  .pitcher-pitch-mix-segment-path--fade-one {
  stroke-width: 8px !important;
  opacity: .38 !important;
}

.game-page
  .pitcher-pitch-mix-segment-path--fade-two {
  stroke-width: 8px !important;
  opacity: .18 !important;
}

.game-page
  .pitcher-pitch-mix-segment-path--fade-three {
  stroke-width: 8px !important;
  opacity: .07 !important;
}

.game-page .pitcher-pitch-mix-wheel-label {
  fill: var(--pitch-mix-color) !important;
  font-family:
    var(--bb-font-data, monospace) !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  letter-spacing: .015em !important;
  stroke: rgba(2, 8, 6, .98) !important;
  stroke-width: 3.2px !important;
  paint-order: stroke !important;
}

.game-page .pitcher-pitch-mix-percent-label {
  fill: var(--pitch-mix-color) !important;
  font-family:
    var(--bb-font-data, monospace) !important;
  font-size: 14px !important;
  font-weight: 950 !important;
  letter-spacing: -.02em !important;
  stroke: rgba(2, 8, 6, .98) !important;
  stroke-width: 3.4px !important;
  paint-order: stroke !important;
  pointer-events: none;
}

.game-page .pitcher-pitch-mix-label-line {
  stroke-width: 1.2px !important;
  opacity: .65 !important;
}

.game-page .pitcher-pitch-mix-center-label {
  display: none !important;
}

.game-page .pitcher-pitch-mix-center-value {
  font-size: 11px !important;
}

.game-page .pitcher-pitch-mix-center-sub {
  font-size: 8px !important;
}

@media (max-width: 620px) {
  .game-page .pitcher-pitch-mix-wheel-label {
    font-size: 14px !important;
  }

  .game-page .pitcher-pitch-mix-percent-label {
    font-size: 13px !important;
  }
}

/* END BORING BETS: DISTINCT SITEWIDE PITCH COLORS V8.7 */

/* BORING BETS: FITTED DISTINCT PITCH WHEEL V8.8 */

.game-page .pitcher-pitch-mix-layout {
  grid-template-columns:
    minmax(150px, 160px)
    minmax(0, 1fr) !important;
  gap: 5px !important;
}

.game-page .pitcher-pitch-mix-wheel {
  width: 160px !important;
  max-width: 160px !important;
}

.game-page .pitcher-pitch-mix-wheel-label {
  font-size: 14px !important;
  stroke-width: 3px !important;
}

.game-page .pitcher-pitch-mix-percent-label {
  font-size: 13px !important;
  stroke-width: 3.1px !important;
}

.game-page .pitcher-pitch-mix-center-value {
  font-size: 11px !important;
}

.game-page .pitcher-pitch-mix-center-sub {
  display: none !important;
}

@media (max-width: 620px) {
  .game-page .pitcher-pitch-mix-layout {
    grid-template-columns:
      minmax(118px, 128px)
      minmax(0, 1fr) !important;
    gap: 3px !important;
  }

  .game-page .pitcher-pitch-mix-wheel {
    width: 128px !important;
    max-width: 128px !important;
  }

  .game-page .pitcher-pitch-mix-wheel-label {
    font-size: 12px !important;
    stroke-width: 2.7px !important;
  }

  .game-page .pitcher-pitch-mix-percent-label {
    font-size: 11px !important;
    stroke-width: 2.8px !important;
  }
}

/* END BORING BETS: FITTED DISTINCT PITCH WHEEL V8.8 */

/* BORING BETS: TABLE PITCH COUNT HOVER V8.10.1 */

/*
 * The per-pitch sample count is no longer printed beneath each pitch name.
 * The native hover tooltip on the pitch-name cell preserves the count.
 */
.game-page .pitcher-pitch-mix-key-title {
  cursor: help !important;
}

.game-page .pitcher-pitch-mix-key-title small {
  display: none !important;
}

/* END BORING BETS: TABLE PITCH COUNT HOVER V8.10.1 */

/* BORING BETS: OFFENSE PITCH RANK + LINEUP POPOUT V1 */

.game-page .offense-lineup-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  min-width: 0;
  align-items: start;
}

.game-page
.offense-lineup-shell-away.is-lineup-open {
  grid-template-columns:
    minmax(0, 1fr)
    minmax(175px, 210px);
}

.game-page
.offense-lineup-shell-home.is-lineup-open {
  grid-template-columns:
    minmax(175px, 210px)
    minmax(0, 1fr);
}

.game-page
.offense-lineup-shell-away
.offense-comparison-card {
  grid-column: 1;
  grid-row: 1;
}

.game-page
.offense-lineup-shell-away
.offense-lineup-popout {
  grid-column: 2;
  grid-row: 1;
}

.game-page
.offense-lineup-shell-home
.offense-comparison-card {
  grid-column: 1;
  grid-row: 1;
}

.game-page
.offense-lineup-shell-home
.offense-lineup-popout {
  grid-column: 1;
  grid-row: 1;
}

.game-page
.offense-lineup-shell-home.is-lineup-open
.offense-comparison-card {
  grid-column: 2;
  grid-row: 1;
}

.game-page .offense-comparison-card {
  min-width: 0;
}

.game-page .offense-lineup-popout {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--panel);
  overflow: hidden;
}

.game-page .offense-lineup-popout[hidden] {
  display: none !important;
}

.game-page .offense-lineup-loading,
.game-page .offense-custom-loading {
  padding: 14px 8px;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.45;
}

.game-page .offense-control-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.game-page .offense-timeframe-control {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  min-width: 0;
}

.game-page
.offense-timeframe-control button {
  min-width: 32px;
}

.game-page .offense-custom-days {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  height: 30px;
  margin-left: 4px;
  padding: 0 6px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: rgba(255,255,255,.018);
  color: var(--muted);
  font: inherit;
}

.game-page .offense-custom-days.active {
  border-color: rgba(224,236,230,.5);
  color: rgba(238,245,249,.94);
}

.game-page
.offense-custom-days input {
  width: 35px;
  border: 0;
  outline: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-variant-numeric: tabular-nums;
  text-align: right;
  appearance: textfield;
}

.game-page
.offense-custom-days
input::-webkit-inner-spin-button,
.game-page
.offense-custom-days
input::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
}

.game-page
.offense-custom-days span {
  font-size: .64rem;
  font-weight: 850;
}

.game-page .offense-secondary-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  flex: 0 0 auto;
}

.game-page
.offense-secondary-controls button {
  min-height: 30px;
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: .61rem;
  font-weight: 850;
  letter-spacing: .025em;
  cursor: pointer;
}

.game-page
.offense-secondary-controls button:hover,
.game-page
.offense-secondary-controls button.active {
  border-color: rgba(150,177,164,.42);
  color: rgba(238,245,249,.94);
  background: rgba(255,255,255,.025);
}

.game-page .offense-pitch-mix-dropdown {
  margin: 0 0 10px;
  padding: 9px;
  border: 1px solid rgba(150,177,164,.18);
  border-radius: 8px;
  background: rgba(3,10,7,.34);
}

.game-page .offense-pitch-mix-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}

.game-page
.offense-pitch-mix-heading strong {
  font-size: .67rem;
  letter-spacing: .055em;
}

.game-page
.offense-pitch-mix-heading span {
  color: var(--muted);
  font-size: .56rem;
}

.game-page .offense-pitch-rank-list {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 3px 8px;
  max-height: 178px;
  overflow: auto;
}

.game-page .offense-pitch-rank-row {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 4px 5px;
  border-bottom:
    1px solid rgba(255,255,255,.035);
}

.game-page
.offense-pitch-rank-row span {
  min-width: 0;
  overflow: hidden;
  color: rgba(222,232,227,.78);
  font-size: .57rem;
  font-weight: 760;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.game-page
.offense-pitch-rank-row strong {
  min-width: 29px;
  font-size: .64rem;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.game-page .offense-pitch-mix-status,
.game-page .offense-pitch-mix-footnote,
.game-page .offense-custom-note {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: .53rem;
  line-height: 1.4;
}

.game-page .offense-module-content {
  min-width: 0;
}

.game-page .offense-full-lineup-link {
  white-space: nowrap;
}

.game-page
.offense-lineup-popout .module-heading {
  align-items: flex-start;
  gap: 6px;
  margin-bottom: 8px;
}

.game-page
.offense-lineup-popout
.module-heading h3 {
  font-size: .78rem;
}

.game-page .lineup-offense-window {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: .46rem;
  font-weight: 850;
  letter-spacing: .04em;
}

.game-page
.offense-lineup-popout .lineup-list {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.game-page
.offense-lineup-popout
.lineup-player-row {
  display: grid;
  grid-template-columns:
    18px minmax(0, 1fr) auto auto;
  gap: 4px 5px;
  align-items: center;
  min-width: 0;
  padding: 5px 3px;
  border-bottom:
    1px solid rgba(255,255,255,.04);
}

.game-page
.offense-lineup-popout
.lineup-player-row > strong,
.game-page
.offense-lineup-popout
.offense-lineup-player-link {
  min-width: 0;
  overflow: hidden;
  color: rgba(238,245,249,.88);
  font-size: .60rem;
  font-weight: 800;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.game-page
.offense-lineup-popout
.offense-lineup-player-link:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.game-page
.offense-lineup-popout
.lineup-player-row > span {
  color: var(--muted);
  font-size: .48rem;
  white-space: nowrap;
}

.game-page
.offense-lineup-popout .lineup-order {
  color: rgba(238,245,249,.72) !important;
  font-weight: 850;
}

.game-page
.offense-lineup-popout
.lineup-player-offense {
  grid-column: 2 / -1;
  display: grid;
  grid-template-columns:
    repeat(5, minmax(0, 1fr));
  gap: 2px;
}

.game-page
.offense-lineup-popout
.lineup-player-offense > span {
  display: block;
  min-width: 0;
  padding: 3px 1px;
  border-radius: 4px;
  background: rgba(255,255,255,.018);
  text-align: center;
}

.game-page
.offense-lineup-popout
.lineup-player-offense small,
.game-page
.offense-lineup-popout
.lineup-player-offense b {
  display: block;
}

.game-page
.offense-lineup-popout
.lineup-player-offense small {
  color: var(--muted);
  font-size: .35rem;
}

.game-page
.offense-lineup-popout
.lineup-player-offense b {
  margin-top: 1px;
  color: rgba(238,245,249,.88);
  font-size: .46rem;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 1220px) {
  .game-page .offense-control-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .game-page .offense-secondary-controls {
    justify-content: flex-start;
  }

  .game-page .offense-pitch-rank-list {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 1020px) {
  .game-page
  .offense-lineup-shell-away.is-lineup-open,
  .game-page
  .offense-lineup-shell-home.is-lineup-open {
    grid-template-columns: minmax(0, 1fr);
  }

  .game-page
  .offense-lineup-shell-away
  .offense-comparison-card,
  .game-page
  .offense-lineup-shell-away
  .offense-lineup-popout,
  .game-page
  .offense-lineup-shell-home
  .offense-comparison-card,
  .game-page
  .offense-lineup-shell-home
  .offense-lineup-popout {
    grid-column: 1;
  }

  .game-page
  .offense-lineup-shell-away
  .offense-comparison-card {
    grid-row: 1;
  }

  .game-page
  .offense-lineup-shell-away
  .offense-lineup-popout {
    grid-row: 2;
  }

  .game-page
  .offense-lineup-shell-home
  .offense-lineup-popout {
    grid-row: 1;
  }

  .game-page
  .offense-lineup-shell-home
  .offense-comparison-card {
    grid-row: 2;
  }
}

/* END BORING BETS: OFFENSE PITCH RANK + LINEUP POPOUT V1 */

/* BORING BETS: DISCREET CUSTOM DAYS + PITCH MIX BELOW V1 */

.game-page .offense-custom-days {
  height: 20px !important;
  min-height: 20px !important;
  margin-left: 2px !important;
  padding: 0 3px !important;
  gap: 1px !important;
  border-color:
    rgba(150,177,164,.08) !important;
  border-radius: 4px !important;
  background: transparent !important;
  color:
    rgba(184,204,194,.32) !important;
  opacity: .52;
  transition:
    opacity 120ms ease,
    border-color 120ms ease,
    color 120ms ease;
}

.game-page
.offense-custom-days input {
  width: 20px !important;
  min-width: 20px !important;
  padding: 0 !important;
  color: inherit !important;
  font-size: .48rem !important;
  font-weight: 720 !important;
  line-height: 1 !important;
  text-align: right !important;
}

.game-page
.offense-custom-days span {
  font-size: .40rem !important;
  font-weight: 760 !important;
  letter-spacing: 0 !important;
}

.game-page
.offense-custom-days:hover,
.game-page
.offense-custom-days:focus-within {
  border-color:
    rgba(150,177,164,.20) !important;
  color:
    rgba(210,225,217,.58) !important;
  opacity: .86;
}

.game-page
.offense-custom-days.active {
  border-color:
    rgba(210,225,217,.24) !important;
  color:
    rgba(226,237,231,.72) !important;
  opacity: .92;
}

.game-page .offense-pitch-mix-dropdown {
  margin:
    8px 0 0 !important;
}

/* END BORING BETS: DISCREET CUSTOM DAYS + PITCH MIX BELOW V1 */

/* BORING BETS: OFFENSE CONTROLS UNDER HEADING V1 */

.game-page .offense-heading-main {
  min-width: 0;
  flex: 1 1 auto;
}

.game-page .offense-control-bar.offense-control-bar-below-heading {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 5px;
  margin: 7px 0 0;
}

.game-page .offense-primary-controls {
  display: inline-flex;
  align-items: stretch;
  gap: 5px;
  min-width: 0;
}

.game-page
.offense-control-bar-below-heading
.offense-timeframe-control {
  display: inline-flex;
  align-items: stretch;
  flex-wrap: nowrap;
  min-width: 0;
}

.game-page
.offense-control-bar-below-heading
.offense-timeframe-control button {
  min-width: 32px;
  min-height: 30px;
}

/*
  Match the pitcher module's current neutral
  pitch-type / pitch-mix chart button.
*/
.game-page .offense-pitch-mix-toggle,
.game-page .offense-pitch-mix-toggle.is-active {
  flex: 0 0 31px;
  display: inline-grid;
  place-items: center;
  width: 31px;
  min-width: 31px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 9px;
  color: rgba(205, 210, 208, 0.72);
  background: rgba(18, 21, 20, 0.76);
  box-shadow: none;
  cursor: pointer;
  transition:
    color 160ms ease,
    border-color 160ms ease,
    background 160ms ease;
}

.game-page .offense-pitch-mix-toggle:hover,
.game-page .offense-pitch-mix-toggle:focus-visible {
  color: rgba(255, 255, 255, 0.96);
  border-color: rgba(255, 255, 255, 0.34);
  background: rgba(34, 38, 36, 0.94);
  box-shadow: none;
}

.game-page .offense-pitch-mix-toggle svg {
  width: 17px;
  height: 17px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/*
  The custom day box stays available, but visually
  disappears until the user aims at it.
*/
.game-page
.offense-control-bar-below-heading
.offense-custom-days {
  height: 30px;
  min-height: 30px;
  margin-left: 3px;
  padding: 0 3px;
  gap: 1px;
  border-color: rgba(255, 255, 255, 0.055);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.006);
  color: rgba(190, 202, 196, 0.30);
  opacity: 0.46;
  transition:
    opacity 140ms ease,
    border-color 140ms ease,
    color 140ms ease,
    background 140ms ease;
}

.game-page
.offense-control-bar-below-heading
.offense-custom-days input {
  width: 20px;
  min-width: 20px;
  padding: 0;
  color: inherit;
  font-size: 0.50rem;
  font-weight: 760;
  line-height: 1;
}

.game-page
.offense-control-bar-below-heading
.offense-custom-days span {
  font-size: 0.40rem;
  font-weight: 800;
  letter-spacing: 0;
}

.game-page
.offense-control-bar-below-heading
.offense-custom-days:hover,
.game-page
.offense-control-bar-below-heading
.offense-custom-days:focus-within,
.game-page
.offense-control-bar-below-heading
.offense-custom-days.active {
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.018);
  color: rgba(226, 234, 230, 0.72);
  opacity: 0.92;
}

.game-page
.offense-control-bar-below-heading
.offense-secondary-controls {
  margin-left: 0;
}

/* Expanded rankings belong after the offense table/module. */
.game-page .offense-pitch-mix-dropdown {
  margin: 8px 0 0;
}

@media (max-width: 760px) {
  .game-page .offense-control-bar.offense-control-bar-below-heading {
    gap: 4px;
  }

  .game-page .offense-primary-controls {
    gap: 4px;
  }

  .game-page
  .offense-control-bar-below-heading
  .offense-timeframe-control button {
    min-width: 29px;
  }
}

/* END BORING BETS: OFFENSE CONTROLS UNDER HEADING V1 */

/* BORING BETS: OFFENSE LINEUP HEADER + SAFE CARD NAV V1 */

.game-page .offense-heading-lineup-toggle {
  flex: 0 0 auto;
  align-self: flex-start;
  margin: 0;
  text-decoration: none;
  white-space: nowrap;
}

.game-page .offense-heading-lineup-toggle.active {
  border-color: rgba(111, 237, 184, 0.44);
}

.game-page .offense-module-clickthrough
.module-heading {
  cursor: pointer;
}

.game-page .offense-module-clickthrough
.module-heading button,
.game-page .offense-module-clickthrough
.module-heading input,
.game-page .offense-module-clickthrough
.module-heading label {
  cursor: default;
}

.game-page .offense-module-clickthrough
.module-heading button {
  cursor: pointer;
}

/*
  Stats are intentionally not card-navigation targets.
  They remain free for metric/stat-specific links later.
*/
.game-page .offense-module-clickthrough
.table-scroll,
.game-page .offense-module-clickthrough
.offense-data-table,
.game-page .offense-module-clickthrough
.offense-data-table * {
  cursor: default;
}

/* END BORING BETS: OFFENSE LINEUP HEADER + SAFE CARD NAV V1 */

/* BORING BETS: OFFENSE SINGLE CONTROL ROW V1 */

.game-page
.offense-module-heading.offense-module-heading-stacked {
  display: block;
}

.game-page .offense-heading-copy {
  min-width: 0;
}

.game-page
.offense-control-bar.offense-control-bar-single-row {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 5px;
  margin: 7px 0 0;
}

.game-page
.offense-control-bar-single-row
.offense-primary-controls {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}

.game-page
.offense-control-bar-single-row
.offense-timeframe-control {
  display: inline-flex;
  align-items: stretch;
  flex-wrap: nowrap;
  min-width: 0;
}

.game-page
.offense-control-bar-single-row
.offense-timeframe-control button {
  min-width: 32px;
  min-height: 30px;
}

/*
  Same compact neutral chart-button treatment
  as the pitcher module's pitch-type control.
*/
.game-page .offense-pitch-mix-toggle,
.game-page .offense-pitch-mix-toggle.is-active {
  flex: 0 0 31px;
  display: inline-grid;
  place-items: center;
  width: 31px;
  min-width: 31px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 9px;
  color: rgba(205, 210, 208, 0.72);
  background: rgba(18, 21, 20, 0.76);
  box-shadow: none;
  cursor: pointer;
}

.game-page .offense-pitch-mix-toggle:hover,
.game-page .offense-pitch-mix-toggle:focus-visible {
  color: rgba(255, 255, 255, 0.96);
  border-color: rgba(255, 255, 255, 0.34);
  background: rgba(34, 38, 36, 0.94);
}

.game-page .offense-pitch-mix-toggle svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Tiny, intentionally low-visibility custom-day control. */
.game-page
.offense-control-bar-single-row
.offense-custom-days {
  height: 30px;
  min-height: 30px;
  margin-left: 3px;
  padding: 0 3px;
  gap: 1px;
  border-color: rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  background: transparent;
  color: rgba(190, 202, 196, 0.28);
  opacity: 0.44;
}

.game-page
.offense-control-bar-single-row
.offense-custom-days input {
  width: 20px;
  min-width: 20px;
  padding: 0;
  color: inherit;
  font-size: 0.50rem;
  font-weight: 760;
  line-height: 1;
}

.game-page
.offense-control-bar-single-row
.offense-custom-days span {
  font-size: 0.40rem;
  font-weight: 800;
  letter-spacing: 0;
}

.game-page
.offense-control-bar-single-row
.offense-custom-days:hover,
.game-page
.offense-control-bar-single-row
.offense-custom-days:focus-within,
.game-page
.offense-control-bar-single-row
.offense-custom-days.active {
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(226, 234, 230, 0.72);
  opacity: 0.92;
}

/* LINEUP owns the far-right edge of the same row. */
.game-page .offense-row-lineup-toggle {
  flex: 0 0 auto;
  margin-left: auto;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
}

.game-page .offense-row-lineup-toggle.active {
  border-color: rgba(111, 237, 184, 0.44);
}

/* The expanded pitch ranking panel remains below the stats module. */
.game-page .offense-pitch-mix-dropdown {
  margin: 8px 0 0;
}

@media (max-width: 760px) {
  .game-page
  .offense-control-bar.offense-control-bar-single-row {
    gap: 4px;
  }

  .game-page
  .offense-control-bar-single-row
  .offense-primary-controls {
    gap: 4px;
  }

  .game-page
  .offense-control-bar-single-row
  .offense-timeframe-control button {
    min-width: 29px;
  }
}

/* END BORING BETS: OFFENSE SINGLE CONTROL ROW V1 */

/* BORING BETS: OFFENSE CENTERED PITCH MIX BUTTON V1 */

/*
  Three equal-position zones:
  left = timeframe controls
  center = pitch-mix icon
  right = lineup
  The center icon stays physically centered in the offense card.
*/
.game-page
.offense-control-bar.offense-control-bar-single-row.offense-control-bar-centered-pitch {
  display: grid !important;
  grid-template-columns:
    minmax(0, 1fr)
    31px
    minmax(0, 1fr) !important;
  align-items: center !important;
  width: 100% !important;
  gap: 8px !important;
}

.game-page
.offense-control-bar-centered-pitch
.offense-primary-controls {
  justify-self: start !important;
  min-width: 0 !important;
}

.game-page
.offense-control-bar-centered-pitch
.offense-pitch-mix-toggle-centered {
  grid-column: 2;
  justify-self: center !important;
  align-self: center !important;
  margin: 0 !important;
}

.game-page
.offense-control-bar-centered-pitch
.offense-row-lineup-toggle {
  grid-column: 3;
  justify-self: end !important;
  margin-left: 0 !important;
}

/*
  Keep the pitch rankings below the offense stats,
  matching the pitcher's expandable-panel behavior.
*/
.game-page .offense-pitch-mix-dropdown {
  margin-top: 8px !important;
}

@media (max-width: 760px) {
  .game-page
  .offense-control-bar.offense-control-bar-single-row.offense-control-bar-centered-pitch {
    gap: 5px !important;
  }
}

/* END BORING BETS: OFFENSE CENTERED PITCH MIX BUTTON V1 */

/* BORING BETS: MIRRORED HOME OFFENSE HEADER V1 */

/*
  Home offense only:
  mirror everything above the stats table.
  Keep all three controls on one row so the
  away/home tables remain vertically aligned.
*/
.game-page
.offense-module-content.offense-module-home-mirrored
.offense-heading-copy {
  text-align: right;
}

.game-page
.offense-module-content.offense-module-home-mirrored
.offense-control-bar-centered-pitch
.offense-primary-controls {
  grid-column: 3;
  grid-row: 1;
  justify-self: end !important;
}

.game-page
.offense-module-content.offense-module-home-mirrored
.offense-control-bar-centered-pitch
.offense-pitch-mix-toggle-centered {
  grid-column: 2;
  grid-row: 1;
  justify-self: center !important;
  align-self: center !important;
}

.game-page
.offense-module-content.offense-module-home-mirrored
.offense-control-bar-centered-pitch
.offense-row-lineup-toggle {
  grid-column: 1;
  grid-row: 1;
  justify-self: start !important;
  margin-left: 0 !important;
}

.game-page
.offense-module-content.offense-module-home-mirrored
.offense-timeframe-control {
  direction: rtl;
}

.game-page
.offense-module-content.offense-module-home-mirrored
.offense-timeframe-control > * {
  direction: ltr;
}

/*
  Explicitly lock the normal away card to one row too.
  This removes the vertical offset introduced by the
  previous mirrored-away layout.
*/
.game-page
.offense-module-content:not(.offense-module-home-mirrored)
.offense-control-bar-centered-pitch
.offense-primary-controls {
  grid-column: 1;
  grid-row: 1;
  justify-self: start !important;
}

.game-page
.offense-module-content:not(.offense-module-home-mirrored)
.offense-control-bar-centered-pitch
.offense-pitch-mix-toggle-centered {
  grid-column: 2;
  grid-row: 1;
  justify-self: center !important;
}

.game-page
.offense-module-content:not(.offense-module-home-mirrored)
.offense-control-bar-centered-pitch
.offense-row-lineup-toggle {
  grid-column: 3;
  grid-row: 1;
  justify-self: end !important;
  margin-left: 0 !important;
}

/* END BORING BETS: MIRRORED HOME OFFENSE HEADER V1 */

/* BORING BETS: OFFENSE LINEUP ARROW ICON V1.1 */

.game-page .offense-row-lineup-toggle {
  display: inline-grid;
  place-items: center;
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: rgba(211, 220, 215, 0.66);
  box-shadow: none;
  cursor: pointer;
  text-decoration: none;
  transition:
    color 140ms ease,
    background 140ms ease;
}

.game-page .offense-row-lineup-toggle:hover,
.game-page .offense-row-lineup-toggle:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  background: rgba(255, 255, 255, 0.045);
  outline: none;
}

.game-page .offense-row-lineup-toggle.active {
  color: rgba(232, 242, 237, 0.94);
}

.game-page .offense-row-lineup-toggle svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
  transition: transform 140ms ease;
}

/* Away arrow nudges outward to the right. */
.game-page
.offense-module-content:not(.offense-module-home-mirrored)
.offense-row-lineup-toggle:hover svg {
  transform: translateX(1.5px);
}

/* Home arrow nudges outward to the left. */
.game-page
.offense-module-home-mirrored
.offense-row-lineup-toggle:hover svg {
  transform: translateX(-1.5px);
}

/* END BORING BETS: OFFENSE LINEUP ARROW ICON V1.1 */

/* BORING BETS: OFFENSE LINEUP TOP CORNERS V1 */

.game-page
.offense-module-heading.offense-module-heading-stacked {
  position: relative;
}

/*
  LINEUP is intentionally separate from the
  timeframe / pitch-mix control row.
*/
.game-page .offense-top-lineup-toggle {
  position: absolute;
  top: 4px;
  z-index: 3;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 6px;
  background: rgba(18, 21, 20, 0.68);
  color: rgba(215, 223, 219, 0.70);
  box-shadow: none;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition:
    color 140ms ease,
    border-color 140ms ease,
    background 140ms ease;
}

.game-page .offense-top-lineup-toggle:hover,
.game-page .offense-top-lineup-toggle:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  border-color: rgba(255, 255, 255, 0.30);
  background: rgba(34, 38, 36, 0.92);
  outline: none;
}

.game-page .offense-top-lineup-toggle.active {
  color: rgba(235, 244, 239, 0.96);
  border-color: rgba(111, 237, 184, 0.34);
}

/* Away module: top-right corner. */
.game-page .offense-top-lineup-toggle-away {
  right: 5px;
  left: auto;
}

/* Home module: mirrored to the top-left corner. */
.game-page .offense-top-lineup-toggle-home {
  left: 5px;
  right: auto;
}

/*
  Give heading copy just enough corner clearance
  without changing the stats/table position.
*/
.game-page
.offense-module-content:not(.offense-module-home-mirrored)
.offense-heading-copy {
  padding-right: 58px;
}

.game-page
.offense-module-home-mirrored
.offense-heading-copy {
  padding-left: 58px;
}

/* END BORING BETS: OFFENSE LINEUP TOP CORNERS V1 */

/* BORING BETS: OFFENSE LINEUPS DEFAULT OPEN + MATCHED ARROWS V1 */

.game-page
.offense-module-heading.offense-module-heading-stacked {
  position: relative;
}

/*
  Closed/open toggle on the offense card.
  Away lives in the top-right; home is mirrored
  to the top-left.
*/
.game-page .offense-lineup-edge-toggle {
  position: absolute;
  top: 5px;
  z-index: 5;
  display: inline-grid;
  place-items: center;
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: rgba(214, 222, 218, 0.68);
  box-shadow: none;
  cursor: pointer;
  text-decoration: none;
  transition:
    color 140ms ease,
    background 140ms ease;
}

.game-page .offense-lineup-edge-toggle-away {
  right: 5px;
  left: auto;
}

.game-page .offense-lineup-edge-toggle-home {
  left: 5px;
  right: auto;
}

.game-page .offense-lineup-edge-toggle:hover,
.game-page .offense-lineup-edge-toggle:focus-visible,
.game-page .offense-lineup-edge-toggle.active {
  color: rgba(255, 255, 255, 0.98);
  background: rgba(255, 255, 255, 0.045);
  outline: none;
}

/*
  Same exact visual arrow inside the open lineup panel.
*/
.game-page .offense-lineup-popout {
  position: relative;
}

.game-page .offense-lineup-popout-toggle {
  position: absolute;
  top: 7px;
  z-index: 6;
  display: inline-grid;
  place-items: center;
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: rgba(214, 222, 218, 0.68);
  box-shadow: none;
  cursor: pointer;
  transition:
    color 140ms ease,
    background 140ms ease;
}

.game-page .offense-lineup-popout-toggle-away {
  right: 7px;
  left: auto;
}

.game-page .offense-lineup-popout-toggle-home {
  left: 7px;
  right: auto;
}

.game-page .offense-lineup-popout-toggle:hover,
.game-page .offense-lineup-popout-toggle:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  background: rgba(255, 255, 255, 0.045);
  outline: none;
}

.game-page .offense-lineup-edge-toggle svg,
.game-page .offense-lineup-popout-toggle svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

/* Give the heading copy enough space for its corner arrow. */
.game-page
.offense-module-content:not(.offense-module-home-mirrored)
.offense-heading-copy {
  padding-right: 42px;
}

.game-page
.offense-module-home-mirrored
.offense-heading-copy {
  padding-left: 42px;
}

/* END BORING BETS: OFFENSE LINEUPS DEFAULT OPEN + MATCHED ARROWS V1 */

/* BORING BETS: OFFENSE LINEUP ARROW HANDOFF V1 */

.game-page
.offense-module-heading.offense-module-heading-stacked {
  position: relative;
}

.game-page .offense-lineup-edge-toggle,
.game-page .offense-lineup-popout-toggle {
  position: absolute;
  z-index: 6;
  display: inline-grid;
  place-items: center;
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: rgba(214, 222, 218, 0.68);
  box-shadow: none;
  cursor: pointer;
  transition:
    color 140ms ease,
    background 140ms ease;
}

.game-page .offense-lineup-edge-toggle {
  top: 5px;
}

.game-page .offense-lineup-popout-toggle {
  top: 7px;
}

.game-page .offense-lineup-edge-toggle-away {
  right: 5px;
  left: auto;
}

.game-page .offense-lineup-edge-toggle-home {
  left: 5px;
  right: auto;
}

.game-page .offense-lineup-popout-toggle-away {
  right: 7px;
  left: auto;
}

.game-page .offense-lineup-popout-toggle-home {
  left: 7px;
  right: auto;
}

.game-page .offense-lineup-edge-toggle:hover,
.game-page .offense-lineup-edge-toggle:focus-visible,
.game-page .offense-lineup-popout-toggle:hover,
.game-page .offense-lineup-popout-toggle:focus-visible {
  color: rgba(255, 255, 255, 0.98);
  background: rgba(255, 255, 255, 0.045);
  outline: none;
}

.game-page .offense-lineup-edge-toggle svg,
.game-page .offense-lineup-popout-toggle svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

.game-page .offense-lineup-popout {
  position: relative;
}

.game-page
.offense-module-content:not(.offense-module-home-mirrored)
.offense-heading-copy {
  padding-right: 42px;
}

.game-page
.offense-module-home-mirrored
.offense-heading-copy {
  padding-left: 42px;
}

/* END BORING BETS: OFFENSE LINEUP ARROW HANDOFF V1 */

/* BORING BETS: LINEUP HEADER OPPOSITE ARROW V1 */

/*
  Open lineup header:
  all text stays on the opposite side from the arrow.
  Away arrow = right, so text stays left.
  Home arrow = left, so text stays right.
*/

.game-page
.offense-lineup-shell-away
.offense-lineup-popout
.module-heading {
  box-sizing: border-box;
  width: 100%;
  min-height: 38px;
  padding-right: 50px !important;
  padding-left: 0 !important;
  text-align: left !important;
  align-items: flex-start !important;
}

.game-page
.offense-lineup-shell-home
.offense-lineup-popout
.module-heading {
  box-sizing: border-box;
  width: 100%;
  min-height: 38px;
  padding-left: 50px !important;
  padding-right: 0 !important;
  text-align: right !important;
  align-items: flex-end !important;
}

.game-page
.offense-lineup-shell-away
.offense-lineup-popout
.module-heading > * {
  width: 100%;
  min-width: 0;
  text-align: left !important;
  align-self: flex-start !important;
}

.game-page
.offense-lineup-shell-home
.offense-lineup-popout
.module-heading > * {
  width: 100%;
  min-width: 0;
  text-align: right !important;
  align-self: flex-end !important;
}

.game-page
.offense-lineup-shell-away
.offense-lineup-popout
.lineup-offense-window {
  display: block;
  width: 100%;
  text-align: left !important;
}

.game-page
.offense-lineup-shell-home
.offense-lineup-popout
.lineup-offense-window {
  display: block;
  width: 100%;
  text-align: right !important;
}

/*
  Keep long status/header copy from entering
  the arrow's reserved corner.
*/
.game-page
.offense-lineup-popout
.module-heading h3,
.game-page
.offense-lineup-popout
.module-heading p,
.game-page
.offense-lineup-popout
.module-heading span,
.game-page
.offense-lineup-popout
.lineup-offense-window {
  max-width: 100%;
  overflow-wrap: anywhere;
}

/* END BORING BETS: LINEUP HEADER OPPOSITE ARROW V1 */

/* BORING BETS: NEAT LINEUP HEADER V1 */

/*
  Replace the earlier scattered lineup-heading layout
  with one deliberate block.
*/
.game-page .offense-lineup-heading {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 32px !important;
  gap: 10px !important;
  align-items: start !important;
  width: 100% !important;
  min-height: 76px !important;
  padding: 10px 10px 8px !important;
  box-sizing: border-box !important;
}

/* Away: copy left, arrow right. */
.game-page .offense-lineup-heading-away {
  grid-template-areas: "copy arrow" !important;
}

/* Home: arrow left, copy right. */
.game-page .offense-lineup-heading-home {
  grid-template-columns: 32px minmax(0, 1fr) !important;
  grid-template-areas: "arrow copy" !important;
}

.game-page .offense-lineup-heading-copy {
  grid-area: copy;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.game-page
.offense-lineup-heading-away
.offense-lineup-heading-copy {
  text-align: left !important;
}

.game-page
.offense-lineup-heading-home
.offense-lineup-heading-copy {
  text-align: right !important;
}

.game-page .offense-lineup-meta-row {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 0 5px !important;
  white-space: nowrap !important;
}

.game-page
.offense-lineup-heading-away
.offense-lineup-meta-row {
  justify-content: flex-start !important;
}

.game-page
.offense-lineup-heading-home
.offense-lineup-meta-row {
  justify-content: flex-end !important;
  flex-direction: row-reverse !important;
}

.game-page .offense-lineup-meta-row .data-label,
.game-page .offense-lineup-updated {
  display: inline-block !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.game-page .offense-lineup-updated {
  font-size: 0.61rem !important;
}

.game-page .offense-lineup-team-title {
  display: block !important;
  width: 100% !important;
  margin: 0 0 4px !important;
  padding: 0 !important;
  line-height: 1.05 !important;
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.game-page .offense-lineup-heading .lineup-offense-window {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.game-page
.offense-lineup-heading-away
.lineup-offense-window,
.game-page
.offense-lineup-heading-away
.offense-lineup-team-title {
  text-align: left !important;
}

.game-page
.offense-lineup-heading-home
.lineup-offense-window,
.game-page
.offense-lineup-heading-home
.offense-lineup-team-title {
  text-align: right !important;
}

/*
  Arrow occupies its own grid cell instead of floating
  over any header text.
*/
.game-page
.offense-lineup-heading
.offense-lineup-popout-toggle {
  grid-area: arrow !important;
  position: static !important;
  justify-self: center !important;
  align-self: start !important;
  margin: 0 !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
}

/*
  Neutralize the previous "opposite arrow" header patch
  so it cannot split or stretch this new structure.
*/
.game-page
.offense-lineup-shell-away
.offense-lineup-popout
.offense-lineup-heading,
.game-page
.offense-lineup-shell-home
.offense-lineup-popout
.offense-lineup-heading {
  text-align: initial !important;
}

.game-page
.offense-lineup-shell-away
.offense-lineup-popout
.offense-lineup-heading > *,
.game-page
.offense-lineup-shell-home
.offense-lineup-popout
.offense-lineup-heading > * {
  width: auto;
  min-width: 0;
  align-self: auto;
}

/* END BORING BETS: NEAT LINEUP HEADER V1 */

/* BORING BETS: LINEUP CORNER ARROWS + CLEAN HEADER V1 */

/*
  Arrow buttons do not participate in header layout.
  They are pinned to the true outer corner of whichever
  surface currently owns them.
*/
.game-page .offense-module-content,
.game-page .offense-lineup-popout {
  position: relative !important;
}

/* Collapsed offense-card arrows. */
.game-page .offense-lineup-edge-toggle {
  position: absolute !important;
  top: 7px !important;
  z-index: 12 !important;
  margin: 0 !important;
}

.game-page .offense-lineup-edge-toggle-away {
  right: 8px !important;
  left: auto !important;
}

.game-page .offense-lineup-edge-toggle-home {
  left: 8px !important;
  right: auto !important;
}

/* Open-lineup arrows. */
.game-page
.offense-lineup-heading
.offense-lineup-popout-toggle,
.game-page .offense-lineup-popout-toggle {
  position: absolute !important;
  top: 8px !important;
  z-index: 12 !important;
  margin: 0 !important;
  grid-area: unset !important;
  justify-self: unset !important;
  align-self: unset !important;
}

.game-page .offense-lineup-popout-toggle-away {
  right: 8px !important;
  left: auto !important;
}

.game-page .offense-lineup-popout-toggle-home {
  left: 8px !important;
  right: auto !important;
}

/*
  Header becomes one clean text block.
  Away copy stays left with reserved space at right.
  Home copy stays right with reserved space at left.
*/
.game-page .offense-lineup-heading {
  display: block !important;
  width: 100% !important;
  min-height: 82px !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding-top: 10px !important;
  padding-bottom: 9px !important;
}

.game-page .offense-lineup-heading-away {
  padding-left: 12px !important;
  padding-right: 50px !important;
  text-align: left !important;
}

.game-page .offense-lineup-heading-home {
  padding-left: 50px !important;
  padding-right: 12px !important;
  text-align: right !important;
}

.game-page .offense-lineup-heading-copy {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/*
  First line:
  PROJECTED/CONFIRMED LINEUP · Updated time
*/
.game-page .offense-lineup-meta-row {
  display: flex !important;
  width: 100% !important;
  min-width: 0 !important;
  align-items: baseline !important;
  gap: 8px !important;
  margin: 0 0 7px !important;
  padding: 0 !important;
  white-space: nowrap !important;
}

.game-page
.offense-lineup-heading-away
.offense-lineup-meta-row {
  justify-content: flex-start !important;
  flex-direction: row !important;
  text-align: left !important;
}

.game-page
.offense-lineup-heading-home
.offense-lineup-meta-row {
  justify-content: flex-end !important;
  flex-direction: row !important;
  text-align: right !important;
}

.game-page .offense-lineup-meta-row .data-label,
.game-page .offense-lineup-updated {
  display: inline-block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.game-page .offense-lineup-meta-row .data-label {
  font-size: 0.61rem !important;
  letter-spacing: 0.035em !important;
}

.game-page .offense-lineup-updated {
  font-size: 0.60rem !important;
}

/* Second line: NYM LINEUP / PIT LINEUP */
.game-page .offense-lineup-team-title {
  display: block !important;
  width: 100% !important;
  margin: 0 0 5px !important;
  padding: 0 !important;
  font-size: 1rem !important;
  line-height: 1.05 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

/* Third line: 14 Days OFFENSE */
.game-page
.offense-lineup-heading
.lineup-offense-window {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0.58rem !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.game-page
.offense-lineup-heading-away
.offense-lineup-team-title,
.game-page
.offense-lineup-heading-away
.lineup-offense-window {
  text-align: left !important;
}

.game-page
.offense-lineup-heading-home
.offense-lineup-team-title,
.game-page
.offense-lineup-heading-home
.lineup-offense-window {
  text-align: right !important;
}

/*
  Neutralize earlier lineup-header rules that forced
  children into grid cells or stretched them.
*/
.game-page
.offense-lineup-shell-away
.offense-lineup-popout
.offense-lineup-heading > *,
.game-page
.offense-lineup-shell-home
.offense-lineup-popout
.offense-lineup-heading > * {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  align-self: auto !important;
}

/* END BORING BETS: LINEUP CORNER ARROWS + CLEAN HEADER V1 */

/* BORING BETS: LINEUP TITLE FIRST V1 */

/* Open-lineup text hierarchy:
   1. TEAM LINEUP
   2. timeframe OFFENSE
   3. PROJECTED/CONFIRMED + Updated time
*/
.game-page .offense-lineup-heading-copy {
  display: block !important;
}

.game-page .offense-lineup-team-title {
  margin: 0 0 4px !important;
}

.game-page
.offense-lineup-heading
.lineup-offense-window {
  margin: 0 0 8px !important;
}

.game-page
.offense-lineup-meta-row.offense-lineup-meta-row-below {
  margin: 0 !important;
  padding: 0 !important;
}

/* Away text is left aligned, safely away from top-right arrow. */
.game-page .offense-lineup-heading-away {
  padding: 12px 52px 10px 12px !important;
}

.game-page
.offense-lineup-heading-away
.offense-lineup-heading-copy,
.game-page
.offense-lineup-heading-away
.offense-lineup-team-title,
.game-page
.offense-lineup-heading-away
.lineup-offense-window,
.game-page
.offense-lineup-heading-away
.offense-lineup-meta-row {
  text-align: left !important;
}

/* Home text is right aligned, safely away from top-left arrow. */
.game-page .offense-lineup-heading-home {
  padding: 12px 12px 10px 52px !important;
}

.game-page
.offense-lineup-heading-home
.offense-lineup-heading-copy,
.game-page
.offense-lineup-heading-home
.offense-lineup-team-title,
.game-page
.offense-lineup-heading-home
.lineup-offense-window,
.game-page
.offense-lineup-heading-home
.offense-lineup-meta-row {
  text-align: right !important;
}

/* Status and updated time stay together below the two title lines. */
.game-page
.offense-lineup-heading-away
.offense-lineup-meta-row {
  justify-content: flex-start !important;
  flex-direction: row !important;
}

.game-page
.offense-lineup-heading-home
.offense-lineup-meta-row {
  justify-content: flex-end !important;
  flex-direction: row !important;
}

/* Open arrows remain pinned to the actual outer top corners. */
.game-page
.offense-lineup-popout
.offense-lineup-popout-toggle-away {
  position: absolute !important;
  top: 8px !important;
  right: 8px !important;
  left: auto !important;
  z-index: 20 !important;
}

.game-page
.offense-lineup-popout
.offense-lineup-popout-toggle-home {
  position: absolute !important;
  top: 8px !important;
  left: 8px !important;
  right: auto !important;
  z-index: 20 !important;
}

/* END BORING BETS: LINEUP TITLE FIRST V1 */

/* BORING BETS: INTUITIVE LINEUP CHEVRONS V1 */

.game-page .offense-lineup-edge-toggle svg,
.game-page .offense-lineup-popout-toggle svg {
  width: 22px !important;
  height: 22px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2.25 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* END BORING BETS: INTUITIVE LINEUP CHEVRONS V1 */

/* BORING BETS: EVEN LINEUP CHEVRONS V1 */

/*
  Make every lineup chevron use identical geometry.
  Direction still changes with side/state; only the
  physical alignment is normalized.
*/
.game-page .offense-lineup-edge-toggle,
.game-page .offense-lineup-popout-toggle {
  width: 32px !important;
  min-width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid !important;
  place-items: center !important;
  line-height: 1 !important;
  transform: none !important;
}

/* Same vertical position everywhere. */
.game-page .offense-lineup-edge-toggle,
.game-page
.offense-lineup-popout
.offense-lineup-popout-toggle {
  top: 8px !important;
}

/* Same horizontal inset from each outside corner. */
.game-page .offense-lineup-edge-toggle-away,
.game-page
.offense-lineup-popout
.offense-lineup-popout-toggle-away {
  right: 8px !important;
  left: auto !important;
}

.game-page .offense-lineup-edge-toggle-home,
.game-page
.offense-lineup-popout
.offense-lineup-popout-toggle-home {
  left: 8px !important;
  right: auto !important;
}

/* Center both chevron drawings in exactly the same box. */
.game-page .offense-lineup-edge-toggle svg,
.game-page .offense-lineup-popout-toggle svg {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  transform: none !important;
  transform-origin: 50% 50% !important;
  overflow: visible !important;
}

/* Disable older hover nudges that made the pair look uneven. */
.game-page .offense-lineup-edge-toggle:hover svg,
.game-page .offense-lineup-popout-toggle:hover svg {
  transform: none !important;
}

/* END BORING BETS: EVEN LINEUP CHEVRONS V1 */

/* BORING BETS: MATCHED OFFENSE TIMEFRAME ORDER V1 */

/*
  Home offense remains mirrored as a module,
  but its timeframe buttons keep the same
  left-to-right order as the away offense.
*/
.game-page
.offense-module-home-mirrored
.offense-timeframe-control {
  direction: ltr !important;
}

.game-page
.offense-module-home-mirrored
.offense-timeframe-control > * {
  direction: ltr !important;
}

/*
  Explicitly normalize the away side too so both
  modules always render the timeframe sequence
  from left to right in markup order.
*/
.game-page
.offense-module-content:not(.offense-module-home-mirrored)
.offense-timeframe-control {
  direction: ltr !important;
}

/* END BORING BETS: MATCHED OFFENSE TIMEFRAME ORDER V1 */

/* BORING BETS: COLLAPSED LINEUP LABEL V1 */

.game-page .offense-lineup-edge-toggle {
  width: auto !important;
  min-width: 68px !important;
  height: 32px !important;
  padding: 0 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  white-space: nowrap !important;
}

.game-page .offense-lineup-edge-label {
  display: inline-block !important;
  font-size: 0.58rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.04em !important;
  pointer-events: none !important;
}

.game-page .offense-lineup-edge-toggle svg {
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 auto !important;
}

/* Open lineup keeps its corner button icon-only. */
.game-page .offense-lineup-popout-toggle {
  width: 32px !important;
  min-width: 32px !important;
  padding: 0 !important;
}

/* END BORING BETS: COLLAPSED LINEUP LABEL V1 */

/* BORING BETS: INNER LINEUP CONTROLS V1 */

/*
  Closed lineup controls sit on the inside edges,
  facing each other across the two offense modules.
*/
.game-page .offense-lineup-edge-toggle-away {
  left: 8px !important;
  right: auto !important;
}

.game-page .offense-lineup-edge-toggle-home {
  right: 8px !important;
  left: auto !important;
}

/*
  Keep the label compact and remove any visual
  spacing that depended on the old colon version.
*/
.game-page .offense-lineup-edge-label {
  white-space: nowrap !important;
}

/* END BORING BETS: INNER LINEUP CONTROLS V1 */

/* BORING BETS: RESTORE COLLAPSED LINEUP CHEVRONS V1 */

.game-page .offense-lineup-edge-toggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
}

.game-page .offense-lineup-edge-toggle svg {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  flex: 0 0 18px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2.25 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* END BORING BETS: RESTORE COLLAPSED LINEUP CHEVRONS V1 */

/* BORING BETS: CSS COLLAPSED LINEUP CHEVRONS V2 */

/*
  The collapsed LINEUP control no longer depends on
  the inline SVG for its visible chevron. Earlier
  stacked SVG/grid/flex rules were fighting each other.
*/
.game-page .offense-lineup-edge-toggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  width: auto !important;
  min-width: 68px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 7px !important;
  color: rgba(214, 222, 218, 0.82) !important;
  overflow: visible !important;
}

/* Keep the old SVG out of the way; CSS draws the visible chevron. */
.game-page .offense-lineup-edge-toggle > svg {
  display: none !important;
}

/* Away collapsed control remains on the LEFT side. */
.game-page .offense-lineup-edge-toggle-away {
  left: 8px !important;
  right: auto !important;
}

/* Home collapsed control remains on the RIGHT side. */
.game-page .offense-lineup-edge-toggle-home {
  right: 8px !important;
  left: auto !important;
}

/*
  Away opens toward the right:
  LINEUP ›
*/
.game-page .offense-lineup-edge-toggle-away::after {
  content: "" !important;
  display: block !important;
  width: 7px !important;
  height: 7px !important;
  flex: 0 0 7px !important;
  border-top: 2px solid currentColor !important;
  border-right: 2px solid currentColor !important;
  transform: rotate(45deg) !important;
  transform-origin: center !important;
  margin-left: 1px !important;
}

/*
  Home opens toward the left:
  ‹ LINEUP
*/
.game-page .offense-lineup-edge-toggle-home::before {
  content: "" !important;
  display: block !important;
  width: 7px !important;
  height: 7px !important;
  flex: 0 0 7px !important;
  border-top: 2px solid currentColor !important;
  border-right: 2px solid currentColor !important;
  transform: rotate(225deg) !important;
  transform-origin: center !important;
  margin-right: 1px !important;
}

.game-page .offense-lineup-edge-toggle:hover,
.game-page .offense-lineup-edge-toggle:focus-visible {
  color: rgba(255, 255, 255, 0.98) !important;
}

/* Open-lineup corner arrows are untouched. */

/* END BORING BETS: CSS COLLAPSED LINEUP CHEVRONS V2 */

/* BORING BETS: LITERAL COLLAPSED LINEUP CHEVRONS V3 */

/*
  Closed lineup controls use literal text chevrons.
  No SVG and no pseudo-element is involved.
*/
.game-page .offense-lineup-edge-toggle {
  position: absolute !important;
  top: 8px !important;
  z-index: 30 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 72px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 7px !important;
  gap: 5px !important;
  overflow: visible !important;
  white-space: nowrap !important;
  color: rgba(225, 232, 229, 0.88) !important;
}

/* Away offense: true TOP-RIGHT corner. */
.game-page .offense-lineup-edge-toggle-away {
  right: 8px !important;
  left: auto !important;
}

/* Home offense: true TOP-LEFT corner. */
.game-page .offense-lineup-edge-toggle-home {
  left: 8px !important;
  right: auto !important;
}

.game-page .offense-lineup-edge-label {
  display: inline-block !important;
  flex: 0 0 auto !important;
  font-size: 0.58rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.04em !important;
  color: inherit !important;
}

.game-page .offense-lineup-edge-chevron {
  display: inline-block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 1.35rem !important;
  font-weight: 400 !important;
  line-height: 0.8 !important;
  color: currentColor !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/*
  Kill remnants from the two failed collapsed-arrow
  implementations. The visible arrow is the literal
  .offense-lineup-edge-chevron span above.
*/
.game-page .offense-lineup-edge-toggle > svg {
  display: none !important;
}

.game-page .offense-lineup-edge-toggle::before,
.game-page .offense-lineup-edge-toggle::after {
  content: none !important;
  display: none !important;
}

/* Open-lineup panel arrows are not affected. */

/* END BORING BETS: LITERAL COLLAPSED LINEUP CHEVRONS V3 */

/* BORING BETS: OPEN LINEUP PITCH MIX HALF SHIFT V1 */

/*
  Closed lineup:
  pitch-mix button remains dead-center.

  Open lineup:
  move the fixed-size pitch-mix button partway
  toward the lineup panel so the reduced offense
  card does not crowd it against the timeframe group.
*/

/* Away lineup opens on the right, so meet it halfway right. */
.game-page
.offense-module-content.offense-lineup-is-open:not(.offense-module-home-mirrored)
.offense-pitch-mix-toggle-centered {
  transform: translateX(8px) !important;
}

/* Home lineup opens on the left, so meet it halfway left. */
.game-page
.offense-module-content.offense-lineup-is-open.offense-module-home-mirrored
.offense-pitch-mix-toggle-centered {
  transform: translateX(-8px) !important;
}

/*
  Keep the button's own geometry intact.
  Only its position changes while the lineup is open.
*/
.game-page
.offense-module-content.offense-lineup-is-open
.offense-pitch-mix-toggle-centered {
  width: 31px !important;
  min-width: 31px !important;
  max-width: 31px !important;
  height: 30px !important;
  min-height: 30px !important;
  max-height: 30px !important;
  flex: 0 0 31px !important;
}

/* The icon itself never scales or distorts. */
.game-page
.offense-module-content.offense-lineup-is-open
.offense-pitch-mix-toggle-centered > svg {
  width: 17px !important;
  min-width: 17px !important;
  max-width: 17px !important;
  height: 17px !important;
  min-height: 17px !important;
  max-height: 17px !important;
  transform: none !important;
}

/* END BORING BETS: OPEN LINEUP PITCH MIX HALF SHIFT V1 */

/* BORING BETS: OPEN LINEUP PITCH MIX HALF SHIFT V1.1: reduced open shift to 8px. */

/* BORING BETS: OPEN LINEUP CONTROL ROW FIT V2 */

/*
  When a lineup is closed, keep the normal centered
  1fr / 31px / 1fr layout.

  When a lineup is open, size the timeframe side to
  its REAL content width instead of forcing it into
  half of the narrowed offense card. The pitch-mix
  button then gets its own fixed 31px column with a
  clean gap beside the timeframe controls.
*/

/* Away: timeframe controls | gap | pitch mix | free space */
.game-page
.offense-module-content.offense-lineup-is-open:not(.offense-module-home-mirrored)
.offense-control-bar.offense-control-bar-single-row.offense-control-bar-centered-pitch {
  grid-template-columns:
    max-content
    31px
    minmax(0, 1fr) !important;
  column-gap: 10px !important;
}

/* Home: free space | pitch mix | gap | timeframe controls */
.game-page
.offense-module-content.offense-lineup-is-open.offense-module-home-mirrored
.offense-control-bar.offense-control-bar-single-row.offense-control-bar-centered-pitch {
  grid-template-columns:
    minmax(0, 1fr)
    31px
    max-content !important;
  column-gap: 10px !important;
}

/*
  The earlier experimental translations are no longer
  used. Grid placement now handles the open state.
*/
.game-page
.offense-module-content.offense-lineup-is-open
.offense-pitch-mix-toggle-centered {
  transform: none !important;
  width: 31px !important;
  min-width: 31px !important;
  max-width: 31px !important;
  height: 30px !important;
  min-height: 30px !important;
  max-height: 30px !important;
  justify-self: center !important;
}

/*
  Never compress or wrap the timeframe switch simply
  because its lineup is open.
*/
.game-page
.offense-module-content.offense-lineup-is-open
.offense-timeframe-control {
  width: max-content !important;
  min-width: max-content !important;
  max-width: none !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}

/* Keep the pitch icon itself unchanged. */
.game-page
.offense-module-content.offense-lineup-is-open
.offense-pitch-mix-toggle-centered > svg {
  width: 17px !important;
  min-width: 17px !important;
  max-width: 17px !important;
  height: 17px !important;
  min-height: 17px !important;
  max-height: 17px !important;
  transform: none !important;
}

/* END BORING BETS: OPEN LINEUP CONTROL ROW FIT V2 */

/* BORING BETS: OPEN LINEUP RAISE VIEW V1.1 */

/*
  When a lineup is open, show ↑ immediately beside
  the existing horizontal lineup-close chevron.
*/
.game-page .offense-lineup-raise-toggle {
  position: absolute !important;
  top: 8px !important;
  z-index: 22 !important;
  width: 32px !important;
  min-width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: rgba(214, 222, 218, 0.74) !important;
  box-shadow: none !important;
  cursor: pointer !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 1.28rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

.game-page .offense-lineup-raise-toggle:hover,
.game-page .offense-lineup-raise-toggle:focus-visible {
  color: rgba(255, 255, 255, 0.98) !important;
  background: rgba(255, 255, 255, 0.045) !important;
  outline: none !important;
}

/*
  Away open lineup:
  horizontal close arrow is at top-right;
  ↑ sits just inward from it.
*/
.game-page .offense-lineup-raise-toggle-away {
  right: 44px !important;
  left: auto !important;
}

/*
  Home open lineup:
  horizontal close arrow is at top-left;
  ↑ sits just inward from it.
*/
.game-page .offense-lineup-raise-toggle-home {
  left: 44px !important;
  right: auto !important;
}

/* Keep header text away from both top-corner controls. */
.game-page .offense-lineup-heading-away {
  padding-right: 86px !important;
}

.game-page .offense-lineup-heading-home {
  padding-left: 86px !important;
}

/* END BORING BETS: OPEN LINEUP RAISE VIEW V1.1 */

/* BORING BETS: OPEN LINEUP PUSH-UP V2 */

/*
  Each matchup column is a vertical flex stack:
  pitcher first, offense second.

  In raised mode we apply a negative top margin equal
  to half the actual pitcher-card height. Because this
  changes normal flex layout, the pitcher moves upward
  AND the offense/lineup below it follows upward too.
  Nothing is clipped or removed.
*/
.game-page #pitching,
.game-page #pitching .matchup-column {
  overflow: visible !important;
}

.game-page
#pitching
.matchup-column.offense-lineup-column-raised
> .pitcher-comparison-card {
  margin-top:
    calc(
      -1 * var(
        --offense-lineup-raise-distance,
        0px
      )
    ) !important;
}

/*
  ↑ / ↓ sits immediately beside the existing
  horizontal lineup close arrow.
*/
.game-page .offense-lineup-raise-toggle {
  position: absolute !important;
  top: 8px !important;
  z-index: 24 !important;
  width: 32px !important;
  min-width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: rgba(214, 222, 218, 0.74) !important;
  box-shadow: none !important;
  cursor: pointer !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 1.28rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

.game-page .offense-lineup-raise-toggle:hover,
.game-page .offense-lineup-raise-toggle:focus-visible,
.game-page .offense-lineup-raise-toggle.active {
  color: rgba(255, 255, 255, 0.98) !important;
  background: rgba(255, 255, 255, 0.045) !important;
  outline: none !important;
}

/* Away open lineup: close arrow top-right; raise arrow just inward. */
.game-page .offense-lineup-raise-toggle-away {
  right: 44px !important;
  left: auto !important;
}

/* Home open lineup: close arrow top-left; raise arrow just inward. */
.game-page .offense-lineup-raise-toggle-home {
  left: 44px !important;
  right: auto !important;
}

/* Leave room for both buttons in the lineup heading. */
.game-page .offense-lineup-heading-away {
  padding-right: 86px !important;
}

.game-page .offense-lineup-heading-home {
  padding-left: 86px !important;
}

/* END BORING BETS: OPEN LINEUP PUSH-UP V2 */

/* BORING BETS: OFFENSE SHELL PUSHES THROUGH PITCHER V2.1 */

/*
  CORRECT raised behavior:

  - Pitcher module NEVER moves.
  - The offense shell (offense card + lineup popout)
    moves upward by half of that side's pitcher height.
  - The shell therefore overlaps/pushes through the
    lower half of the pitcher module.
  - Existing V2 JavaScript still measures half the
    pitcher height and stores it on the matchup column.
*/

/* Undo the incorrect V2 rule that moved the pitcher. */
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
> .pitcher-comparison-card {
  margin-top: 0 !important;
  transform: none !important;
}

/*
  Pull the entire offense workspace upward.
  The custom property lives on the parent column,
  so the offense shell inherits the measured distance.
*/
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
> .offense-lineup-shell,
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
#awayOffenseShell,
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
#homeOffenseShell {
  position: relative !important;
  z-index: 25 !important;
  margin-top:
    calc(
      -1 * var(
        --offense-lineup-raise-distance,
        0px
      )
    ) !important;
  transform: none !important;
}

/*
  Pitcher remains physically in its original position
  underneath the raised offense shell.
*/
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
> .pitcher-comparison-card {
  position: relative !important;
  z-index: 10 !important;
}

/*
  Allow the raised offense shell to visibly cross the
  pitcher area instead of being clipped by ancestors.
*/
.game-page #pitching,
.game-page #pitching .matchup-column,
.game-page #pitching .offense-lineup-shell {
  overflow: visible !important;
}

/* END BORING BETS: OFFENSE SHELL PUSHES THROUGH PITCHER V2.1 */

/* BORING BETS: LINEUP ONLY PUSH THROUGH PITCHER V2.2 */

/*
  FINAL raised behavior:

  - Pitcher module stays exactly where it is.
  - Offense module stays exactly where it is.
  - ONLY the open lineup popout moves upward.
  - Existing V2 JavaScript still measures half of that
    side's pitcher height and stores the distance on the
    parent matchup column.
*/

/* Cancel the earlier pitcher movement. */
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
> .pitcher-comparison-card {
  margin-top: 0 !important;
  top: auto !important;
  transform: none !important;
}

/* Cancel the earlier whole-offense-shell movement. */
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
> .offense-lineup-shell,
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
#awayOffenseShell,
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
#homeOffenseShell {
  margin-top: 0 !important;
  top: auto !important;
  transform: none !important;
}

/*
  Move ONLY the lineup panel upward.
  Use relative top instead of transform so the lineup's
  existing horizontal/opening geometry is not disturbed.
*/
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
.offense-lineup-popout {
  position: relative !important;
  top:
    calc(
      -1 * var(
        --offense-lineup-raise-distance,
        0px
      )
    ) !important;
  z-index: 40 !important;
}

/*
  The offense card remains at its original vertical
  position beneath the pitcher.
*/
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
.offense-module-content {
  top: auto !important;
  margin-top: 0 !important;
  transform: none !important;
}

/* Let the raised lineup visibly pass through pitcher space. */
.game-page #pitching,
.game-page #pitching .matchup-column,
.game-page #pitching .offense-lineup-shell {
  overflow: visible !important;
}

/*
  Pitcher stays behind the raised lineup where they overlap.
  Its own position never changes.
*/
.game-page
#pitching
.matchup-column.offense-lineup-column-raised
> .pitcher-comparison-card {
  position: relative !important;
  z-index: 10 !important;
}

/* END BORING BETS: LINEUP ONLY PUSH THROUGH PITCHER V2.2 */

/* BORING BETS: SAFE LINEUP CHEVRON APPEARANCE V2 */

/*
  IMPORTANT:
  Do NOT style the raise button box itself.
  The working button position, size and click target
  remain exactly as they were before this patch.

  We only redraw its existing inner span.
*/
.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view]
> span[aria-hidden="true"] {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 18px;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  vertical-align: middle;
  pointer-events: none !important;
}

/* Two simple strokes: no stem. */
.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view]
> span[aria-hidden="true"]::before,
.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view]
> span[aria-hidden="true"]::after {
  content: "";
  position: absolute;
  top: 8px;
  width: 9px;
  height: 2px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(214, 222, 218, 0.88);
  pointer-events: none;
  transform-origin: 50% 50%;
  transition:
    transform 140ms ease,
    background-color 140ms ease;
}

/* Normal state: bare UP chevron. */
.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view]
> span[aria-hidden="true"]::before {
  left: 1px;
  transform: rotate(-45deg);
}

.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view]
> span[aria-hidden="true"]::after {
  right: 1px;
  transform: rotate(45deg);
}

/* Raised state: same bare chevron flips DOWN. */
.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view].active
> span[aria-hidden="true"]::before {
  transform: rotate(45deg);
}

.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view].active
> span[aria-hidden="true"]::after {
  transform: rotate(-45deg);
}

/* Brighten only the drawn strokes on hover/focus. */
.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view]:hover
> span[aria-hidden="true"]::before,
.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view]:hover
> span[aria-hidden="true"]::after,
.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view]:focus-visible
> span[aria-hidden="true"]::before,
.game-page
.offense-lineup-popout
button[data-offense-lineup-raise-view]:focus-visible
> span[aria-hidden="true"]::after {
  background: rgba(255, 255, 255, 0.98);
}

/* END BORING BETS: SAFE LINEUP CHEVRON APPEARANCE V2 */

/* BORING BETS: STARTER-SPECIFIC OFFENSE PITCH MIX V1 */

/*
 * Exact pitch identity colors used by the Live-page
 * distinct sitewide pitch palette.
 */
.game-page
.offense-pitch-rank-row-starter {
  --offense-pitch-color: #b1bcb5;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="FF"],
.game-page
.offense-pitch-rank-row-starter[data-pitch-code="FA"] {
  --offense-pitch-color: #59f2ff;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="FT"] {
  --offense-pitch-color: #2dd4bf;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="SI"] {
  --offense-pitch-color: #4f83ff;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="FC"] {
  --offense-pitch-color: #ff6bd6;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="SL"] {
  --offense-pitch-color: #a855f7;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="ST"] {
  --offense-pitch-color: #ff4fd8;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="SV"] {
  --offense-pitch-color: #d946ef;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="CU"] {
  --offense-pitch-color: #ffb84d;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="KC"] {
  --offense-pitch-color: #ffe066;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="CS"] {
  --offense-pitch-color: #ff8a5b;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="CH"] {
  --offense-pitch-color: #67ef9a;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="FS"],
.game-page
.offense-pitch-rank-row-starter[data-pitch-code="SP"] {
  --offense-pitch-color: #a7ffe4;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="FO"] {
  --offense-pitch-color: #eaf2ff;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="SC"] {
  --offense-pitch-color: #ff7a90;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="KN"] {
  --offense-pitch-color: #f7f7f7;
}

.game-page
.offense-pitch-rank-row-starter[data-pitch-code="EP"] {
  --offense-pitch-color: #c7a7ff;
}

.game-page
.offense-pitch-mix-heading-starter {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}

.game-page
.offense-pitch-mix-heading-starter > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.game-page
.offense-pitch-mix-heading-starter small {
  color: rgba(190, 201, 196, .58);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .1em;
}

.game-page
.offense-pitch-mix-heading-starter strong {
  max-width: 100%;
  color: rgba(246, 250, 248, .97);
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .025em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.game-page
.offense-pitch-rank-column-headings {
  display: grid;
  grid-template-columns:
    minmax(92px, 1.08fr)
    minmax(116px, 1.45fr)
    58px;
  align-items: end;
  gap: 10px;
  padding: 3px 8px 5px;
  color: rgba(178, 190, 184, .45);
  font-size: .5rem;
  font-weight: 850;
  letter-spacing: .075em;
}

.game-page
.offense-pitch-rank-column-headings span:last-child {
  text-align: right;
}

.game-page
.offense-pitch-rank-list-starter {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.game-page
.offense-pitch-rank-row-starter {
  display: grid;
  grid-template-columns:
    minmax(92px, 1.08fr)
    minmax(116px, 1.45fr)
    58px;
  align-items: center;
  gap: 10px;
  min-height: 39px;
  padding: 5px 8px;
  border: 1px solid rgba(255, 255, 255, .045);
  border-radius: 8px;
  background: rgba(255, 255, 255, .012);
}

.game-page
.offense-pitch-identity {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 7px;
}

.game-page
.offense-pitch-identity > i {
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--offense-pitch-color);
  box-shadow: 0 0 6px var(--offense-pitch-color);
}

.game-page
.offense-pitch-identity > strong {
  min-width: 0;
  color: var(--offense-pitch-color);
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .018em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.game-page
.offense-pitch-usage {
  display: grid;
  grid-template-columns: 48px minmax(50px, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.game-page
.offense-pitch-usage-copy {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 3px;
}

.game-page
.offense-pitch-usage-copy strong {
  color: var(--offense-pitch-color);
  font-family:
    var(--bb-font-data, monospace);
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: -.02em;
}

.game-page
.offense-pitch-usage-copy span {
  color: rgba(183, 194, 189, .42);
  font-size: .43rem;
  font-weight: 850;
  letter-spacing: .06em;
}

.game-page
.offense-pitch-usage-track {
  position: relative;
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, .065);
}

.game-page
.offense-pitch-usage-track > i {
  position: absolute;
  inset: 0 auto 0 0;
  max-width: 100%;
  border-radius: inherit;
  background: var(--offense-pitch-color);
  box-shadow: 0 0 7px var(--offense-pitch-color);
}

.game-page
.offense-pitch-rank-result {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 4px;
  min-width: 0;
}

.game-page
.offense-pitch-rank-result > span {
  color: rgba(183, 194, 189, .38);
  font-size: .43rem;
  font-weight: 850;
  letter-spacing: .055em;
}

.game-page
.offense-pitch-rank-result > strong {
  min-width: 25px;
  text-align: right;
  font-size: .72rem;
  font-weight: 950;
}

@media (max-width: 760px) {
  .game-page
  .offense-pitch-rank-column-headings,
  .game-page
  .offense-pitch-rank-row-starter {
    grid-template-columns:
      minmax(74px, 1fr)
      minmax(92px, 1.35fr)
      50px;
    gap: 7px;
  }

  .game-page
  .offense-pitch-usage {
    grid-template-columns:
      43px minmax(36px, 1fr);
    gap: 5px;
  }

  .game-page
  .offense-pitch-rank-column-headings {
    font-size: .44rem;
  }

  .game-page
  .offense-pitch-identity > strong,
  .game-page
  .offense-pitch-usage-copy strong,
  .game-page
  .offense-pitch-rank-result > strong {
    font-size: .61rem;
  }
}

/* END BORING BETS: STARTER-SPECIFIC OFFENSE PITCH MIX V1 */

/* BORING BETS: COMPREHENSIVE STICKY PITCH SCOUT V2 */

.game-page
.offense-pitch-mix-starter-specific {
  padding: 7px 8px 8px !important;
  overflow-anchor: none;
}

.game-page
.offense-pitch-mix-heading-starter {
  gap: 7px !important;
  margin-bottom: 4px !important;
}

.game-page
.offense-pitch-mix-heading-starter > div {
  gap: 0 !important;
}

.game-page
.offense-pitch-mix-heading-starter small {
  font-size: .46rem !important;
  letter-spacing: .08em !important;
}

.game-page
.offense-pitch-mix-heading-starter strong {
  font-size: .66rem !important;
  line-height: 1.05 !important;
}

.game-page
.offense-pitch-mix-heading-starter > span {
  font-size: .47rem !important;
}

.game-page
.offense-pitch-mix-scout-layout {
  display: grid;
  grid-template-columns:
    88px
    minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  min-width: 0;
}

.game-page
.offense-pitch-mix-table-shell {
  min-width: 0;
}

.game-page
.offense-pitch-rank-column-headings {
  display: grid;
  grid-template-columns:
    minmax(72px, 1.05fr)
    minmax(84px, 1.25fr)
    43px !important;
  gap: 6px !important;
  padding: 1px 5px 3px !important;
  font-size: .39rem !important;
  font-weight: 850;
  letter-spacing: .055em !important;
  color: rgba(178,190,184,.43);
}

.game-page
.offense-pitch-rank-column-headings span:last-child {
  text-align: right;
}

.game-page
.offense-pitch-rank-list-starter {
  display: flex;
  flex-direction: column;
  gap: 2px !important;
  max-height: 226px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color:
    rgba(255,255,255,.18)
    transparent;
}

.game-page
.offense-pitch-rank-list-starter::-webkit-scrollbar {
  width: 4px;
}

.game-page
.offense-pitch-rank-list-starter::-webkit-scrollbar-track {
  background: transparent;
}

.game-page
.offense-pitch-rank-list-starter::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(255,255,255,.16);
}

.game-page
.offense-pitch-rank-row-starter {
  display: grid;
  grid-template-columns:
    minmax(72px, 1.05fr)
    minmax(84px, 1.25fr)
    43px !important;
  align-items: center;
  gap: 6px !important;
  min-height: 27px !important;
  padding: 3px 5px !important;
  border-radius: 6px !important;
}

.game-page
.offense-pitch-identity {
  gap: 5px !important;
}

.game-page
.offense-pitch-identity > i {
  flex-basis: 5px !important;
  width: 5px !important;
  height: 5px !important;
}

.game-page
.offense-pitch-identity > strong {
  font-size: .53rem !important;
  line-height: 1 !important;
}

.game-page
.offense-pitch-usage {
  display: grid;
  grid-template-columns:
    38px minmax(34px, 1fr) !important;
  align-items: center;
  gap: 5px !important;
  min-width: 0;
}

.game-page
.offense-pitch-usage-copy {
  justify-content: flex-end;
}

.game-page
.offense-pitch-usage-copy strong {
  font-size: .56rem !important;
}

.game-page
.offense-pitch-usage-track {
  height: 3px !important;
}

.game-page
.offense-pitch-rank-result > strong {
  min-width: 20px !important;
  font-size: .56rem !important;
}

.game-page
.offense-pitch-rank-row-starter[
  data-starter-pitch="0"
] {
  opacity: .54;
}

.game-page
.offense-pitch-rank-row-starter[
  data-starter-pitch="0"
]
.offense-pitch-usage-track {
  opacity: .28;
}

.game-page
.offense-pitch-mix-footnote {
  margin-top: 5px !important;
  font-size: .4rem !important;
  line-height: 1.22 !important;
  opacity: .63;
}

.game-page
.offense-pitch-rank-donut {
  position: sticky;
  top: 3px;
  width: 88px;
  min-width: 88px;
  min-height: 111px;
  text-align: center;
}

.game-page
.offense-pitch-rank-donut > svg {
  display: block;
  width: 80px;
  height: 80px;
  margin: 0 auto;
  overflow: visible;
}

.game-page
.offense-pitch-rank-donut-track,
.game-page
.offense-pitch-rank-donut-remainder {
  fill: none;
  stroke: rgba(255,255,255,.07);
  stroke-width: 11;
}

.game-page
.offense-pitch-rank-donut-segment {
  fill: none !important;
  stroke-width: 11;
  stroke-linecap: butt;
  opacity: .98;
  transition:
    stroke-width 120ms ease,
    opacity 120ms ease;
}

.game-page
.offense-pitch-rank-donut-segment:hover {
  stroke-width: 14;
  opacity: 1;
}

.game-page
.offense-pitch-rank-donut-center {
  position: absolute;
  top: 26px;
  left: 50%;
  width: 48px;
  transform: translateX(-50%);
  pointer-events: none;
}

.game-page
.offense-pitch-rank-donut-center strong {
  display: block;
  font-size: .55rem;
  line-height: 1;
  letter-spacing: .07em;
  color: rgba(239,245,242,.93);
}

.game-page
.offense-pitch-rank-donut-center span {
  display: block;
  margin-top: 3px;
  font-size: .34rem;
  line-height: 1;
  color: rgba(181,193,187,.47);
}

.game-page
.offense-pitch-rank-donut-caption {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin-top: -1px;
  font-size: .34rem;
  font-weight: 850;
  line-height: 1.12;
  letter-spacing: .045em;
  color: rgba(177,189,183,.42);
}

.game-page
.offense-pitch-rank-donut-empty {
  display: grid;
  justify-items: center;
  align-content: start;
  padding-top: 4px;
}

.game-page
.offense-pitch-rank-donut-empty-ring {
  width: 66px;
  height: 66px;
  border: 8px solid rgba(255,255,255,.07);
  border-radius: 999px;
}

.game-page
.offense-pitch-rank-donut-empty > strong {
  margin-top: -40px;
  font-size: .52rem;
}

.game-page
.offense-pitch-rank-donut-empty > small {
  margin-top: 27px;
  font-size: .32rem;
  color: rgba(177,189,183,.38);
}

html:not([data-highlight-display-mode="off"])
:not([data-highlight-display-mode="black-white"])
:not([data-highlight-neutral="spectrum"])
body.game-page
.offense-pitch-rank-donut-segment.metric-elite {
  stroke: #63ff9b !important;
}

html:not([data-highlight-display-mode="off"])
:not([data-highlight-display-mode="black-white"])
:not([data-highlight-neutral="spectrum"])
body.game-page
.offense-pitch-rank-donut-segment.metric-good {
  stroke: #a2f5bf !important;
}

html:not([data-highlight-display-mode="off"])
:not([data-highlight-display-mode="black-white"])
:not([data-highlight-neutral="spectrum"])
body.game-page
.offense-pitch-rank-donut-segment.metric-average {
  stroke: var(--text, #dce6e1) !important;
}

html:not([data-highlight-display-mode="off"])
:not([data-highlight-display-mode="black-white"])
:not([data-highlight-neutral="spectrum"])
body.game-page
.offense-pitch-rank-donut-segment.metric-poor {
  stroke: #ffadb8 !important;
}

html:not([data-highlight-display-mode="off"])
:not([data-highlight-display-mode="black-white"])
:not([data-highlight-neutral="spectrum"])
body.game-page
.offense-pitch-rank-donut-segment.metric-awful {
  stroke: #ff7184 !important;
}

html[data-highlight-neutral="spectrum"]
:not([data-highlight-display-mode="off"])
:not([data-highlight-display-mode="black-white"])
body.game-page
.offense-pitch-rank-donut-segment.metric-elite {
  stroke: #79ffac !important;
}

html[data-highlight-neutral="spectrum"]
:not([data-highlight-display-mode="off"])
:not([data-highlight-display-mode="black-white"])
body.game-page
.offense-pitch-rank-donut-segment.metric-good {
  stroke: #d8f77d !important;
}

html[data-highlight-neutral="spectrum"]
:not([data-highlight-display-mode="off"])
:not([data-highlight-display-mode="black-white"])
body.game-page
.offense-pitch-rank-donut-segment.metric-average {
  stroke: #ffe06e !important;
}

html[data-highlight-neutral="spectrum"]
:not([data-highlight-display-mode="off"])
:not([data-highlight-display-mode="black-white"])
body.game-page
.offense-pitch-rank-donut-segment.metric-poor {
  stroke: #ffad5d !important;
}

html[data-highlight-neutral="spectrum"]
:not([data-highlight-display-mode="off"])
:not([data-highlight-display-mode="black-white"])
body.game-page
.offense-pitch-rank-donut-segment.metric-awful {
  stroke: #ff7185 !important;
}

html[data-highlight-display-mode="black-white"]
body.game-page
.offense-pitch-rank-donut-segment.metric-elite {
  stroke: #f4f7f5 !important;
}

html[data-highlight-display-mode="black-white"]
body.game-page
.offense-pitch-rank-donut-segment.metric-good {
  stroke: #d7ddda !important;
}

html[data-highlight-display-mode="black-white"]
body.game-page
.offense-pitch-rank-donut-segment.metric-average {
  stroke: #aeb7b2 !important;
}

html[data-highlight-display-mode="black-white"]
body.game-page
.offense-pitch-rank-donut-segment.metric-poor {
  stroke: #818b86 !important;
}

html[data-highlight-display-mode="black-white"]
body.game-page
.offense-pitch-rank-donut-segment.metric-awful {
  stroke: #5f6863 !important;
}

html[data-highlight-display-mode="off"]
body.game-page
.offense-pitch-rank-donut-segment {
  stroke: #aeb7b2 !important;
  filter: none !important;
}

.game-page
.offense-pitch-rank-donut-segment.metric-missing {
  stroke: rgba(158,169,163,.46) !important;
}

@media (max-width: 760px) {
  .game-page
  .offense-pitch-mix-scout-layout {
    grid-template-columns:
      72px
      minmax(0, 1fr);
    gap: 5px;
  }

  .game-page
  .offense-pitch-rank-donut {
    width: 72px;
    min-width: 72px;
    min-height: 96px;
  }

  .game-page
  .offense-pitch-rank-donut > svg {
    width: 68px;
    height: 68px;
  }

  .game-page
  .offense-pitch-rank-donut-center {
    top: 22px;
    width: 40px;
  }

  .game-page
  .offense-pitch-rank-list-starter {
    max-height: 210px;
  }

  .game-page
  .offense-pitch-rank-column-headings,
  .game-page
  .offense-pitch-rank-row-starter {
    grid-template-columns:
      minmax(62px, 1fr)
      minmax(70px, 1.2fr)
      39px !important;
    gap: 4px !important;
  }

  .game-page
  .offense-pitch-usage {
    grid-template-columns:
      34px minmax(26px, 1fr) !important;
    gap: 3px !important;
  }
}

/* END BORING BETS: COMPREHENSIVE STICKY PITCH SCOUT V2 */

/* BORING BETS: SMALLER ROTATING HOME TAGLINE V1 */
.home-hero
#homeRotatingTagline {
  font-size: clamp(1.7rem, 4.8vw, 3.15rem) !important;
  line-height: 1.02 !important;
  max-width: 16ch;
  margin-left: auto;
  margin-right: auto;
}
/* END BORING BETS: SMALLER ROTATING HOME TAGLINE V1 */

/* BORING BETS: COMPACT HERO SLATE BUTTON V1 */
.home-hero .home-hero-slate-compact {
  font-size: 0.78rem !important;
  padding: 0.48rem 0.9rem !important;
  min-width: 0 !important;
  width: auto !important;
  line-height: 1 !important;
}
/* END BORING BETS: COMPACT HERO SLATE BUTTON V1 */

/* BORING BETS: SLEEK HERO SLATE BUTTON V1 */
.home-hero .home-hero-slate-compact {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;

  min-width: 0 !important;
  width: auto !important;
  min-height: 34px;

  padding: 0.52rem 1rem !important;

  border: 1px solid rgba(89, 242, 255, 0.72) !important;
  border-radius: 8px !important;

  background:
    linear-gradient(
      180deg,
      rgba(19, 31, 31, 0.96),
      rgba(8, 17, 17, 0.96)
    ) !important;

  color: #eaffff !important;

  font-size: 0.76rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 0 0 1px rgba(89, 242, 255, 0.04),
    0 5px 16px rgba(0, 0, 0, 0.28),
    0 0 14px rgba(89, 242, 255, 0.08);

  cursor: pointer;

  transition:
    transform 140ms ease,
    border-color 140ms ease,
    background 140ms ease,
    box-shadow 140ms ease;
}

.home-hero .home-hero-slate-compact::after {
  content: "›";
  display: inline-block;
  margin-top: -0.02em;

  color: #59f2ff;
  font-size: 1.15em;
  font-weight: 900;
  line-height: 0.8;

  transform: translateX(0);
  transition:
    transform 140ms ease;
}

.home-hero .home-hero-slate-compact:hover,
.home-hero .home-hero-slate-compact:focus-visible {
  transform: translateY(-1px);

  border-color: rgba(89, 242, 255, 0.98) !important;

  background:
    linear-gradient(
      180deg,
      rgba(24, 41, 41, 0.98),
      rgba(10, 22, 22, 0.98)
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.11),
    0 0 0 1px rgba(89, 242, 255, 0.08),
    0 7px 20px rgba(0, 0, 0, 0.32),
    0 0 18px rgba(89, 242, 255, 0.15);
}

.home-hero .home-hero-slate-compact:hover::after,
.home-hero .home-hero-slate-compact:focus-visible::after {
  transform: translateX(2px);
}

.home-hero .home-hero-slate-compact:active {
  transform: translateY(0);
}
/* END BORING BETS: SLEEK HERO SLATE BUTTON V1 */

/* BORING BETS: HALF SIZE HERO SLATE BUTTON V1 */
.home-hero .home-hero-slate-compact {
  min-height: 22px !important;
  padding: 0.26rem 0.52rem !important;
  gap: 0.22rem !important;

  border-radius: 6px !important;

  font-size: 0.60rem !important;
  letter-spacing: 0.09em !important;
}

.home-hero .home-hero-slate-compact::after {
  font-size: 0.95em !important;
}
/* END BORING BETS: HALF SIZE HERO SLATE BUTTON V1 */

/* BORING BETS: FORCE HALF SCALE HERO SLATE BUTTON V2 */
.home-hero .home-hero-slate-compact {
  transform: scale(0.5) !important;
  transform-origin: center center !important;
}

.home-hero .home-hero-slate-compact:hover,
.home-hero .home-hero-slate-compact:focus-visible {
  transform: scale(0.5) translateY(-2px) !important;
}

.home-hero .home-hero-slate-compact:active {
  transform: scale(0.5) translateY(0) !important;
}
/* END BORING BETS: FORCE HALF SCALE HERO SLATE BUTTON V2 */

/* BORING BETS: SHORT HERO SLATE BUTTON V1 */
.home-hero .home-hero-slate-compact {
  transform: none !important;
  min-height: 34px !important;
  padding: 0.52rem 0.62rem !important;
  gap: 0.30rem !important;

  border-radius: 8px !important;

  font-size: 0.76rem !important;
  letter-spacing: 0.12em !important;
  /* BORING BETS: SHORT HERO SLATE HALF WIDTH V1 */
  width: 50% !important;
  max-width: 50% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  justify-self: center !important;

}

.home-hero .home-hero-slate-compact:hover,
.home-hero .home-hero-slate-compact:focus-visible {
  transform: translateY(-1px) !important;
}

.home-hero .home-hero-slate-compact:active {
  transform: translateY(0) !important;
}
/* END BORING BETS: SHORT HERO SLATE BUTTON V1 */

/* BORING BETS: GREEN HERO SLATE BUTTON V1 */
.home-hero .home-hero-slate-compact {
  border-color: rgba(103, 239, 154, 0.92) !important;

  background:
    linear-gradient(
      180deg,
      rgba(24, 74, 48, 0.98),
      rgba(10, 40, 25, 0.98)
    ) !important;

  color: #effff4 !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.10),
    0 0 0 1px rgba(103, 239, 154, 0.06),
    0 5px 16px rgba(0, 0, 0, 0.28),
    0 0 16px rgba(103, 239, 154, 0.16) !important;
}

.home-hero .home-hero-slate-compact::after {
  color: #67ef9a !important;
}

.home-hero .home-hero-slate-compact:hover,
.home-hero .home-hero-slate-compact:focus-visible {
  border-color: rgba(103, 239, 154, 1) !important;

  background:
    linear-gradient(
      180deg,
      rgba(30, 92, 59, 1),
      rgba(13, 50, 31, 1)
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 0 0 1px rgba(103, 239, 154, 0.10),
    0 7px 20px rgba(0, 0, 0, 0.32),
    0 0 20px rgba(103, 239, 154, 0.24) !important;
}
/* END BORING BETS: GREEN HERO SLATE BUTTON V1 */

/* BORING BETS: AWESOME GREEN HERO SLATE BUTTON V1 */
.home-hero .home-hero-slate-compact {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate;

  border-color: rgba(103, 239, 154, 1) !important;

  background:
    radial-gradient(
      circle at 50% -35%,
      rgba(135, 255, 180, 0.30),
      transparent 62%
    ),
    linear-gradient(
      180deg,
      rgba(24, 92, 54, 0.99),
      rgba(7, 39, 21, 0.99)
    ) !important;

  color: #f3fff7 !important;

  text-shadow:
    0 0 8px rgba(190, 255, 214, 0.30);

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    inset 0 -1px 0 rgba(0, 0, 0, 0.30),
    0 0 0 1px rgba(103, 239, 154, 0.18),
    0 0 10px rgba(103, 239, 154, 0.42),
    0 0 26px rgba(103, 239, 154, 0.24),
    0 8px 22px rgba(0, 0, 0, 0.34) !important;

  animation:
    boringBetsSlateGlow 2.8s ease-in-out infinite;
}

.home-hero .home-hero-slate-compact::before {
  content: "";
  position: absolute;
  top: -60%;
  bottom: -60%;
  left: -42%;
  width: 30%;

  z-index: -1;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(220, 255, 232, 0.34),
      transparent
    );

  transform:
    skewX(-18deg)
    translateX(-220%);

  transition:
    transform 420ms ease;
}

.home-hero .home-hero-slate-compact::after {
  color: #8affb5 !important;

  text-shadow:
    0 0 7px rgba(103, 239, 154, 0.88),
    0 0 14px rgba(103, 239, 154, 0.46);
}

.home-hero .home-hero-slate-compact:hover,
.home-hero .home-hero-slate-compact:focus-visible {
  border-color: #8affb5 !important;

  background:
    radial-gradient(
      circle at 50% -35%,
      rgba(170, 255, 201, 0.42),
      transparent 62%
    ),
    linear-gradient(
      180deg,
      rgba(31, 116, 68, 1),
      rgba(8, 49, 26, 1)
    ) !important;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.20),
    inset 0 -1px 0 rgba(0, 0, 0, 0.26),
    0 0 0 1px rgba(138, 255, 181, 0.28),
    0 0 14px rgba(103, 239, 154, 0.62),
    0 0 34px rgba(103, 239, 154, 0.34),
    0 9px 24px rgba(0, 0, 0, 0.36) !important;
}

.home-hero .home-hero-slate-compact:hover::before,
.home-hero .home-hero-slate-compact:focus-visible::before {
  transform:
    skewX(-18deg)
    translateX(560%);
}

@keyframes boringBetsSlateGlow {
  0%,
  100% {
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.16),
      inset 0 -1px 0 rgba(0, 0, 0, 0.30),
      0 0 0 1px rgba(103, 239, 154, 0.16),
      0 0 9px rgba(103, 239, 154, 0.34),
      0 0 22px rgba(103, 239, 154, 0.18),
      0 8px 22px rgba(0, 0, 0, 0.34);
  }

  50% {
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.18),
      inset 0 -1px 0 rgba(0, 0, 0, 0.28),
      0 0 0 1px rgba(103, 239, 154, 0.22),
      0 0 13px rgba(103, 239, 154, 0.50),
      0 0 31px rgba(103, 239, 154, 0.28),
      0 8px 22px rgba(0, 0, 0, 0.34);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero .home-hero-slate-compact {
    animation: none !important;
  }

  .home-hero .home-hero-slate-compact::before {
    transition: none !important;
  }
}
/* END BORING BETS: AWESOME GREEN HERO SLATE BUTTON V1 */

/* BORING BETS DONATIONS V2 START */
.bb-donations {
  margin-top: clamp(2.5rem, 6vw, 5rem);
  margin-bottom: clamp(2.5rem, 6vw, 5rem);
}

.bb-donations-inner {
  max-width: 920px;
  margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 2.75rem);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 22px;
  background:
    radial-gradient(circle at 50% 0%, rgba(39, 255, 175, 0.08), transparent 48%),
    rgba(255,255,255,0.025);
}

.bb-donations h2 {
  margin: 0.3rem 0 0.55rem;
}

.bb-donations-lead {
  margin: 0 0 1rem;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  font-weight: 700;
}

.bb-donations-copy {
  max-width: 760px;
  margin: 0 auto;
  line-height: 1.65;
  opacity: 0.88;
}

.bb-donations-joke {
  margin: 0.85rem 0 0;
  font-size: 0.88rem;
  opacity: 0.62;
}

.bb-donations-actions {
  display: grid;
  grid-template-columns: 1.35fr 0.85fr;
  gap: 0.8rem;
  margin-top: 1.5rem;
}

.bb-donation-button {
  appearance: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 62px;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 14px;
  background: rgba(255,255,255,0.055);
  color: inherit;
  font: inherit;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition:
    transform 120ms ease,
    border-color 120ms ease,
    background 120ms ease;
}

.bb-donation-button span {
  margin-top: 0.28rem;
  font-size: 0.76rem;
  font-weight: 600;
  opacity: 0.65;
}

.bb-donation-button:hover,
.bb-donation-button:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(255,255,255,0.34);
  background: rgba(255,255,255,0.09);
}

.bb-donation-primary {
  border-color: rgba(42, 255, 174, 0.35);
}

.bb-payment-note {
  margin: 0.75rem 0 0;
  font-size: 0.8rem;
  opacity: 0.58;
}

.bb-bitcoin-panel {
  display: grid;
  grid-template-columns: minmax(185px, 235px) 1fr;
  gap: 1.35rem;
  align-items: center;
  margin-top: 1rem;
  padding: 1.25rem;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  background: rgba(0,0,0,0.18);
}

.bb-bitcoin-panel[hidden] {
  display: none;
}

.bb-bitcoin-qr-frame {
  padding: 0.65rem;
  border-radius: 12px;
  background: #fff;
}

.bb-bitcoin-qr {
  display: block;
  width: 100%;
  height: auto;
}

.bb-bitcoin-info p {
  margin: 0.45rem 0;
}

.bb-bitcoin-address-line {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0.85rem 0;
}

.bb-bitcoin-address-line code {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 0.9rem;
}

.bb-copy-bitcoin,
.bb-bitcoin-open {
  flex: 0 0 auto;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 9px;
  padding: 0.55rem 0.75rem;
  background: rgba(255,255,255,0.065);
  color: inherit;
  font: inherit;
  text-decoration: none;
  cursor: pointer;
}

.bb-bitcoin-warning {
  font-size: 0.86rem;
  opacity: 0.68;
}

.bb-bitcoin-open {
  display: inline-block;
  margin-top: 0.35rem;
}

.bb-donations-thanks {
  margin: 1.45rem 0 0;
  font-size: 0.92rem;
  opacity: 0.72;
}

@media (max-width: 720px) {
  .bb-donations-actions,
  .bb-bitcoin-panel {
    grid-template-columns: 1fr;
  }

  .bb-bitcoin-qr-frame {
    width: min(240px, 100%);
    margin: 0 auto;
  }
}

@media (max-width: 430px) {
  .bb-bitcoin-address-line {
    align-items: stretch;
    flex-direction: column;
  }
}
/* BORING BETS DONATIONS V2 END */
