/* Live page, Sunday edition (2026-09-27).
   Goal: all nine starters of the selected matchup visible on one screen at
   1440x1000 and 390x844 — player scores are the page. Pulse + timeline live
   in the sidebar; everything above the lineup is kept thin. */

/* ---- thin toolbar ---- */
.match-center.match-board .watch-toolbar{margin:0 0 6px;align-items:center}
.match-center.match-board .watch-toolbar>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.match-center.match-board .watch-toolbar h2{font-size:20px;margin:0}
.match-center.match-board .watch-toolbar p,.match-center.match-board .watch-toolbar #match-updated{margin:0;font-size:12px}
.match-center.match-board .watch-toolbar button,.match-center.match-board .watch-toolbar select{min-height:36px}
.match-center.match-board .match-state-legend{display:none}

/* ---- matchup strip: full names + win-probability bar ---- */
.match-center.match-board .match-selector{margin:0 0 6px}
.match-center.match-board .match-selector button{flex:0 0 190px;display:grid;gap:1px;align-content:start;padding:5px 8px}
.match-center.match-board .match-selector button .mc-mine{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6ee0bd;line-height:12px}
.match-center.match-board .match-selector button div{display:flex;justify-content:space-between;gap:8px;height:auto;line-height:1.25;margin-top:1px}
.match-center.match-board .match-selector button div>span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b9ccdd;font-weight:600}
.match-center.match-board .match-selector button div.is-leading>span{color:#fff}
.match-center.match-board .match-selector button div b{flex:0 0 auto;font-size:14px}
.match-center.match-board .mc-wp{display:flex;height:4px;border-radius:2px;overflow:hidden;margin-top:4px;background:#1c2c3d;gap:1px}
.match-center.match-board .mc-wp i{display:block;height:100%;transition:width .6s ease}
.match-center.match-board .mc-wp-label{display:flex;justify-content:space-between;font-size:10px!important;color:#9db3c7;line-height:13px}
.match-center.match-board .mc-wp-label span:first-child,.match-center.match-board .mc-wp-label span:last-child{font-weight:800;color:#dfe9f3;font-variant-numeric:tabular-nums}

/* ---- matchup scorebar: compact, win-prob meter underneath ---- */
.match-center.match-board .match-scores{margin-bottom:6px}
.match-center.match-board .match-scores>div{padding:7px 12px!important;row-gap:0!important}
.match-center.match-board .match-scores>div:nth-of-type(2){border-left:1px solid var(--board-line)}
.match-center.match-board .match-scores h3{font-size:15px!important}
.match-center.match-board .match-scores strong{font-size:32px!important;grid-row:1/3!important}
.match-center.match-board .match-scores small b{color:#eaf4ff}
.match-center.match-board .match-scores .mc-team-wp{grid-column:2;grid-row:3;justify-self:end;font-style:normal;font-size:13px;font-weight:800;color:#dfe9f3;line-height:1.1;white-space:nowrap}
.match-center.match-board .match-scores .mc-team-wp small{display:inline;margin-left:3px;font-size:9px!important;font-weight:600;color:#8fb0c9}
.match-center.match-board .match-scores>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;line-height:1.2;font-size:11px}
.match-center.match-board .match-scores>figure{margin:0}
.match-center.match-board .match-scores .mc-meter{grid-column:1/-1;display:flex;height:6px;margin:0 12px 7px;border-radius:3px;overflow:hidden;gap:2px;background:#1c2c3d}
.match-center.match-board .match-scores .mc-meter i{display:block;height:100%;transition:width .8s ease}

/* ---- player rows: two lines, scores big ---- */
#main-content .match-center.match-board .match-player>a{min-height:0!important;gap:1px!important}
.match-center.match-board .match-player{padding:4px 10px!important}
.match-center.match-board .match-player-name{display:block;font-size:14px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.match-center.match-board .mp-line{display:flex!important;gap:0 8px;min-width:0;font-size:11px!important;color:var(--board-muted);white-space:nowrap;overflow:hidden}
.match-center.match-board .mp-line>span{overflow:hidden;text-overflow:ellipsis}
.match-center.match-board .mp-game{flex:0 1 auto}
.match-center.match-board .mp-game b{color:#dfe9f3;font-size:inherit!important;font-weight:700}
.match-center.match-board .mp-stats{flex:1 1 auto;color:#cee2ee}
.match-center.match-board .mp-stats:before{content:'· ';color:var(--board-muted)}
.match-center.match-board .mp-rz{color:#ffb447;font-weight:700}
.match-center.match-board .mp-inj{color:#ffc39a}
.match-center.match-board .mp-ball{margin-right:3px}
.match-center.match-board .match-player>b{font-size:22px!important}
.match-center.match-board .match-player>b small{margin-top:1px!important}
.match-center.match-board .match-column-head{padding:6px 0}
.match-center.match-board .match-table-note{display:none}

/* ---- sidebar: pulse list + timeline ---- */
.match-center.match-board .live-pulse{display:grid;gap:6px;margin:0 0 8px}
.live-pulse .lp-item{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid #2b4157;border-radius:9px;background:linear-gradient(150deg,#13263a,#0e1828);min-width:0}
.live-pulse .lp-icon{font-size:18px;line-height:1.1}
.live-pulse .lp-item>div{display:grid;min-width:0;flex:1;grid-template-columns:minmax(0,1fr) auto;column-gap:8px}
.live-pulse small{grid-column:1/-1;font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8fb0c9}
.live-pulse b{font-size:13px;color:#eaf4ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-pulse em{font-style:normal;font-size:14px;font-weight:800;color:#f5c451;font-variant-numeric:tabular-nums}
.live-pulse .lp-detail{text-transform:none;letter-spacing:0;font-weight:500;color:#9db3c7;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-pulse .lp-upset{border-color:#7a3140;background:linear-gradient(150deg,#2c1520,#0e1828)}
.live-pulse .lp-skin{border-color:#6b5520}
.live-pulse .lp-survivor em{color:#f2787a}
.match-center .mc-timeline{margin:0 0 8px;padding:8px 10px;border:1px solid #2b4157;border-radius:9px;background:#0e1828}
.match-center .mc-timeline[hidden]{display:none}
.match-center .mc-timeline h3{margin:0 0 4px;font-size:12px;color:#c1d9eb}
.mc-timeline svg{display:block;width:100%;height:56px;border-radius:6px;background:#0c1726}
.mc-timeline .mc-tl-mid{stroke:#3a5068;stroke-dasharray:4 4;stroke-width:1}
.mc-timeline .mc-tl-area{fill:rgba(110,224,189,.08)}
.mc-timeline .mc-tl-line{fill:none;stroke-width:2.5;vector-effect:non-scaling-stroke}
.mc-timeline .mc-tl-cap{display:flex;justify-content:space-between;gap:8px;margin-top:4px;font-size:10px;color:#8fb0c9}
.mc-timeline .mc-tl-empty{font-size:11px;color:#8fb0c9}
@media (prefers-reduced-motion:reduce){.mc-wp i,.mc-meter i{transition:none}}

/* ---- phone: fit the whole lineup above the bottom nav ---- */
@media (max-width:640px){
  body:has(.match-center) .site-team-control{display:none}       /* team is remembered; not needed on Live */
  .match-center.match-board .watch-toolbar{flex-wrap:nowrap;gap:6px}
  .match-center.match-board .watch-toolbar h2{font-size:17px}
  .match-center.match-board .watch-toolbar p{font-size:11px}
  .match-center.match-board #match-updated{display:none}
  .match-center.match-board #match-controls{flex-wrap:nowrap;gap:4px;margin-left:auto}
  .match-center.match-board #match-controls select,.match-center.match-board #match-controls button{min-height:34px;padding:2px 6px;font-size:11px}
  .match-center.match-board #match-year,.match-center.match-board #match-controls button[type=submit]{display:none}
  .match-center.match-board .match-selector button{flex-basis:150px;padding:4px 7px}
  .match-center.match-board .match-selector button div b{font-size:13px}
  .match-center.match-board .match-selector button div>span{font-size:11px}
  .match-center.match-board .mc-wp-label span:nth-child(2){display:none}
  .match-center.match-board .match-scores>div{padding:6px 8px!important}
  .match-center.match-board .match-scores h3{font-size:12px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .match-center.match-board .match-scores strong{font-size:26px!important}
  .match-center.match-board .match-scores>div small{font-size:9px!important}
  .match-center.match-board .match-scores>span{font-size:9px}
  .match-center.match-board .match-player{padding:3px 5px!important}
  .match-center.match-board .match-player-name{font-size:11.5px!important}
  .match-center.match-board .mp-line{display:block!important;font-size:9.5px!important;line-height:1.3}
  .match-center.match-board .mp-line>span{display:block;white-space:nowrap}
  .match-center.match-board .mp-stats:before{content:none}
  .match-center.match-board .match-player>b{font-size:17px!important}
}

/* ---- vertical budget: 768px-tall laptops and landscape tablets ---- */
body:has(.match-center) .site-header{margin-bottom:0!important}
.match-center.match-board .match-column-head{display:none}          /* team names are right above in the scorebar */
.match-center.match-board .match-scores .mc-team-wp{grid-row:2}
.match-center.match-board .match-scores strong{grid-row:1/2!important}
.match-center.match-board .mc-now{color:#4ee5a0;font-weight:700}
@media (max-width:1279px) and (min-width:641px){
  .match-center.match-board .match-player{padding:2px 10px!important}
  #main-content .match-center.match-board .match-player>a{gap:0!important}
}
@media (max-width:640px){.match-center.match-board .match-scores h3{grid-column:1!important}.match-center.match-board .match-scores>div{grid-template-columns:minmax(0,1fr) auto!important}}
@media (max-width:1279px) and (min-width:641px){
  .match-center.match-board .mc-wp-label{display:none!important}
  .match-center.match-board .watch-toolbar button,.match-center.match-board .watch-toolbar select{min-height:32px;padding:2px 8px}
  .match-center.match-board .watch-toolbar{margin-bottom:4px}
  .match-center.match-board .match-scores>div{padding:5px 12px!important}
  .match-center.match-board .match-selector{margin-bottom:4px}
}
@media (max-width:1279px) and (min-width:641px){
  .match-center.match-board .match-selector button .mc-mine{display:none}   /* the card is still highlighted */
  .match-center.match-board .match-scores .mc-meter{margin-bottom:4px}
}
.match-center.match-board .mc-warn{color:#ffb447;font-weight:700;cursor:help}
/* A scoring play lights up the whole row, not just the number. */
@keyframes mc-row-score{0%{box-shadow:inset 0 0 0 2px #4ee5a0;background:#1d5a45}100%{box-shadow:inset 0 0 0 0 transparent}}
.match-center.match-board .match-player:has(>b.score-up){animation:mc-row-score 3s ease-out}
@media (prefers-reduced-motion:reduce){.match-center.match-board .match-player:has(>b.score-up){animation:none;box-shadow:inset 3px 0 #4ee5a0}}
@media (max-width:640px){
  .match-center.match-board .match-scores h3{grid-column:1/-1!important;grid-row:1!important;white-space:normal!important;line-height:1.2}
  .match-center.match-board .match-scores strong{grid-column:2!important;grid-row:2/4!important}
  .match-center.match-board .match-scores>div>small{grid-column:1!important;grid-row:2}
  .match-center.match-board .match-scores .mc-team-wp{grid-column:1!important;grid-row:3!important;justify-self:start}
}

/* ---- in-cell field situation + latest play (2026-09-27) ---- */
.match-center.match-board .match-player{grid-template-columns:minmax(0,1fr) auto 47px!important;position:relative}
.match-center.match-board .mp-sit:empty{display:none}
.match-center.match-board .mp-sit{display:grid;grid-template-rows:auto 8px auto;align-content:center;gap:2px;width:112px;padding:0 4px;text-align:center}
.match-center.match-board .mp-sit small{font-size:10px!important;line-height:1.1;color:#b9ccdd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.match-center.match-board .mp-sit.is-offense small:first-child{color:#8ff0c8;font-weight:700}
.match-center.match-board .mp-sit.is-defense small{color:#8ea3b7}
.match-center.match-board .mp-field{position:relative;display:block;height:8px;border-radius:2px;
  background:linear-gradient(90deg,#1b3a2a 0 8%,#23533a 8% 92%,#1b3a2a 92%),repeating-linear-gradient(90deg,transparent 0 9.5%,rgba(255,255,255,.18) 9.5% 10%);background-blend-mode:screen}
.match-center.match-board .mp-sit.is-offense .mp-field{box-shadow:inset -8px 0 0 rgba(78,229,160,.55)}          /* end zone they're attacking */
.match-center.match-board .mp-sit.is-defense .mp-field{box-shadow:inset 8px 0 0 rgba(242,120,122,.5);filter:saturate(.6)} /* their own goal is at risk */
.match-center.match-board .mp-sit.is-redzone .mp-field{box-shadow:inset -8px 0 0 #ffb447}
.match-center.match-board .mp-field b{position:absolute;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px rgba(0,0,0,.45),0 0 6px rgba(255,255,255,.6)}
.match-center.match-board .mp-sit.is-defense .mp-field b{background:#ffb4b4}
.match-center.match-board .mp-play{flex:1 1 auto;color:#ffe08a;font-weight:600;overflow:hidden;text-overflow:ellipsis;animation:mc-play-in .6s ease-out}
.match-center.match-board .mp-play.is-score{color:#8ff0c8}
@keyframes mc-play-in{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.match-center.match-board .mp-play{animation:none}}
@media (max-width:1100px){.match-center.match-board .mp-sit{width:92px}}
@media (max-width:640px){
  /* No column to spare on phones: the mini field becomes the cell's bottom edge. */
  .match-center.match-board .match-player{grid-template-columns:minmax(0,1fr) 31px!important}
  .match-center.match-board .mp-sit{position:absolute;left:0;right:0;bottom:0;width:auto;padding:0;display:block}
  .match-center.match-board .mp-sit small{display:none}
  .match-center.match-board .mp-field{height:3px;border-radius:0}
  .match-center.match-board .mp-field b{width:7px;height:7px;margin:-3.5px 0 0 -3.5px}
  .match-center.match-board .mp-play{display:block;white-space:nowrap}
}
.match-center.match-board .match-player>a:not(.mp-clip){grid-column:1;grid-row:1}
.match-center.match-board .match-player>.mp-sit{grid-column:2;grid-row:1}
.match-center.match-board .match-player>b{grid-column:3;grid-row:1}
@media (max-width:640px){.match-center.match-board .match-player>b{grid-column:2}}
/* Field is always drawn from the player's team's side: their goal left, the goal they attack right. */
.match-center.match-board .mp-sit.is-defense.is-redzone .mp-field{box-shadow:inset 8px 0 0 #f2787a}
/* "Showing a saved snapshot…" floats as a toast instead of pushing the lineup down. */
.match-center.match-board .match-notice{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:60;max-width:min(560px,calc(100vw - 32px));margin:0;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.match-center.match-board .match-notice[hidden]{display:none}

/* ---- desktop ticker in the title row (no extra height) ---- */
.match-center.match-board .watch-toolbar{display:flex;gap:12px}
.match-center.match-board .live-ticker{flex:1 1 auto;min-width:0;height:30px;overflow:hidden;align-self:center;border:1px solid #2b4157;border-radius:15px;background:#0c1726;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent)}
.match-center.match-board .live-ticker[hidden]{display:none}
.live-ticker .lt-track{display:inline-flex;gap:28px;white-space:nowrap;height:100%;align-items:center;padding-left:100%;animation:lt-scroll var(--lt-duration,30s) linear infinite}
.live-ticker:hover .lt-track{animation-play-state:paused}
.live-ticker .lt-item{font-size:12px;font-weight:600;padding-left:10px;border-left:3px solid}
.live-ticker .lt-side-0{color:#8ff0c8;border-color:#4ee5a0}
.live-ticker .lt-side-1{color:#cdb6ff;border-color:#a98bff}
@keyframes lt-scroll{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){.live-ticker .lt-track{animation:none;padding-left:10px}.live-ticker .lt-item~.lt-item{display:none}}
@media (max-width:1099px){.match-center.match-board .live-ticker{display:none!important}}

.live-ticker a.lt-item{text-decoration:none}
.live-ticker a.lt-item:hover{text-decoration:underline}
@media (min-width:1100px){
  .match-center.match-board .watch-toolbar>div:first-child{flex:0 0 auto;flex-wrap:nowrap;white-space:nowrap}
  .match-center.match-board .watch-toolbar>form{flex:0 0 auto}
  .match-center.match-board .live-ticker{flex:1 1 0}
}

/* ---- strip card polish (2026-09-27 pm): bar visible, nothing spills out of a card ---- */
.match-center.match-board .match-selector button{grid-template-columns:minmax(0,1fr);overflow:hidden;min-width:0}
.match-center.match-board .match-selector button>*{min-width:0}
.match-center.match-board .match-selector button .mc-wp{display:flex;height:4px;border-radius:2px;overflow:hidden;margin-top:5px;background:#1c2c3d;gap:1px}
.match-center.match-board .match-selector button .mc-wp i{display:block;height:100%}
.match-center.match-board .mc-warn{margin-left:4px;padding:0 6px;border-radius:9px;background:rgba(255,180,71,.14);white-space:nowrap}
@media (max-width:640px){
  .match-center.match-board .mc-warn-word{display:none}
  .match-center.match-board .match-selector button div b{font-size:12px}
  .match-center.match-board .mc-wp-label{font-size:9.5px!important}
}

/* ---- phone + tablet vertical budget, round 2 ---- */
.match-center.match-board .mc-meter small{display:none}
.match-center.match-board .mp-inj{font-weight:800}
@media (max-width:1279px) and (min-width:641px){
  .match-center.match-board .match-selector button{padding:3px 8px}
  .match-center.match-board .match-selector button .mc-wp{margin-top:3px}
  .match-center.match-board .match-selector{margin-bottom:3px}
}
@media (max-width:640px){
  body:has(.match-center) .site-header-row{padding-top:2px;padding-bottom:2px}
  body:has(.match-center) .site-logo{height:28px;width:auto}
  .match-center.match-board .watch-toolbar>div:first-child{flex:1 1 auto;min-width:0;flex-wrap:nowrap;white-space:nowrap}
  .match-center.match-board .watch-toolbar p{overflow:hidden;text-overflow:ellipsis;min-width:0}
  .match-center.match-board .match-selector button .mc-mine{display:none}
  /* win % moves onto the ends of the meter: one row instead of two */
  .match-center.match-board .match-scores .mc-team-wp{display:none}
  .match-center.match-board .match-scores .mc-meter{position:relative;height:14px;margin:2px 8px 6px;background:none;gap:0;padding:0 34px}
  .match-center.match-board .match-scores .mc-meter i{height:6px;align-self:center}
  .match-center.match-board .match-scores .mc-meter i:first-of-type{border-radius:3px 0 0 3px}
  .match-center.match-board .match-scores .mc-meter i:nth-of-type(2){border-radius:0 3px 3px 0;margin-left:2px}
  .match-center.match-board .match-scores .mc-meter small{display:block;position:absolute;top:0;font-size:11px!important;font-weight:800;color:#eaf4ff;line-height:14px}
  .match-center.match-board .mc-meter-l{left:0}.match-center.match-board .mc-meter-r{right:0}
}
@media (max-width:640px){.match-center.match-board .mp-rz{display:none}}
@media (max-width:640px){
  body:has(.match-center) .site-header{padding-top:2px!important;padding-bottom:2px!important}
  body:has(.match-center) .site-header-row{min-height:0!important}
}
@media (max-width:420px){.match-center.match-board .mc-left{display:none}}
@media (max-width:640px){
  .match-center.match-board .match-player{padding:2px 5px!important}
  .match-center.match-board .mp-line{line-height:1.22}
  .match-center.match-board .match-player-name{line-height:1.25}
}
@media (max-width:640px){.match-center.match-board .watch-toolbar{margin-bottom:3px}.match-center.match-board .match-selector{margin-bottom:4px}}
.match-center.match-board .mp-clip-menu{position:absolute;right:0;top:26px;z-index:30;width:min(340px,80vw);max-height:260px;overflow:auto;padding:6px;border:1px solid #3a5068;border-radius:9px;background:#0e1828;box-shadow:0 12px 30px rgba(0,0,0,.5)}
.match-center.match-board .mp-clip-menu a{display:block;padding:7px 8px;border-radius:6px;color:#dfe9f3!important;font-size:12px;font-weight:500;line-height:1.35;text-decoration:none;white-space:normal}
.match-center.match-board .mp-clip-menu a:hover{background:#17314a}

/* ---- clip badge: its own grid slot between the name and the field/score (no overlap) ---- */
.match-center.match-board .match-player{grid-template-columns:minmax(0,1fr) auto auto 47px!important}
.match-center.match-board .match-player>a:not(.mp-clip){grid-column:1!important}
#main-content .match-center.match-board .match-player>.mp-clip{grid-column:2;grid-row:1;align-self:center;position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 7px;margin:0 2px;border-radius:11px;background:#ff4500;color:#fff!important;font-size:10px;font-weight:800;line-height:1;text-decoration:none;box-shadow:0 0 0 2px rgba(255,69,0,.22)}
#main-content .match-center.match-board .match-player>.mp-clip:hover{filter:brightness(1.1)}
.match-center.match-board details.mp-clip>summary{list-style:none;cursor:pointer;min-height:0!important;display:block;color:#fff}
.match-center.match-board details.mp-clip>summary::-webkit-details-marker{display:none}
.match-center.match-board .match-player>.mp-sit{grid-column:3!important}
.match-center.match-board .match-player>b{grid-column:4!important}
.match-center.match-board .mp-clip-menu{top:28px}
@media (max-width:640px){
  .match-center.match-board .match-player{grid-template-columns:minmax(0,1fr) auto 31px!important}
  .match-center.match-board .match-player>b{grid-column:3!important}
  #main-content .match-center.match-board .match-player>.mp-clip{min-width:20px;height:18px;padding:0 5px;font-size:9px;margin:0 1px}
  .match-center.match-board .mp-clip-menu{right:auto;left:-120px}
}

#main-content .match-center.match-board .match-player>.mp-clip{grid-column:2!important;min-height:0!important;width:auto!important;flex-direction:row!important;white-space:nowrap;background:#ff4500!important;border:0!important;border-radius:11px!important;overflow:visible}
.match-center.match-board details.mp-clip>summary{white-space:nowrap;padding:0!important;background:none!important;border:0!important;font-size:inherit!important;line-height:22px;color:#fff!important}
@media (max-width:640px){.match-center.match-board details.mp-clip>summary{line-height:18px}}

/* clip badge is now a button that opens the in-page player */
#main-content .match-center.match-board .match-player>button.mp-clip{min-width:26px!important;min-height:0!important;height:22px;border:0;cursor:pointer;font:inherit;font-size:10.5px;font-weight:800}
#main-content .match-center.match-board .match-scores .mc-reel{min-height:0!important;min-width:0!important;margin-top:5px;padding:4px 10px;border:0;border-radius:12px;background:#ff4500;color:#fff;font:inherit;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}
#main-content .match-center.match-board .mc-reel:hover{filter:brightness(1.1)}
#main-content .live-ticker button.lt-item{min-height:0!important;min-width:0!important;background:none;border-top:0;border-right:0;border-bottom:0;font:inherit;font-size:12px;font-weight:600;cursor:pointer;padding:0 0 0 10px}
#main-content .live-ticker button.lt-item:hover{text-decoration:underline}
@media (max-width:640px){#main-content .match-center.match-board .match-player>button.mp-clip{height:18px;min-width:20px!important;font-size:9px}#main-content .match-center.match-board .match-scores .mc-reel{font-size:10px;padding:3px 8px}}

/* ---- phone: clip button lives under the score (fixed spot), name keeps the full width ---- */
@media (max-width:640px){
  .match-center.match-board .match-player{grid-template-columns:minmax(0,1fr) 36px!important}
  .match-center.match-board .match-player>b{grid-column:2!important;grid-row:1;align-self:start}
  #main-content .match-center.match-board .match-player>button.mp-clip{grid-column:2!important;grid-row:1;align-self:end;justify-self:end;margin:0 0 1px!important;height:16px;min-width:0!important;padding:0 5px;font-size:9px}
  .match-center.match-board .match-player.has-clip>b small{visibility:hidden}
  .match-center.match-board .match-player-name{white-space:nowrap;overflow:visible;text-overflow:clip}
}
/* matchup reel button: centered in the middle column, never wider than it */
.match-center.match-board .match-scores>span{padding:6px 2px}
#main-content .match-center.match-board .match-scores .mc-reel{display:inline-flex;align-items:center;justify-content:center;gap:0;margin:6px auto 0;max-width:100%;white-space:nowrap;line-height:1.2}
@media (max-width:640px){
  .match-center.match-board .mc-reel-word{display:none}
  #main-content .match-center.match-board .match-scores .mc-reel{padding:3px 7px;font-size:10px}
}
@media (max-width:1279px){.match-center.match-board .match-scores>span{padding:2px}#main-content .match-center.match-board .match-scores .mc-reel{margin-top:4px;padding:3px 8px}}

/* ---- real phones (browser chrome eats ~180px): lineup must clear the bottom nav at ~390x664 ---- */
@media (max-width:640px){
  body:has(.match-center) .site-header{display:none!important}      /* bottom nav + Live toolbar carry navigation */
  body:has(.match-center) #main-content{padding-top:6px}
  .match-center.match-board .match-selector button{padding:3px 7px}
  .match-center.match-board .match-selector .mc-wp-label{display:none!important}
  .match-center.match-board .match-selector button .mc-wp{margin-top:3px}
  .match-center.match-board .match-scores>div{padding:4px 8px!important}
  .match-center.match-board .match-scores h3{font-size:12px!important;line-height:1.15}
  .match-center.match-board .match-scores .mc-meter{margin:0 8px 4px}
}
/* row-color key (under the lineup, outside the one-screen budget) */
.match-center.match-board .match-table-note.mc-legend{display:flex!important;flex-wrap:wrap;gap:4px 14px;padding:7px 10px;font-size:11px;color:#9db3c7}
.mc-legend .lg{display:inline-flex;align-items:center;gap:5px}
.mc-legend .lg:before{content:'';width:12px;height:12px;border-radius:3px}
.mc-legend .lg-live:before{background:#123d32;box-shadow:inset 3px 0 #4ee5a0}
.mc-legend .lg-ball:before{background:#123d60;box-shadow:inset 3px 0 #56baff}
.mc-legend .lg-rz:before{background:#543316;box-shadow:inset 3px 0 #ffb447}
@media (max-width:640px){
  .match-center.match-board .match-player{padding:1px 5px!important;min-height:0}
  .match-center.match-board .match-player-name{line-height:1.15!important}
  .match-center.match-board .mp-line{line-height:1.15!important}
  .match-center.match-board .match-player>b{font-size:16px!important;line-height:1}
  .match-center.match-board .match-player>b small{margin-top:0!important}
}
/* color key now lives at the bottom of the page */
.match-center .mc-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:10px 0 0;padding:0 2px;font-size:11px;color:#9db3c7}
/* phone field strip: inset and fully inside the cell so its ball never pokes past the corner */
@media (max-width:640px){
  .match-center.match-board .match-player{overflow:hidden}
  .match-center.match-board .mp-sit{left:5px!important;right:41px!important;bottom:2px!important}
  .match-center.match-board .mp-field{height:3px;border-radius:2px;overflow:visible}
  .match-center.match-board .mp-field b{width:5px!important;height:5px!important;margin:-2.5px 0 0 -2.5px!important;box-shadow:none!important}
  #main-content .match-center.match-board .match-player>button.mp-clip{margin:0 0 5px!important}
}
@media (max-width:640px){.match-center.match-board .match-player>.mp-sit{display:none!important}.match-center.match-board .match-player{overflow:visible}}

/* ---- rows grow to fill the screen; spare height = more stat lines ---- */
.match-center.match-board .match-lineups .match-pair{min-height:var(--row-h,0)}
.match-center.match-board .match-lineups .match-player{align-content:center}
.match-center.match-board .match-lineups:not([data-stat-lines="1"]) .mp-line{display:block!important;white-space:normal}
.match-center.match-board .match-lineups:not([data-stat-lines="1"]) .mp-line>.mp-game{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.match-center.match-board .match-lineups:not([data-stat-lines="1"]) .mp-line>.mp-stats,
.match-center.match-board .match-lineups:not([data-stat-lines="1"]) .mp-line>.mp-play{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow:hidden}
.match-center.match-board .match-lineups[data-stat-lines="3"] .mp-line>.mp-stats,
.match-center.match-board .match-lineups[data-stat-lines="3"] .mp-line>.mp-play{-webkit-line-clamp:3}
.match-center.match-board .match-lineups:not([data-stat-lines="1"]) .mp-stats:before{content:none}
#main-content .match-center.match-board .match-scores .mc-reel{gap:.3em}

/* ---- desktop: NFL scores lead the sidebar as compact live game cards ---- */
@media (min-width:1101px){
  .match-center.match-board .watch-sidebar .nfl-panel{margin-bottom:8px}
  .match-center.match-board .watch-sidebar #nfl-games{display:grid!important;grid-template-columns:1fr!important;gap:0;max-height:none!important;overflow:visible!important}
  .match-center.match-board .watch-sidebar .nfl-game{display:grid;grid-template-columns:1fr 1fr;column-gap:8px;row-gap:3px;padding:8px 10px!important;border-bottom:1px solid #223449}
  .match-center.match-board .watch-sidebar .nfl-game>header{grid-column:1/-1;min-height:0}
  .match-center.match-board .watch-sidebar .nfl-game>header small{font-size:11px;font-weight:700}
  .match-center.match-board .watch-sidebar .nfl-game>header em{font-size:9px;font-weight:800;font-style:normal;color:#ffb447}
  .match-center.match-board .watch-sidebar .nfl-score-row{min-height:0;padding:2px 6px}
  .match-center.match-board .watch-sidebar .nfl-possession{grid-column:1/-1;font-size:11px;margin-top:2px}
  .match-center.match-board .watch-sidebar .nfl-field{grid-column:1/-1;height:16px!important;margin:1px 0 0}
  .match-center.match-board .watch-sidebar .nfl-game-context{grid-column:1/-1;margin-top:2px!important;display:grid;gap:3px}
  .match-center.match-board .watch-sidebar .nfl-game-context>small{display:none}   /* spot is in the possession line */
  .match-center.match-board .watch-sidebar .nfl-game-context p{margin:0!important}
  .match-center.match-board .watch-sidebar .ng-last{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:11.5px!important;line-height:1.35;color:#ffe08a!important}
  .match-center.match-board .watch-sidebar .nfl-game:not(.is-live) .ng-last{color:#9db3c7!important}
  .match-center.match-board .watch-sidebar .ng-starters{font-size:10.5px!important}
  .match-center.match-board .watch-sidebar .ng-starters span{margin-right:4px!important;padding:1px 6px;border-radius:9px;background:#17283a}
  #main-content .match-center.match-board .watch-sidebar .nfl-game-context a.ng-link{min-height:0!important;min-width:0!important;justify-self:end;font-size:10.5px;padding:0;border:0;background:none;color:#8fd0ee}
  .match-center.match-board .watch-sidebar .nfl-game.is-red-zone{box-shadow:inset 3px 0 #ffb447}
  .match-center.match-board .watch-sidebar .nfl-game.is-live{background:#10263a}
}
/* rooting pick on other matchups */
.match-center.match-board .mc-root{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;color:#f5c451!important;font-weight:700;padding:0 4px}
.match-center.match-board .mc-root-i{font-style:normal;margin-right:3px}

/* ---- desktop: score header + lineups on the left, NFL scoreboard beside them; pulse/plays below the fold ---- */
@media (min-width:1101px){
  .match-center.match-board{display:grid;grid-template-columns:minmax(0,1fr) clamp(320px,25vw,420px);column-gap:12px;align-items:start;
    grid-template-areas:"tool tool" "notice notice" "sel sel" "score nfl" "detail nfl" "plays pulse" "timeline pulse" "controls pulse" "links links" "legend legend" "notes notes"}
  .match-center.match-board>*{grid-column:1/-1;min-width:0}
  .match-center.match-board .watch-layout,.match-center.match-board .watch-sidebar{display:contents}
  .match-center.match-board>.watch-toolbar{grid-area:tool}
  .match-center.match-board>#match-notice{grid-area:notice}
  .match-center.match-board>#match-selector{grid-area:sel}
  .match-center.match-board>#match-scorebar{grid-area:score;min-width:0}
  .match-center.match-board #match-detail{grid-area:detail;min-width:0}
  .match-center.match-board .watch-sidebar .nfl-panel{grid-area:nfl;align-self:start;position:sticky;top:8px;height:var(--nfl-h,calc(100vh - 230px));margin:0!important;display:flex;flex-direction:column;overflow:hidden}
  .match-center.match-board .watch-sidebar .nfl-panel>header,.match-center.match-board .watch-sidebar .nfl-panel>nav{flex:none}
  .match-center.match-board .watch-sidebar .nfl-panel #nfl-games{flex:1 1 auto;min-height:0;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-width:thin}
  .match-center.match-board .watch-sidebar .plays-panel{grid-area:plays;margin-top:14px}
  .match-center.match-board .watch-sidebar .live-pulse{grid-area:pulse;margin-top:14px}
  .match-center.match-board .watch-sidebar .mc-timeline{grid-area:timeline}
  .match-center.match-board .watch-sidebar .feed-controls{grid-area:controls}
  .match-center.match-board>.watch-links{grid-area:links}
  .match-center.match-board>.mc-legend{grid-area:legend}
  .match-center.match-board>.watch-notes{grid-area:notes}
  .match-center.match-board>.match-state-legend,.match-center.match-board>.watch-mobile-tabs{display:none}
}
@media (min-width:1101px){
  .match-center.match-board .watch-sidebar .nfl-panel>header{padding:7px 10px}
  #main-content .match-center.match-board .watch-sidebar #nfl-filters{display:flex;gap:4px;padding:5px 8px;border-bottom:1px solid #223449}
  #main-content .match-center.match-board .watch-sidebar #nfl-filters button{min-height:26px!important;min-width:0!important;padding:2px 10px;font-size:11px;flex:1}
  .match-center.match-board .watch-sidebar .nfl-game{position:relative;row-gap:2px;padding:6px 10px 7px!important}
  .match-center.match-board .watch-sidebar .nfl-game-context{gap:2px!important}
  #main-content .match-center.match-board .watch-sidebar .nfl-game-context a.ng-link{position:absolute;top:6px;right:10px;font-size:10.5px}
  .match-center.match-board .watch-sidebar .nfl-game>header{padding-right:70px}
  .match-center.match-board .watch-sidebar .ng-starters:empty{display:none}
}
/* rooting: the team you want to win (helps you in the standings) gets a subtle gold name; the card's tooltip says why */
.match-center.match-board .match-selector button div.is-rooted .tn-full,.match-center.match-board .match-selector button div.is-rooted .tn-abbr{color:#f5c451;text-shadow:0 0 10px rgba(245,196,81,.35)}
.match-center.match-board .mc-root{color:#f5c451!important;font-weight:700}
/* Score header columns mirror the lineup table (team | slot band | team) so the middle band lines up exactly. */
.match-center.match-board .match-scores{grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr)!important;column-gap:0!important}
.match-center.match-board .match-scores>div:nth-of-type(2){border-left:0!important}
.match-center.match-board .match-scores>span{align-self:stretch;min-width:0;overflow:hidden;padding:4px 0!important;gap:4px!important;background:#17283a;border-left:1px solid var(--board-line);border-right:1px solid var(--board-line)}
.match-center.match-board .match-scores>span>small{display:none}
.match-center.match-board .match-scores .mc-state{font-style:normal;font-size:8px;font-weight:800;line-height:1.15;text-transform:uppercase;letter-spacing:.03em;color:#8fe3bf;word-break:break-word}
#main-content .match-center.match-board .match-scores .mc-reel{margin:0 auto!important;padding:3px 4px!important;font-size:10px!important;border-radius:9px}
#main-content .match-center.match-board .match-scores .mc-reel .mc-reel-word{display:none}
@media (max-width:600px){
  .match-center.match-board .match-scores{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr)!important}
  .match-center.match-board .match-scores .mc-state{font-size:7px}
  #main-content .match-center.match-board .match-scores .mc-reel{padding:2px 3px!important;font-size:9px!important}
}
/* phone/tablet: no scroll-inside-a-scroll — every NFL game flows in the page, one swipe goes through them all */
@media (max-width:1100px){
  .match-center.match-board .watch-sidebar #nfl-games,.match-center.match-board .watch-sidebar #nfl-games:has(.nfl-game:only-child){max-height:none!important;overflow:visible!important}
}
/* players still to play on every matchup row */
.match-center.match-board .match-selector button div>.mc-row-left{flex:none;align-self:center;font-size:10px;font-weight:600;color:#8aa3ba;white-space:nowrap;font-variant-numeric:tabular-nums}
@media (max-width:640px){.match-center.match-board .match-selector button div>.mc-row-left{font-size:9px}.match-center.match-board .match-selector button div>.mc-row-left span{display:none}}
/* OPTIMAL button + 10-second optimal lineup view */
#main-content .match-center .mc-optimal-btn{background:#3a2c05;border-color:#f5c451;color:#f5c451;font-weight:800;letter-spacing:.03em}
#main-content .match-center .mc-optimal-btn[aria-pressed=true]{background:#f5c451;color:#1a1300}
.match-center.match-board .match-scores>div.is-optimal strong{color:#f5c451!important}
.match-center.match-board .match-scores>div.is-optimal small b{color:#f5c451}
.match-center.match-board .match-player.is-optimal-in{box-shadow:inset 0 0 0 2px #f5c451;background:#2c2408!important}
.match-center.match-board .match-player.is-optimal-in .match-player-name::after{content:' ↑ bench';font-size:.72em;font-weight:800;color:#f5c451}
@media (max-width:640px){#main-content .match-center #match-refresh{display:none}}
/* ---- desktop/tablet: clip button gets a fixed column beside the score so every ▶ lines up ---- */
@media (min-width:641px){
  .match-center.match-board .match-player{grid-template-columns:minmax(0,1fr) auto 38px 47px!important}
  .match-center.match-board .match-player>.mp-sit{grid-column:2!important;grid-row:1}
  #main-content .match-center.match-board .match-player>.mp-clip{grid-column:3!important;grid-row:1;justify-self:center;width:34px!important;min-width:34px!important;padding:0!important;margin:0!important}
  .match-center.match-board .match-player>b{grid-column:4!important;grid-row:1}
}
/* ---- ESPN Fantasycast state colors (from ESPN's fantasy bundle: onField #f7b500, redZone #dd0000) ---- */
.match-center.match-board .match-player[data-play-state=live]{background:#1a2636!important;box-shadow:inset 3px 0 #8fa3b8!important}
.match-center.match-board .match-player[data-play-state=possession]{background:#3a2e06!important;box-shadow:inset 3px 0 #f7b500!important}
.match-center.match-board .match-player[data-play-state=redzone]{background:#4a1111!important;box-shadow:inset 3px 0 #dd0000!important}
.mc-legend .lg-live:before{background:#1a2636;box-shadow:inset 3px 0 #8fa3b8}
.mc-legend .lg-ball:before{background:#3a2e06;box-shadow:inset 3px 0 #f7b500}
.mc-legend .lg-rz:before{background:#4a1111;box-shadow:inset 3px 0 #dd0000}
.match-center.match-board .mp-rz{color:#ff5a4f}
.match-center.match-board .mp-sit.is-redzone .mp-field{box-shadow:inset -8px 0 0 #dd0000}
.match-center.match-board .watch-sidebar .nfl-game>header em{color:#ff5a4f!important}
.match-center.match-board .watch-sidebar .nfl-game.is-red-zone{box-shadow:inset 3px 0 #dd0000!important}
.mc-timeline .mc-tl-break{stroke:#5b7089;stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.mc-timeline .mc-tl-plot{position:relative}
.mc-timeline .mc-tl-day{position:absolute;top:0;margin-left:3px;font-size:9px;font-weight:700;color:#8fa3b8;pointer-events:none}
/* projected (on-pace) team score in the matchup boxes */
.match-center.match-board .match-selector button div>.mc-row-left .mc-row-proj{font-style:normal;color:#c9d8e6;font-weight:700}
.match-center.match-board .match-selector button div>.mc-row-left .mc-row-proj span{color:#8aa3ba;font-weight:600}
@media (max-width:640px){
  .match-center.match-board .match-selector button div>.mc-row-left .mc-row-proj span{display:none}
  .match-center.match-board .match-selector button div>.mc-row-left .mc-row-proj::before{content:' →';color:#8aa3ba;font-weight:600}
}
/* "My matchup" label removed; the freed line shows players left under every box at all sizes */
@media (max-width:1279px){
  #main-content .match-center.match-board .match-selector .mc-wp-label{display:flex!important;font-size:9px!important;line-height:11px;margin-top:1px}
  #main-content .match-center.match-board .match-selector .mc-wp-label span:nth-child(2){display:inline!important}
}
/* ---- ultrawide ---- */
.match-center.match-board .watch-side2{display:contents}          /* 1101–2399: items keep their own grid areas */
@media (min-width:2400px){
  .match-center.match-board{grid-template-columns:minmax(0,1fr) clamp(380px,19vw,520px) clamp(340px,16vw,460px);
    grid-template-areas:"tool tool tool" "notice notice notice" "sel sel sel" "score nfl side" "detail nfl side" "links links links" "legend legend legend" "notes notes notes"}
  .match-center.match-board .watch-sidebar .watch-side2{grid-area:side;display:flex;flex-direction:column;gap:10px;align-self:start;position:sticky;top:8px;
    height:var(--nfl-h,calc(100vh - 230px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .match-center.match-board .watch-side2>*{margin:0!important;flex:none}
  .match-center.match-board .watch-side2 #live-play-log{max-height:none}
}
@media (min-width:2400px){
  .match-center.match-board .watch-side2>#live-pulse{order:-2}
  .match-center.match-board .watch-side2>.mc-timeline{order:-1}
}
/* Side columns take exactly the height of the rows they span (score header + lineups) and never feed back
   into those rows: contain:size gives them no intrinsic height, stretch fills the spanned tracks. */
@media (min-width:1101px){
  .match-center.match-board .watch-sidebar .nfl-panel{contain:size;align-self:stretch;height:auto!important;position:static}
}
@media (min-width:2400px){
  .match-center.match-board .watch-sidebar .watch-side2{contain:size;align-self:stretch;height:auto!important;position:static}
}
@media (min-width:1101px){.match-center.match-board .watch-sidebar .nfl-panel{margin-bottom:var(--nfl-cut,0px)!important}}
@media (min-width:2400px){.match-center.match-board .watch-sidebar .watch-side2{margin-bottom:var(--nfl-cut,0px)!important}}
/* tablets: the "N v N left" line is back, so trim the strip elsewhere to keep the lineup on one screen */
@media (min-width:641px) and (max-width:1100px){
  .match-center.match-board .match-selector{padding-bottom:3px!important;margin-bottom:4px!important}
  .match-center.match-board .match-selector button{padding:2px 8px!important}
  .match-center.match-board .match-selector button div{line-height:16px!important;margin-top:0!important}
  #main-content .match-center.match-board .match-selector .mc-wp-label{line-height:10px!important;margin-top:0!important}
  .match-center.match-board .match-selector button .mc-wp{margin-top:2px!important}
}
/* finished (or out / bye) players fade back so the ones still to play stand out; score stays readable */
.match-center.match-board .match-player:is([data-status=post],[data-play-state=final],[data-play-state=inactive])>a:not(.mp-clip),
.match-center.match-board .match-player:is([data-status=post],[data-play-state=final],[data-play-state=inactive])>.mp-sit{opacity:.5;filter:grayscale(.7)}
.match-center.match-board .match-player:is([data-status=post],[data-play-state=final],[data-play-state=inactive])>b{opacity:.75}
.match-center.match-board .match-player:is([data-status=post],[data-play-state=final],[data-play-state=inactive]) .match-player-name{color:#b7c3cf}
/* A play line that arrives after the rows were sized must not push the last starter off-screen. */
.match-center.match-board .match-lineups[style*="--row-h"] .match-pair{height:var(--row-h);overflow:hidden}
/* ---- phones/tablets: NFL scores as a bottom sheet ---- */
.nfl-sheet-btn,.nfl-sheet-close,.nfl-sheet-backdrop{display:none}
@media (max-width:1100px){
  #main-content .match-center .nfl-sheet-btn{display:inline-flex;align-items:center;gap:4px;font-weight:800;border-color:#3d6a8f;color:#cfe8ff;background:#12263a}
  #main-content .match-center .nfl-sheet-btn[aria-expanded=true]{background:#1f4e78;border-color:#8fd0ee}
  .nfl-sheet-live{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#1f9d62;color:#fff;font-size:10px;font-weight:800}
  .nfl-sheet-live[hidden]{display:none}
  .match-center.match-board .watch-sidebar .nfl-panel{position:fixed!important;left:0;right:0;bottom:0;z-index:95;display:flex!important;flex-direction:column;
    max-height:min(82vh,760px);margin:0!important;border-radius:16px 16px 0 0!important;border:1px solid #3a5068;box-shadow:0 -12px 40px rgba(0,0,0,.55);
    background:#0e1828;transform:translateY(105%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s;padding-bottom:env(safe-area-inset-bottom)}
  .match-center.match-board.nfl-open .watch-sidebar .nfl-panel{transform:none;visibility:visible;transition:transform .22s ease}
  .match-center.match-board .watch-sidebar .nfl-panel>header{position:relative;padding:12px 56px 10px 14px!important}
  .match-center.match-board .watch-sidebar .nfl-panel>header::before{content:'';position:absolute;top:5px;left:50%;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:#3a5068}
  #main-content .match-center .nfl-sheet-close{display:flex;align-items:center;justify-content:center;position:absolute;top:4px;right:6px;width:44px;height:44px;min-width:44px;padding:0;border:0;background:none;color:#cfe0ee;font-size:18px}
  .match-center.match-board .watch-sidebar .nfl-panel #nfl-games{flex:1 1 auto;min-height:0;overflow-y:auto!important;overscroll-behavior:contain;max-height:none!important;display:grid!important}
  .nfl-sheet-backdrop{display:block;position:fixed;inset:0;z-index:94;background:rgba(3,8,15,.55)}
  .nfl-sheet-backdrop[hidden]{display:none}
  body.nfl-sheet-lock{overflow:hidden}
  @media (prefers-reduced-motion:reduce){.match-center.match-board .watch-sidebar .nfl-panel{transition:none}}
}
@media (max-width:640px){.match-center.match-board .watch-sidebar #nfl-games{grid-template-columns:1fr!important}}
/* compact game cards inside the phone/tablet sheet (same layout as the desktop column) */
@media (max-width:1100px){
  .match-center.match-board .watch-sidebar .nfl-game{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:8px;row-gap:3px;padding:8px 12px!important;border-bottom:1px solid #223449}
  .match-center.match-board .watch-sidebar .nfl-game>header{grid-column:1/-1;min-height:0;padding-right:84px}
  .match-center.match-board .watch-sidebar .nfl-score-row{min-height:0;padding:3px 8px}
  .match-center.match-board .watch-sidebar .nfl-possession{grid-column:1/-1;margin:2px 0 0!important;font-size:12px}
  .match-center.match-board .watch-sidebar .nfl-field{grid-column:1/-1;height:18px!important}
  .match-center.match-board .watch-sidebar .nfl-game-context{grid-column:1/-1;display:grid;gap:3px;margin:2px 0 0!important}
  .match-center.match-board .watch-sidebar .nfl-game-context>small{display:none}
  .match-center.match-board .watch-sidebar .nfl-game-context p{margin:0!important}
  .match-center.match-board .watch-sidebar .ng-last{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:12px!important;line-height:1.35;color:#ffe08a!important}
  .match-center.match-board .watch-sidebar .nfl-game:not(.is-live) .ng-last{color:#9db3c7!important}
  .match-center.match-board .watch-sidebar .ng-starters{font-size:11px!important}
  .match-center.match-board .watch-sidebar .ng-starters:empty{display:none}
  .match-center.match-board .watch-sidebar .ng-starters span{margin-right:4px!important;padding:1px 6px;border-radius:9px;background:#17283a}
  #main-content .match-center.match-board .watch-sidebar .nfl-game-context a.ng-link{position:absolute;top:2px;right:6px;min-height:32px!important;min-width:0!important;display:flex;align-items:center;padding:0 6px;border:0;background:none;font-size:11.5px;color:#8fd0ee}
  #main-content .match-center.match-board .watch-sidebar #nfl-filters{display:flex;gap:6px;padding:6px 10px}
  #main-content .match-center.match-board .watch-sidebar #nfl-filters button{flex:1;min-height:36px!important;padding:2px 8px;font-size:12px}
}
#main-content .match-center.match-board .watch-sidebar .ng-starters :is(a,span){display:inline-flex!important;align-items:center;min-height:24px!important;min-width:0!important;margin:0 4px 3px 0!important;padding:1px 7px!important;border-radius:10px;background:#17283a;font-size:11px}
/* small old phones (≈360×640): every pixel counts to keep all starters on one screen */
@media (max-width:380px) and (max-height:700px){
  #main-content .match-center.match-board .match-selector .mc-wp-label{display:none!important}
  .match-center.match-board .match-selector{padding-bottom:2px!important;margin-bottom:3px!important}
  .match-center.match-board .match-scores>div{padding:3px 6px!important}
  .match-center.match-board .match-scores strong{font-size:22px!important}
  .match-center.match-board .match-scores .mc-meter{margin-top:0!important;margin-bottom:3px!important}
  .match-center.match-board .watch-toolbar{margin-bottom:0!important}
}
/* matchup boxes: full team names, but the league's ESPN abbreviations on phones so nothing gets cut off */
.match-center.match-board .match-selector .tn-abbr{display:none}
@media (max-width:640px){
  .match-center.match-board .match-selector .tn-full{display:none}
  .match-center.match-board .match-selector .tn-abbr{display:inline;font-weight:700;letter-spacing:.02em}
}
/* short landscape phones: the page chrome must not eat the screen or hide the last section */
@media (max-height:500px) and (max-width:1100px){
  body:has(.match-center) .site-header{display:none!important}
  .watch-mode #match-scorebar{position:static!important}
  body:has(.match-center) #main-content{padding-bottom:96px!important}
}
/* bigger invisible tap area for the small ▶ buttons (the visible badge stays small so the lineup still fits) */
#main-content .match-center.match-board .match-player>button.mp-clip,#main-content .match-center.match-board .match-scores .mc-reel{position:relative;overflow:visible}
#main-content .match-center.match-board .match-player>button.mp-clip::after,#main-content .match-center.match-board .match-scores .mc-reel::after{content:'';position:absolute;inset:-10px -8px}
/* "what it takes" + still-to-play line under each team in the score header */
.match-center.match-board .match-scores .mc-take{display:block;grid-column:1/-1;margin-top:2px;font-size:11px!important;line-height:1.3;color:#9db3c7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.match-center.match-board .match-scores .mc-take i{font-style:normal;color:#7f93a8}
.match-center.match-board .match-scores .mc-need{color:#ffb4a8}
.match-center.match-board .match-scores .mc-up{color:#8ff0c8}
.match-center.match-board .mc-bench-pts{color:#f5c451}
@media (max-width:640px){
  .match-center.match-board .match-scores .mc-take{font-size:9.5px!important}
  .match-center.match-board .match-scores .mc-take-who,.match-center.match-board .match-scores .mc-take-proj{display:none}
}
.match-center.match-board .match-scores .mc-take-ph{display:none}
@media (max-width:640px){
  .match-center.match-board .match-scores .mc-take{display:none!important}
  .match-center.match-board .match-scores small:has(.mc-take-ph) .mc-pace{display:none}
  .match-center.match-board .match-scores .mc-take-ph{display:inline}
}
#main-content .match-center .mc-alerts-btn[aria-pressed=true]{background:#1f4e3a;border-color:#6fe4c0;color:#d9fff0}
@media (max-width:640px){#main-content .match-center .mc-alerts-word{display:none}#main-content .match-center .mc-alerts-btn{padding:2px 8px!important}}
/* tablets too: the short "Needs / Up" goes in the existing line so the lineup keeps fitting (1024×768) */
@media (min-width:641px) and (max-width:1100px){
  .match-center.match-board .match-scores .mc-take{display:none!important}
  .match-center.match-board .match-scores small:has(.mc-take-ph) .mc-pace{display:none}
  .match-center.match-board .match-scores .mc-take-ph{display:inline}
}
/* Optimal: fixed-size button, countdown drawn as a draining bar (no text change → no layout shift) */
#main-content .match-center .mc-optimal-btn{position:relative;overflow:hidden;min-width:0}
#main-content .match-center .mc-optimal-btn[aria-pressed=true]{background:#3a2c05;color:#f5c451}
#main-content .match-center .mc-optimal-btn[aria-pressed=true]::before{content:'';position:absolute;inset:0;background:#f5c451;opacity:.3;transform-origin:left;transform:scaleX(var(--opt-left,1));transition:transform .1s linear;pointer-events:none}
/* Optimal swap-ins stay at full strength even when their game is over */
.match-center.match-board .match-player.is-optimal-in>a:not(.mp-clip),.match-center.match-board .match-player.is-optimal-in>.mp-sit,.match-center.match-board .match-player.is-optimal-in>b{opacity:1!important;filter:none!important}
.match-center.match-board .match-player.is-optimal-in .match-player-name{color:#fff!important}
/* in-place NFL game box score (desktop column + phone sheet) */
.match-center.match-board .match-player .mp-game[data-game]{cursor:pointer;text-decoration:underline dotted rgba(143,208,238,.45);text-underline-offset:2px}
.match-center.match-board .match-player .mp-game[data-game]:hover{color:#cfe8ff}
.match-center.match-board .mp-sit[data-game]{cursor:pointer;border-radius:6px}
.match-center.match-board .mp-sit[data-game]:hover,.match-center.match-board .mp-sit[data-game]:focus-visible{outline:1px solid #8fd0ee;outline-offset:1px}
.nfl-panel .nfl-game-view{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.nfl-panel .nfl-game-view[hidden]{display:none}
.nfl-panel.is-game-open>#nfl-filters,.nfl-panel.is-game-open>#nfl-games{display:none!important}
.nfl-panel .ngv-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-bottom:1px solid #223449}
#main-content .nfl-panel .ngv-back{min-height:34px!important;padding:4px 10px;font-size:12px;font-weight:700;border-radius:8px;background:#12263a;border:1px solid #3d6a8f;color:#cfe8ff}
.nfl-panel .ngv-full{font-size:11.5px;color:#8fd0ee}
.nfl-panel .nfl-game-view iframe{flex:1 1 auto;width:100%;min-height:420px;border:0;background:#0b1522}
@media (min-width:1101px){.nfl-panel .nfl-game-view iframe{min-height:0}}
#main-content .match-center.match-board .watch-sidebar .nfl-panel.is-game-open #nfl-games,
#main-content .match-center.match-board .watch-sidebar .nfl-panel.is-game-open #nfl-filters{display:none!important}
/* desktop: the whole cell opens the game; the name is the profile link */
@media (min-width:1101px){
  .match-center.match-board .match-player[data-game-cell]{cursor:pointer}
  .match-center.match-board .match-player[data-game-cell]:hover{outline:1px solid rgba(143,208,238,.45);outline-offset:-1px}
  .match-center.match-board .match-player .match-player-name{cursor:pointer}
  .match-center.match-board .match-player .match-player-name:hover{text-decoration:underline;text-underline-offset:2px}
  .match-center.match-board .match-player .mp-game[data-game]{text-decoration:none}
}
/* ---- my team (green) vs my opponent (red), everywhere on the Live page ---- */
.match-center.match-board .match-player.is-mine .match-player-name{color:#7ff0b8!important}
.match-center.match-board .match-player.is-opp .match-player-name{color:#ff9d92!important}
.match-center.match-board .match-player.is-mine .match-player-name::before,.match-center.match-board .match-player.is-opp .match-player-name::before{content:'';display:inline-block;width:6px;height:6px;margin:0 5px 1px 0;border-radius:50%;vertical-align:middle}
.match-center.match-board .match-player.is-mine .match-player-name::before{background:#4ee5a0}
.match-center.match-board .match-player.is-opp .match-player-name::before{background:#ff7a70}
#main-content .match-center.match-board .watch-sidebar .ng-starters [data-side=mine]{background:#123d2e!important;color:#8ff0c8!important;box-shadow:inset 0 0 0 1px #2f8f68}
#main-content .match-center.match-board .watch-sidebar .ng-starters [data-side=opp]{background:#43191a!important;color:#ffb0a8!important;box-shadow:inset 0 0 0 1px #9a3d38}
#live-play-log em{font-style:normal}
#live-play-log em[data-side=mine]{color:#8ff0c8;font-weight:700}
#live-play-log em[data-side=opp]{color:#ffb0a8;font-weight:700}
.live-ticker .lt-item.lt-mine{color:#8ff0c8!important;border-color:#4ee5a0!important}
.live-ticker .lt-item.lt-opp{color:#ffb0a8!important;border-color:#ff7a70!important}
/* swing badge in a player's game line */
.match-center.match-board .mp-swing{color:#f5c451;font-weight:700}
/* 🔥 biggest game for you */
#nfl-games .ng-hot{grid-column:1/-1;margin:0;padding:5px 10px;font-size:11px;font-weight:800;color:#1a1300;background:linear-gradient(90deg,#f5c451,#ff9f43)}
.match-center.match-board .watch-sidebar .nfl-game.is-hot{box-shadow:inset 3px 0 #f5c451!important;background:#1d2a1a!important}
/* ---- TV mode ---- */
body.sffl-tv .site-header,body.sffl-tv .mobile-bottom-nav,body.sffl-tv .skip-link,body.sffl-tv #match-controls,
body.sffl-tv .match-center .watch-links,body.sffl-tv .match-center .mc-legend,body.sffl-tv .match-center .watch-notes{display:none!important}
body.sffl-tv{cursor:none}
body.sffl-tv #main-content{padding-top:8px!important}
body.sffl-tv .match-center.is-tv .watch-toolbar h2{font-size:30px}
body.sffl-tv .match-center.is-tv .watch-toolbar p{font-size:16px}
body.sffl-tv .match-center.is-tv .match-scores h3{font-size:22px!important}
body.sffl-tv .match-center.is-tv .match-scores strong{font-size:52px!important}
body.sffl-tv .match-center.is-tv .match-scores small{font-size:14px!important}
body.sffl-tv .match-center.is-tv .match-player-name{font-size:18px!important}
body.sffl-tv .match-center.is-tv .match-player .mp-line{font-size:13.5px!important}
body.sffl-tv .match-center.is-tv .match-player>b{font-size:30px!important}
body.sffl-tv .match-center.is-tv .match-selector button div>span{font-size:14px}
body.sffl-tv .match-center.is-tv .match-selector button div b{font-size:17px}
.match-center .mc-team-prompt{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:4px 0 6px;padding:6px 10px;border:1px solid #3d6a8f;border-radius:10px;background:#12263a;font-size:12px;color:#cfe0ee}
.match-center .mc-team-prompt label{display:flex;align-items:center;gap:6px;font-weight:800;color:#8fd0ee}
.match-center .mc-team-prompt select{min-height:34px;padding:2px 6px;border:1px solid #3d6a8f;border-radius:8px;background:#0e1828;color:#e2f0ff;font-size:12.5px}
.match-center .mc-team-prompt span{color:#9db3c7;font-size:11px}
#main-content .match-center .mc-team-prompt button{margin-left:auto;min-width:34px!important;min-height:34px!important;padding:0;border:0;background:none;color:#9db3c7}
/* phone score header line stays on one line ("2 playing · Needs 29") */
@media (max-width:1100px){.match-center.match-board .match-scores>div>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media (max-width:640px){.match-center.match-board .match-scores small:has(.mc-take-ph) .mc-now{display:none}}
.match-center.match-board .mc-sep{color:#9db3c7;font-weight:400}
