/* motion finalC1016 (#75): durations / easings run on the --gw-dur-* / --gw-ease-* tokens defined in gw-base.css */
/* gw-today.css (home1014, Shane 10/14): the member Today page (/today/, js/gw-today.js). Phone first: one column at
   375 with 44px+ rows and taps; two columns from 980px (decisions left, market + news right). Needs gw-base.css tokens. */
.gw-today main{display:block}
.td-wrap{max-width:1180px;margin:0 auto;padding:84px 16px 32px}
.td-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 16px;margin:6px 0 14px}
.td-kick{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gw-gold)}
.td-h1{margin:4px 0 0!important;font-size:30px;font-weight:800;line-height:1.1;letter-spacing:-.025em;color:var(--gw-text)}
.td-hi{margin:6px 0 0!important;font-size:15px;line-height:1.45;color:var(--gw-text-2)}
.td-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;color:var(--gw-muted)}
.td-tier{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:700;
  color:var(--gw-slate-strong);background:var(--gw-slate-bg);border:1px solid var(--gw-slate-line)}
.td-tier--plays,.td-tier--aipro{color:var(--gw-gold-soft);background:rgba(212,160,23,.12);border-color:rgba(212,160,23,.4)}
.td-tier--charts{color:#bfe3c9;background:rgba(74,222,128,.10);border-color:rgba(74,222,128,.32)}
.td-last{margin:0 0 12px!important;font-size:12.5px;color:var(--gw-faint)}

/* sign-in box (logged out) */
.td-signin{display:grid;gap:10px;margin:0 0 16px;padding:16px;border-radius:16px;background:linear-gradient(135deg,rgba(98,28,45,.55),rgba(23,13,13,.9));border:1px solid rgba(212,160,23,.35)}
.td-signin[hidden]{display:none}
.td-signin h2{font-size:17px;font-weight:750;color:var(--gw-text)}
.td-signin p{font-size:14px;line-height:1.45;color:var(--gw-text-2)}
.td-signin .td-btns{display:flex;flex-wrap:wrap;gap:8px}

/* buttons */
.td-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:12px;font-size:14.5px;font-weight:700;
  text-decoration:none;cursor:pointer;border:1px solid var(--gw-line-strong);background:var(--gw-surface-3);color:var(--gw-text);font-family:inherit}
.td-btn--gold{background:var(--gw-grad-gold);color:#1a0d0d;border-color:transparent}
.td-btn:hover{filter:brightness(1.06)}

/* tiles: 2 x 2 on a phone, 4 across from 760px; label / value / footnote on one shared grid */
.td-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px}
.td-tile{display:grid;grid-template-rows:auto auto auto;align-content:start;gap:2px;min-height:92px;padding:12px 14px;border-radius:14px;background:var(--gw-surface);
  border:1px solid var(--gw-line);text-decoration:none;color:inherit}
.td-tile:hover{border-color:rgba(212,160,23,.45)}
.td-tl{font-size:12px;font-weight:650;color:var(--gw-muted);line-height:1.25;min-height:30px}
.td-tv{font-size:26px;font-weight:800;line-height:1.1;color:var(--gw-text);font-variant-numeric:tabular-nums}
.td-ts{font-size:12px;color:var(--gw-faint);line-height:1.3}

/* sections */
.td-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.td-col{display:grid;gap:14px;align-content:start;min-width:0}
.td-sec{min-width:0;padding:16px 14px 12px;border-radius:18px;background:var(--gw-surface);border:1px solid var(--gw-line);scroll-margin-top:80px}
.td-sh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.td-h2{font-size:16px;font-weight:750;letter-spacing:-.01em;color:var(--gw-text);display:flex;align-items:center;gap:8px}
.td-h2 svg{width:18px;height:18px;fill:none;stroke:var(--gw-gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.td-h3{margin:14px 0 4px!important;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--gw-muted)}
.td-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;color:var(--gw-slate-strong);background:var(--gw-slate-bg);border:1px solid var(--gw-slate-line);white-space:nowrap}
.td-note{margin:0 0 6px!important;font-size:13px;line-height:1.4;color:var(--gw-muted)}
.td-empty{margin:4px 0 8px!important;font-size:14px;line-height:1.45;color:var(--gw-text-2)}
.td-tip{margin:12px 0 2px!important;font-size:13px;color:var(--gw-muted)}
.td-tip a{color:var(--gw-gold-soft)}
.td-count{margin:0 0 8px!important;font-size:15px;color:var(--gw-text-2)}
.td-count b{color:var(--gw-text);font-size:18px}
.td-body[aria-busy="true"],.td-loading{color:var(--gw-faint);font-size:13.5px}

/* rows */
.td-list{list-style:none;margin:0;padding:0}
.td-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;min-height:52px;padding:9px 0;border-top:1px solid var(--gw-line-soft)}
.td-list>.td-row:first-child,.td-list>.td-hide>.td-row:first-child{border-top:0}
.td-play{grid-template-columns:24px minmax(0,1fr) auto 40px}
.td-see{grid-template-columns:minmax(0,1fr) auto 62px}
.td-news{display:block;padding:0}
.td-rowa{display:grid;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:10px;min-height:52px;padding:9px 0;color:inherit;text-decoration:none}
a.td-rowa:hover .td-nt{color:var(--gw-gold-soft)}
.td-rm{display:grid;gap:2px;min-width:0}
.td-rr{display:grid;gap:2px;justify-items:end;text-align:right;font-variant-numeric:tabular-nums;min-width:0}
.td-rr b{font-size:14px;color:var(--gw-text);white-space:nowrap}
.td-pick{font-size:15px;color:var(--gw-text);line-height:1.3}
.td-px{font-size:15px;color:var(--gw-gold-soft)!important}
.td-u{justify-self:end;font-size:13px;font-weight:800;color:var(--gw-text);background:var(--gw-surface-3);border-radius:8px;padding:4px 7px;min-width:36px;text-align:center}
.td-mk{font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--gw-slate-strong);background:var(--gw-slate-bg);border:1px solid var(--gw-slate-line);border-radius:6px;padding:1px 5px;vertical-align:2px}
.td-sub{font-size:12.5px;color:var(--gw-muted);line-height:1.35;overflow-wrap:anywhere}
.td-sp{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.05em;color:var(--gw-slate-strong);margin-right:6px}
.td-nt{font-size:14px;line-height:1.35;color:var(--gw-text-2)}
.td-new{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:800;letter-spacing:.04em;color:#1a0d0d;background:var(--gw-gold);border-radius:6px;padding:1px 6px;vertical-align:1px}
.td-logo{width:22px;height:22px;object-fit:contain;flex:0 0 auto;vertical-align:middle}
.td-logo--x{display:inline-block;border-radius:50%;background:var(--gw-surface-3)}
.td-pair{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:nowrap;overflow:hidden}
.td-ab{font-size:14px;color:var(--gw-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.td-pair .td-logo,.td-pair .td-at{flex:0 0 auto}
/* two-line rows (G&W sees, line moves): teams + chip on top, sport/time + the number below */
.td-2l{display:grid;gap:3px;min-height:52px;padding:9px 0;border-top:1px solid var(--gw-line-soft)}
.td-list>.td-2l:first-child{border-top:0}
.td-l1,.td-l2{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.td-l2{flex-wrap:wrap;row-gap:2px}
.td-val{font-size:14px;color:var(--gw-text-2);text-align:right;margin-left:auto;font-variant-numeric:tabular-nums}
.td-val b{color:var(--gw-text);white-space:nowrap}
.td-at{font-size:12px;color:var(--gw-faint)}

/* kind chips (injury Out = red, questionable = amber, confirmed = green, ratings = slate) */
.td-rowa>.td-k{display:inline-flex}
.td-rowa>.td-k{align-items:center;justify-content:center;min-height:24px;padding:0 6px;border-radius:7px;font-size:11px;font-weight:800;letter-spacing:.02em;text-transform:none;
  border:1px solid transparent}
.td-k--r{color:#fecaca;background:rgba(248,113,113,.16);border-color:rgba(248,113,113,.4)}
.td-k--a{color:#fde68a;background:rgba(251,191,36,.13);border-color:rgba(251,191,36,.38)}
.td-k--g{color:#bbf7d0;background:rgba(74,222,128,.13);border-color:rgba(74,222,128,.38)}
.td-k--s{color:var(--gw-slate-strong);background:var(--gw-slate-bg);border-color:var(--gw-slate-line)}

/* G&W vs market (Analytics: side by side, no gap number) */
.td-card{grid-template-columns:minmax(0,1fr)}
.td-gw{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;align-items:baseline;font-size:13.5px;color:var(--gw-text-2);font-variant-numeric:tabular-nums}
.td-gw b{color:var(--gw-text)}
.td-gwk{font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--gw-gold)}
.td-gw--m .td-gwk{color:var(--gw-slate)}
/* edge chips (Official Plays): same 3 levels as Model Lines */
.td-edge{flex:0 0 auto;justify-self:end;min-width:56px;text-align:center;font-size:13px;font-weight:800;border-radius:8px;padding:5px 6px;font-variant-numeric:tabular-nums}
.td-edge.e1{color:var(--gw-text);background:var(--gw-surface-3)}
.td-edge.e2{color:var(--gw-gold-soft);background:rgba(212,160,23,.16);box-shadow:inset 0 0 0 1px rgba(212,160,23,.4)}
.td-edge.e3{color:#1a0d0d;background:var(--gw-gold)}
/* line move arrow */
.td-mv{display:none}
.td-l1 .td-mv{display:inline-grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border-radius:8px;font-size:11px}
.td-mv.up{color:#bbf7d0;background:rgba(74,222,128,.12)}
.td-mv.dn{color:#fecaca;background:rgba(248,113,113,.12)}

/* systems */
.td-sys{grid-template-columns:minmax(0,1fr) 40px;align-items:start}
.td-mt{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:3px;font-size:13px;color:var(--gw-text-2)}
.td-cnt{justify-self:end;min-width:34px;text-align:center;font-size:15px;font-weight:800;border-radius:9px;padding:6px 0;background:var(--gw-surface-3);color:var(--gw-faint)}
.td-cnt.on{background:rgba(212,160,23,.16);color:var(--gw-gold-soft);box-shadow:inset 0 0 0 1px rgba(212,160,23,.4)}

/* slate */
.td-slsp{margin-top:6px}
.td-slh{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px}
.td-slh a{display:inline-flex;align-items:center;min-height:40px;font-size:12.5px;color:var(--gw-muted);text-decoration:none}
.td-slh a:hover{color:var(--gw-gold-soft)}
.td-sl{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:44px;border-top:1px solid var(--gw-line-soft);font-variant-numeric:tabular-nums}
.td-slt{font-size:12.5px;color:var(--gw-muted);white-space:nowrap}
.td-sll{font-size:13px;color:var(--gw-text-2);white-space:nowrap;text-align:right;max-width:46vw;overflow:hidden;text-overflow:ellipsis}
.td-live{font-style:normal;font-size:11px;font-weight:800;color:#bbf7d0}

/* locks, ghosts, more links */
.td-lock{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px 12px;align-items:center;margin-top:10px;padding:12px;border-radius:14px;
  background:rgba(98,28,45,.22);border:1px dashed rgba(212,160,23,.38)}
.td-lock p{font-size:13.5px;line-height:1.4;color:var(--gw-text-2)}
.td-lock .td-btn{grid-column:1/-1;width:100%}
.td-lock-i{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:rgba(212,160,23,.12);color:var(--gw-gold)}
.td-lock-i svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.td-ghost{grid-template-columns:24px minmax(0,1fr);opacity:.55}
.td-bar{display:block;height:10px;width:70%;border-radius:6px;background:var(--gw-surface-3)}
.td-bar--s{width:45%;height:8px;margin-top:4px}
.td-more{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:4px;font-size:14px;font-weight:650;color:var(--gw-gold-soft);text-decoration:none}
.td-more:hover{text-decoration:underline}
.td-show{display:flex;align-items:center;justify-content:center;width:100%;min-height:42px;margin-top:6px;border-radius:10px;border:1px solid var(--gw-line);
  background:var(--gw-surface-2);color:var(--gw-text-2);font:600 13.5px/1 inherit;cursor:pointer}
.td-show:hover{border-color:rgba(212,160,23,.45)}

@media (min-width:760px){
  .td-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
  .td-h1{font-size:34px}
  .td-lock{grid-template-columns:34px minmax(0,1fr) auto}
  .td-lock .td-btn{grid-column:auto;width:auto}
}
@media (min-width:980px){
  .td-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start}
  .td-sec{padding:18px 18px 12px}
}
/* w3int1014 hotfix: phone slate rows. The line ("Bobcats −14.5 · O/U 70.5") took the row and squeezed the team pair to a
   single letter ("E", "U"). Below 560px the line drops under the teams, and a name can never shrink below a few letters. */
.td-pair .td-ab{min-width:3.2ch}
@media (max-width:560px){
  .td-sl{grid-template-columns:52px minmax(0,1fr);row-gap:1px;padding:7px 0;align-items:start}
  .td-sl .td-slt{grid-row:1/span 2;padding-top:3px}
  .td-sl .td-pair{grid-column:2}
  .td-sl .td-sll{grid-column:2;text-align:left;max-width:none;font-size:12.5px;color:var(--gw-muted)}
}

/* align1015 (Shane 10/15, "aligning boxes"): desktop cards sit in SHARED ROWS so side-by-side boxes have the same top and
   bottom edges (Our plays | Line moves, What G&W sees | Lineups & injuries); Your systems + The slate run full width
   below. The two .td-col stacks dissolve into the grid (display:contents) at 980px+; phones keep one column. */
@media (min-width:980px){
  .td-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row dense;align-items:stretch}
  .td-col{display:contents}
  .td-grid>.td-col:first-child>.td-sec{grid-column:1}
  .td-grid>.td-col:last-child>.td-sec{grid-column:2}
  .td-grid>.td-col>#td-systems,.td-grid>.td-col>#td-slate{grid-column:1/-1}
  #td-systems{order:1}
  #td-slate{order:2}
}

/* w3b1014 (W6 / #20): Your games, Following marks, setup prompt, "your best price" chips inside rows */
.td-fol{display:inline-flex;align-items:center;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;
  color:var(--gw-gold-soft);background:rgba(212,160,23,.12);border:1px solid rgba(212,160,23,.35);white-space:nowrap}
.td-tag{flex:none;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:#bfe3c9;background:rgba(74,222,128,.10);border:1px solid rgba(74,222,128,.32)}
.td-setup{display:grid;gap:10px;margin:0 0 12px;padding:12px 14px;border-radius:12px;background:rgba(212,160,23,.07);border:1px dashed rgba(212,160,23,.4)}
.td-setup p{margin:0!important;font-size:14px;line-height:1.45;color:var(--gw-text-2)}
.td-setup .td-btn{justify-self:start}
.td-yg .td-l1{justify-content:space-between}
.td-row .gwyb-row,.td-2l .gwyb-row{margin-top:2px}
#td-yours{border-color:rgba(212,160,23,.32)}
/* w3int1014: a team = logo + exact name, one unit; on phones a long pair wraps BETWEEN the two teams (never mid-team) */
.td-tm{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%}
.td-tm .td-ab{min-width:0}
@media (max-width:560px){.td-pair{flex-wrap:wrap;row-gap:2px}}
/* align1015 + w3b Your games: the member "Your games" card takes its own full-width row at the top, so Our plays | Line moves
   and What G&W sees | Lineups & injuries still pair into rows with shared edges (no card left alone beside an empty cell) */
@media (min-width:980px){
  .td-grid>.td-col>#td-yours{grid-column:1/-1;order:-1}
}

/* simtheater1015: G&W sim of the day card (under the four tiles; full width; 16:9 poster) */
.td-sim{display:grid;grid-template-columns:1fr;gap:0;margin:0 0 16px;border-radius:14px;overflow:hidden;text-decoration:none;color:#fff;
  background:linear-gradient(160deg,#621c2d,#3e0f1b);border:1px solid rgba(212,160,23,.55);box-shadow:0 2px 10px rgba(0,0,0,.18)}
.td-sim-media{position:relative;display:block;aspect-ratio:16/9;background:#05070f}
.td-sim-media img{display:block;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}
.td-sim-play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(18,5,9,.78);
  border:3px solid #d4a017;display:flex;align-items:center;justify-content:center}
.td-sim-play svg{width:30px;height:30px;fill:#f0c64a;margin-left:4px}
.td-sim-txt{display:flex;flex-direction:column;gap:4px;padding:12px 14px 14px}
.td-sim-k{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#f0c64a}
.td-sim-t{font-size:17px;line-height:1.25}
.td-sim-w{font-size:13px;color:#ead5d9}
.td-sim-h{font-size:13.5px;color:#f6e9ec}
.td-sim-btn{align-self:flex-start;margin-top:6px;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:10px;background:#d4a017;color:#3e0f1b;font-weight:800;font-size:14px}
.td-sim:hover .td-sim-btn,.td-sim:focus-visible .td-sim-btn{background:#f0c64a}
/* simtheater1015 v2 (Shane 10/15): the sim visual is BIG everywhere — full-width 16:9 poster, a big play button;
   375: text below the poster; >=760: the text sits on a gradient over the poster's lower edge */
.td-sim-play{width:84px;height:84px;margin:-42px 0 0 -42px;border-width:3px;box-shadow:0 4px 18px rgba(0,0,0,.45);transition:transform var(--gw-dur-fast,150ms)}
.td-sim-play svg{width:40px;height:40px;margin-left:6px}
.td-sim:hover .td-sim-play,.td-sim:focus-visible .td-sim-play{transform:scale(1.06)}
@media (min-width:760px){.td-sim{position:relative;grid-template-columns:1fr}
  /* simfloor1028: the text band is SOLID behind the words (was .82-.94: the poster's own lower caption / stat lines
     ghosted through behind "76ers at Pacers"; NFL/NCAAF/NHL posters carry the same lower text) */
  .td-sim-txt{position:absolute;left:0;right:0;bottom:0;padding:56px 24px 20px;background:linear-gradient(180deg,rgba(18,5,9,0),rgba(18,5,9,.9) 38%,#120509 52%);
    flex-direction:row;flex-wrap:wrap;align-items:flex-end;column-gap:14px;row-gap:4px}
  .td-sim-k{flex-basis:100%}.td-sim-t{font-size:26px}.td-sim-h{flex-basis:100%;max-width:62ch}
  .td-sim-btn{position:absolute;right:24px;bottom:20px;margin:0}
  .td-sim-play{width:104px;height:104px;margin:-60px 0 0 -52px}.td-sim-play svg{width:50px;height:50px}}

/* principles1016 (W2.3 / W1.1): a game row on Today opens its game page; the whole row is the tap target */
a.td-gl{color:inherit;text-decoration:none}
.td-sl,.td-2l{position:relative}
a.td-gl::after{content:"";position:absolute;inset:0;z-index:1}
a.td-gl:hover .td-ab,a.td-gl:focus-visible .td-ab{color:var(--gw-gold-soft,#fcd34d)}
a.td-gl:focus-visible{outline:none}
.td-sl:focus-within,.td-2l:focus-within{outline:2px solid var(--gw-gold-soft,#fcd34d);outline-offset:2px;border-radius:8px}
/* principles1016 (W2.1): at phone width the header sat 84px under the nav; the day's numbers move up one thumb */
@media (max-width:560px){.td-wrap{padding-top:24px}}

/* mob1016: slate time column fits "10:10 AM" / "12:40 PM" (spilled 6-7px into the matchup at 375) */
.td-sl{grid-template-columns:64px minmax(0,1fr) auto}
@media (max-width:560px){.td-sl{grid-template-columns:62px minmax(0,1fr)}}

/* Today official plays: date on its own gold line; today's full slate stays visible. */
.td-play-time{display:block;color:var(--gw-gold-soft);font-size:12.5px;font-weight:650;line-height:1.4}
.td-play-today{margin:10px 0 16px;padding:10px 12px 4px;border:1px solid var(--gw-gold);border-radius:12px;background:rgba(212,160,23,.045)}
.td-play-today>h3{margin:0 0 5px!important;color:var(--gw-gold-soft);font-size:13px;font-weight:800;letter-spacing:.02em}
/* vis1024: running total of the finished plays (same grades as the result chips) */
.td-run{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;font-size:12.5px;line-height:1.3}
.td-run b{padding:3px 8px;border-radius:999px;background:var(--gw-surface-2,rgba(255,255,255,.06));font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.td-run b.is-w{color:#34d399;background:rgba(52,211,153,.12)}.td-run b.is-l{color:#f87171;background:rgba(248,113,113,.12)}.td-run b.is-p{color:var(--gw-muted)}
.td-run-k{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gw-muted)}
@media (max-width:420px){.td-run{gap:5px;font-size:12px}.td-run b{padding:3px 7px}.td-run-k{flex-basis:100%;margin-bottom:-1px}}
.td-logo--pl{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--gw-surface-3);flex:0 0 auto}
.td-logo--pl svg{width:14px;height:14px;fill:none;stroke:var(--gw-muted);stroke-width:2;stroke-linecap:round}
.td-play-logos{display:flex;flex-direction:column;align-items:center;gap:5px}
@media(max-width:560px){
  .td-play-today{padding:9px 9px 3px}
  .td-play{grid-template-columns:24px minmax(0,1fr) 40px;gap:6px 8px}
  .td-play>.td-rr{grid-column:2;grid-row:2;display:flex;justify-content:flex-start;align-items:center;gap:10px;text-align:left}
  .td-play>.td-u{grid-column:3;grid-row:1;align-self:start}
  .td-play>.td-logo,.td-play>.td-play-logos{align-self:start;margin-top:3px}
}

/* certqa1021: game links under Today rows were 22px tall; extend the hit area to 40px without changing the layout */
@media (max-width:760px){a.td-pair.td-gl{position:relative}a.td-pair.td-gl::after{content:"";position:absolute;left:0;right:0;top:-9px;bottom:-9px}}
