/* The odds screen (/odds.html, /<sport>-odds.html). Rides on styles.css and
   school.css for the nav, fonts and footer; only the grid lives here. */
.oz{position:relative;max-width:1500px;margin:0 auto;padding:calc(var(--nav-h,64px) + 32px) 28px 40px}
.oz-head h1{font-family:'Rajdhani',sans-serif;font-size:clamp(32px,4.4vw,54px);font-weight:700;line-height:.95;text-transform:uppercase;color:var(--white);margin:6px 0 10px}
.oz-head .lede{color:var(--hero-dim);font-size:15px;max-width:760px}
.oz-head .lede a{color:var(--green)}
.oz-tag{font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--green)}

.oz-sports{display:flex;gap:6px;flex-wrap:wrap;margin:22px 0 14px}
.oz-sports a{font-family:'Rajdhani',sans-serif;font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);text-decoration:none;padding:8px 13px;border:1px solid var(--border2);border-radius:4px;background:var(--card)}
.oz-sports a:hover{color:var(--text)}
.oz-sports a[aria-current="page"]{color:var(--bg);background:var(--green);border-color:var(--green)}

.oz-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:12px}
.oz-seg{display:inline-flex;border:1px solid var(--border2);border-radius:5px;overflow:hidden;background:var(--card)}
.oz-seg button,.oz-dates button{font-family:'Rajdhani',sans-serif;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:none;border:0;color:var(--muted);padding:8px 14px;cursor:pointer}
.oz-seg button+button{border-left:1px solid var(--border2)}
.oz-seg button[aria-pressed="true"]{color:var(--bg);background:var(--green)}
.oz-dates{display:flex;gap:4px;flex-wrap:wrap}
.oz-dates button{border:1px solid var(--border2);border-radius:4px;padding:6px 10px;font-size:13px}
.oz-dates button[aria-pressed="true"]{color:var(--text);border-color:var(--green);box-shadow:inset 0 -2px 0 var(--green)}

.oz-books{position:relative;margin-left:auto}
.oz-books summary{list-style:none;cursor:pointer;font-family:'Rajdhani',sans-serif;font-size:14px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--text);border:1px solid var(--border2);border-radius:5px;padding:8px 12px;background:var(--card)}
.oz-books summary::-webkit-details-marker{display:none}
.oz-books summary small{color:var(--muted);font-size:12px;margin-left:6px}
.oz-books-list{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:230px;background:var(--surface);
  border:1px solid var(--border2);border-radius:8px;padding:8px;box-shadow:0 16px 40px rgba(0,0,0,.6)}
.oz-books-list label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:4px;cursor:pointer;font-size:14px;color:var(--text)}
.oz-books-list label:hover{background:var(--card)}
.oz-books-list input{accent-color:#00ffa9;width:16px;height:16px}
.oz-books-list button{width:100%;margin-top:6px;background:none;border:1px solid var(--border2);border-radius:4px;color:var(--muted);
  font-family:'Rajdhani',sans-serif;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:7px;cursor:pointer}

/* The Premium+ banner: what the three locked columns are and the way in. */
.oz-plus{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:4px 0 14px;padding:12px 14px;border:1px solid rgba(0,255,169,.28);
  border-radius:8px;background:linear-gradient(90deg,rgba(0,255,169,.08),rgba(0,255,169,.02))}
.oz-plus[hidden]{display:none}
.oz-plus p{flex:1 1 320px;font-size:14px;color:var(--text);margin:0}
.oz-plus p b{color:var(--green)}
.oz-unlock{display:inline-flex;align-items:center;gap:6px;font-family:'Rajdhani',sans-serif;font-size:14px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--bg);background:var(--green);border-radius:5px;padding:9px 14px;text-decoration:none;white-space:nowrap}
.oz-unlock:hover{filter:brightness(1.08)}
.oz-unlock.sm{font-size:11px;padding:4px 7px;letter-spacing:.06em}

/* The grid. Sideways scroll on a phone with the game column pinned. */
.oz-wrap{position:relative;overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface);
  -webkit-overflow-scrolling:touch}
.oz-t{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;min-width:760px}
.oz-t.loading{opacity:.45;transition:opacity .2s}
.oz-t th,.oz-t td{padding:0;border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;vertical-align:middle;height:44px}
.oz-t thead th{position:sticky;top:0;z-index:3;background:var(--card);font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 6px;height:auto}
.oz-t .c-game{position:sticky;left:0;z-index:2;background:var(--surface);text-align:left;padding:6px 12px;min-width:190px;max-width:240px;
  border-right:1px solid var(--border2)}
.oz-t thead .c-game{z-index:4;background:var(--card);color:var(--text)}
.oz-t tbody th.c-game{font-weight:400}
.oz-t .when{display:block;font-family:'Rajdhani',sans-serif;font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;line-height:1.3}
.oz-t .side{display:block;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:var(--text);line-height:1.3}
.oz-t .side b{font-weight:600}
.oz-t .side .pt{color:var(--hero-dim);font-weight:500;margin-left:4px}
.oz-t .nm-abbr{display:none}
.oz-t tbody tr.last th,.oz-t tbody tr.last td{border-bottom:1px solid var(--border2)}
.oz-t tbody.gm tr:not(.last) th,.oz-t tbody.gm tr:not(.last) td{border-bottom-color:rgba(19,32,24,.5)}

.oz-t .c-best{min-width:96px;background:rgba(0,255,169,.035)}
.oz-t .best{display:inline-flex;align-items:center;gap:7px;color:var(--green);font-weight:700;text-decoration:none;font-size:15px;padding:6px 8px;border-radius:5px}
.oz-t .best:hover{background:rgba(0,255,169,.1)}
.oz-t .c-avg{min-width:58px;color:var(--hero-dim)}
.oz-t .c-lk{min-width:70px;background:rgba(255,201,77,.025)}
.oz-t thead .c-lk{color:var(--gold)}
.oz-t .lk-i{font-size:10px}
.oz-t td.lk{position:relative;color:var(--hero-dim)}
.oz-t td.lk .ph{display:inline-block;filter:blur(5px);user-select:none;font-weight:600}
.oz-t td.v{font-weight:600;color:var(--text)}
.oz-t td.v small{display:block;font-size:10.5px;font-weight:500;color:var(--muted);line-height:1.1}
.oz-t td.v.pos{color:var(--green)}
.oz-t td.v.neg{color:var(--hero-dim)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.oz-t .c-bk{min-width:68px}
.oz-t thead .c-bk{vertical-align:bottom}
.oz-t .bk-nm{display:block;font-size:10px;letter-spacing:.06em;margin-top:3px;color:var(--muted)}
.oz-t td.c-bk a{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:44px;color:var(--text);
  text-decoration:none;font-weight:500}
.oz-t td.c-bk a:hover{background:rgba(255,255,255,.04)}
.oz-t td.c-bk small{font-size:10.5px;color:var(--muted);line-height:1.1}
.oz-t td.c-bk.is-best a{color:var(--green);font-weight:700}
.oz-t td.c-bk.off a{opacity:.5}
.oz-t td.none{color:var(--muted2)}
.bk-logo{width:22px;height:22px;border-radius:5px;object-fit:cover;display:inline-block;vertical-align:middle}
.oz-t .best .bk-logo{width:18px;height:18px;border-radius:4px}
.bk-ini{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;color:#fff;font-family:'Rajdhani',sans-serif;
  font-size:10px;font-weight:700;letter-spacing:.02em;vertical-align:middle}

/* An edge of 2%+ exists on this line. The size stays locked. */
.oz-t tr.edge th.c-game{box-shadow:inset 3px 0 0 var(--green)}
.oz-t tr.edge td,.oz-t tr.edge th{background-image:linear-gradient(90deg,rgba(0,255,169,.09),rgba(0,255,169,.03))}
.oz-t tr.edge td.c-best{box-shadow:inset 0 0 0 1px rgba(0,255,169,.35)}

.oz-t .live-tag{display:inline-block;font-family:'Rajdhani',sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.08em;color:#fff;
  background:#ff3b3b;border-radius:3px;padding:0 5px;margin-left:4px}
.oz-empty{padding:28px 16px !important;color:var(--hero-dim);white-space:normal !important;height:auto !important}

.oz-meta{font-size:12.5px;color:var(--muted);margin:10px 2px 0}
.oz-meta b.g{color:var(--green);font-weight:600}
.oz-rg{margin:18px 0 0;font-size:13px;color:var(--hero-dim);text-align:center;letter-spacing:.04em}
.oz-rg b{color:var(--text)}

.oz-learn{max-width:820px;margin:44px auto 0;color:var(--hero-dim);font-size:15px}
.oz-learn h2{font-family:'Rajdhani',sans-serif;font-size:24px;font-weight:700;text-transform:uppercase;color:var(--white);margin:26px 0 8px}
.oz-learn p{margin:0 0 12px}
.oz-learn a{color:var(--green)}
.oz-learn ul{margin:0 0 12px 20px}

/* The waitlist. */
.oz-modal{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:16px}
.oz-modal[hidden]{display:none}
.oz-card{position:relative;max-width:440px;width:100%;background:var(--surface);border:1px solid rgba(0,255,169,.4);border-radius:12px;padding:24px 22px;
  box-shadow:0 20px 60px rgba(0,0,0,.7)}
.oz-card h2{font-family:'Rajdhani',sans-serif;font-size:28px;font-weight:700;text-transform:uppercase;color:var(--white);margin:0 0 8px}
.oz-card p{font-size:14.5px;color:var(--hero-dim);margin:0 0 12px}
.oz-card ul{margin:0 0 16px 18px;color:var(--text);font-size:14.5px}
.oz-card button.go{width:100%;font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--bg);background:var(--green);border:0;border-radius:6px;padding:12px;cursor:pointer}
.oz-card .oz-x{position:absolute;top:8px;right:10px;background:none;border:0;color:var(--muted);font-size:24px;cursor:pointer}
#oz-wl-msg{margin-top:10px;color:var(--green);font-size:14px}

@media (max-width:900px){
  .oz{padding:calc(var(--nav-h,64px) + 20px) 16px 32px}
  .oz-books{margin-left:0}
  .oz-books-list{left:0;right:auto}
}
@media (max-width:640px){
  .oz-t{font-size:13px;min-width:0}
  .oz-t .c-game{min-width:118px;max-width:132px;padding:5px 8px}
  .oz-t .nm-full{display:none}
  .oz-t .nm-abbr{display:inline}
  .oz-t .c-best{min-width:78px}
  .oz-t .best{font-size:14px;gap:5px;padding:4px}
  .oz-t .c-bk{min-width:58px}
  .oz-t .c-lk{min-width:58px}
  .oz-t .bk-nm{display:none}
  .oz-seg button{padding:8px 11px}
  .oz-head .lede{font-size:14px}
  .oz-plus{padding:10px 12px}
  .oz-plus p{font-size:13px}
  .oz-sports{margin:16px 0 10px}
  .oz-sports a{padding:7px 10px;font-size:13px}
}

/* Column groups: sportsbooks, prediction markets, DFS apps (15 Oct 2026). */
.oz-t tr.grp th{position:static;background:var(--surface);padding:6px 6px 0;font-size:11px;letter-spacing:.14em;color:var(--muted);border-bottom:0;height:auto}
.oz-t tr.grp th.g-sp{border-right:0}
.oz-t tr.grp th.g-bk{color:var(--hero-dim);border-bottom:2px solid var(--border2)}
.oz-t tr.grp th.g-ex{color:#8fb7ff;border-bottom:2px solid rgba(46,92,255,.55)}
.oz-t tr.grp th.g-dfs{color:var(--gold);border-bottom:2px solid rgba(255,201,77,.5)}
.oz-t tr.grp small{font-size:10px;letter-spacing:.04em;text-transform:none;color:var(--muted);margin-left:6px}
.oz-t .c-ex{background:rgba(46,92,255,.045)}
.oz-t .c-dfs{background:rgba(255,201,77,.035)}
.oz-t .bk-fee{display:block;font-size:9px;letter-spacing:.04em;color:#8fb7ff;text-transform:none}
.oz-books-list .bk-h{font-family:'Rajdhani',sans-serif;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:6px 8px 2px}

/* Player props: a game per row, opened on demand. */
#oz-props[hidden]{display:none}
.pg{border:1px solid var(--border);border-radius:10px;background:var(--surface);margin-bottom:10px}
.pg summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:12px 14px;color:var(--text);font-size:15px}
.pg summary::-webkit-details-marker{display:none}
.pg summary .when{font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;min-width:110px}
.pg summary .at{color:var(--muted)}
.pg summary b{font-weight:600}
.pg .pg-hint{margin-left:auto;font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}
.pg[open] .pg-hint{opacity:.5}
.pg-body{padding:0 10px 12px}
.pg-stats{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}
.pg-stats button{font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:none;border:1px solid var(--border2);border-radius:4px;color:var(--muted);padding:5px 9px;cursor:pointer}
.pg-stats button[aria-pressed="true"]{color:var(--text);border-color:var(--green)}
.pt-t td.c-bk a{gap:0}
.pt-t .ou{font-size:11.5px;line-height:1.2;color:var(--text)}
.pt-t .c-dfs .ln{font-size:15px;font-weight:600}
.pt-t td.c-dfs.soft a{color:var(--green);box-shadow:inset 0 0 0 1px rgba(0,255,169,.4)}
.pt-t td.c-dfs.soft small{color:var(--green)}
.pt-t .c-flag{min-width:120px;white-space:normal;font-size:12px;color:var(--muted);padding:4px 6px}
.soft-chip{display:inline-block;margin:2px;padding:2px 6px;border-radius:4px;background:rgba(0,255,169,.1);color:var(--green);font-size:11.5px;font-weight:600;white-space:nowrap}
.pt-t td.v.sm{font-size:12px;line-height:1.35;white-space:nowrap;padding:4px 8px}
.pt-t .c-game .when{order:2}
.pg-wrap{border-radius:8px}
.oz-dates[hidden],.oz-wrap[hidden]{display:none}
/* Real logos only (15 Oct 2026). A mark that is dark or transparent on the
   dark ground sits on a tile: light behind a transparent mark, a faint edge
   round a black square. */
.bk-logo.tile-light{background:#f1f5f2;padding:2px;box-sizing:border-box}
.bk-logo.tile-dim{box-shadow:0 0 0 1px rgba(255,255,255,.22)}
.oz-t thead .bk-logo{width:26px;height:26px}
/* MODEL % (Premium): the blurred cells are the way in; one free preview. */
.oz-t td.c-model a.m-cta{display:flex;align-items:center;justify-content:center;gap:4px;height:100%;min-height:44px;color:var(--hero-dim);text-decoration:none}
.oz-t td.c-model a.m-cta:hover{background:rgba(0,255,169,.06)}
.oz-t td.c-model .ph{filter:blur(5px);user-select:none;font-weight:600}
.oz-t td.c-model.teaser{color:var(--green)}
.oz-t td.c-model .fp{display:block;font-size:9.5px;letter-spacing:.04em;color:var(--muted);font-weight:500}
.oz-t tr.grp th.g-sp{text-align:right;padding-right:6px}
.oz-t .m-cta-h{display:inline-block;font-family:'Manrope',sans-serif;font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--gold);text-decoration:none;white-space:nowrap}
.oz-t .m-cta-h:hover{text-decoration:underline}
/* The free tier: games past the first three, blurred, with one band to Premium. */
.oz-t tbody.locked th.c-game{opacity:.85}
.oz-t td.ph-cell{color:var(--hero-dim)}
.oz-t td.ph-cell .ph{filter:blur(5px);user-select:none;font-weight:600}
.oz-t tbody.lockband td{padding:0;height:auto;text-align:left;background:linear-gradient(90deg,rgba(0,255,169,.14),rgba(0,255,169,.04));border-bottom:1px solid rgba(0,255,169,.3)}
.lock-cta{position:sticky;left:0;display:inline-block;padding:12px 14px;color:var(--text);font-size:14px;font-weight:600;text-decoration:none;white-space:normal;max-width:calc(100vw - 48px)}
.lock-cta b{color:var(--green)}
.lock-cta:hover b{text-decoration:underline}
.pg.locked summary{opacity:.8}
.pg.locked .pg-hint{color:var(--gold)}
/* Logos are sign-up links where he has a deal; the price beside them is the bet. */
.oz-t .best a{color:inherit;text-decoration:none}
.oz-t .best a:hover{text-decoration:underline}
.bk-link{display:inline-block;line-height:0;border-radius:6px}
.bk-link:hover .bk-logo,.bk-link:focus-visible .bk-logo{box-shadow:0 0 0 2px var(--green)}
/* League marks in the sport chips, in their own colours. */
.oz-sports a{display:inline-flex;align-items:center;gap:6px}
.oz-sports a img{width:18px;height:18px;object-fit:contain;flex:none}
@media (max-width:640px){ .oz-sports{gap:4px} .oz-sports a{gap:3px;padding:7px 6px;font-size:12px;letter-spacing:.04em} .oz-sports a img{width:15px;height:15px} }

/* ── Phone fixes, 15 Oct 2026 (Michael's iPhone) ──────────────────────────
   The sport chips and the market tabs stick under the nav, opaque, so the
   table scrolls beneath them and nothing shows between them and the nav. */
.oz-ctl{position:sticky;top:var(--nav-h,64px);z-index:40;background:var(--bg);margin:0 -28px;padding:10px 28px 10px;
  border-bottom:1px solid var(--border);box-shadow:0 8px 14px -10px rgba(0,0,0,.8)}
.oz-ctl .oz-sports{margin:0 0 8px}
.oz-bar{margin-top:12px}
/* Jump to a column group, and the fade that says there is more to the right. */
.oz-jump{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px}
.oz-jump button.jump{font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:var(--card);border:1px solid var(--border2);border-radius:14px;color:var(--text);padding:5px 11px;cursor:pointer}
.oz-jump button.jump:hover{border-color:var(--green)}
.oz-jump .jump-hint{font-size:12px;color:var(--muted)}
.oz-jump .jump-signup{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--gold);text-decoration:none;
  border:1px dashed rgba(255,201,77,.5);border-radius:14px;padding:3px 10px 3px 4px}
.oz-sbox{position:relative}
.oz-fade{position:absolute;top:1px;right:1px;bottom:1px;width:56px;pointer-events:none;border-radius:0 10px 10px 0;
  background:linear-gradient(90deg,rgba(5,10,7,0),rgba(5,10,7,.92));display:flex;align-items:flex-start;justify-content:flex-end;transition:opacity .2s}
/* "SWIPE →", level and pointing right, a small pill at the top of the right edge. */
.oz-fade span{margin-top:58px;margin-right:6px;font-family:'Rajdhani',sans-serif;font-size:11px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--bg);background:var(--green);border-radius:10px;padding:2px 8px;white-space:nowrap;
  box-shadow:0 2px 8px rgba(0,0,0,.5)}
.oz-fade{width:84px}
.oz-t td.c-model small.pre{display:block;font-size:9.5px;color:#ff8a8a;font-weight:600;letter-spacing:.03em}
.oz-sbox.at-end .oz-fade{opacity:0}
#oz-lines[hidden]{display:none}
@media (max-width:900px){
  .oz-ctl{margin:0 -16px;padding:8px 16px 8px}
}
@media (max-width:640px){
  .oz-ctl .oz-sports{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 0 6px}
  .oz-ctl .oz-sports::-webkit-scrollbar{display:none}
  .oz-ctl .oz-sports a{flex:none}
  .oz-ctl .oz-seg{display:flex;overflow-x:auto;scrollbar-width:none;max-width:100%}
  .oz-ctl .oz-seg::-webkit-scrollbar{display:none}
  .oz-ctl .oz-seg button{flex:none;padding:7px 10px;font-size:12.5px}
  .oz-jump .jump-hint{display:none}
}

/* The top is the H1 and the controls (15 Oct 2026): no eyebrow, no blurb
   (it is in the guide at the bottom), a smaller H1 on a phone. */
.oz-head h1{margin:0 0 4px}
.oz-ctl{margin-top:10px}
.oz-learn .lede{color:var(--text)}
@media (max-width:640px){
  .oz{padding-top:calc(var(--nav-h,64px) + 12px)}
  .oz-head h1{font-size:24px;line-height:1.05}
  .oz-ctl{margin-top:6px}
}

/* The swipe cue lives in the pill row above the table, never over a cell
   (it covered the free-preview MODEL value at 375px). */
.oz-fade span{display:none}
.oz-jump .jump-hint{display:inline-block !important;font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--bg);background:var(--green);border-radius:12px;padding:4px 10px;margin-left:auto}
.oz-jump.swiped .jump-hint{display:none !important}
