.cnba{--ink:#19314f;--muted:#5e7390;color:var(--ink);font-family:system-ui,-apple-system,sans-serif;background:#f4f7fb;border:1px solid #d8e3f0;border-radius:16px;padding:24px;box-sizing:border-box}.cnba *{box-sizing:border-box}.cnba h2,.cnba h3,.cnba h4,.cnba p{margin:0}.cnba-title h2{font-size:28px;line-height:1.25;margin:6px 0 12px}.cnba-title p{line-height:1.6}.cnba-eyebrow{font-size:12px;font-weight:700;letter-spacing:1.5px;color:#285dba}.cnba .cnba-meta{font-size:13px;color:var(--muted);line-height:1.6;margin-top:8px}.cnba .cnba-day{font-size:18px;margin:24px 0 12px}.cnba-game{background:#fff;border:1px solid #d8e3f0;border-radius:12px;margin:12px 0;overflow:hidden}.cnba-match{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px;border-bottom:1px solid #d8e3f0}.cnba-match strong{font-size:20px}.cnba-match time{font-size:13px;white-space:nowrap;color:var(--muted)}.cnba-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:20px}.cnba-market h4{font-size:16px;margin-bottom:12px}.cnba-side{padding:12px 0;border-top:1px solid #e6ecf4;font-size:14px}.cnba-price{color:var(--muted);font-size:13px}.cnba-bar-row{display:flex;align-items:center;gap:10px;font-size:12px;margin-top:10px}.cnba-bar-row>span:first-child{width:57px;flex-shrink:0;color:var(--muted)}.cnba-bar{flex:1;height:6px;background:#e7eef7;border-radius:4px;overflow:hidden}.cnba-bar i{display:block;height:100%;background:#347dfa}.cnba-handle i{background:#009f91}.cnba-bar-row b{width:37px;text-align:right}.cnba-table-wrap{overflow-x:auto}.cnba table{width:100%;border-collapse:collapse;min-width:470px;margin:0;font-size:14px}.cnba caption{text-align:left;padding:14px 20px;color:var(--muted);font-size:12px}.cnba th,.cnba td{padding:12px 20px;border-bottom:1px solid #e4ebf3;text-align:left}.cnba thead{background:#f6f9fd}.cnba td{font-weight:700;font-variant-numeric:tabular-nums}.cnba td small{display:block;font-weight:400;color:var(--muted);margin-top:3px}.cnba-book{display:block;font-weight:700;color:#285dba;margin-bottom:4px}.cnba-team{font-size:13px;font-weight:500}.cnba .cnba-foot{font-size:12px;color:var(--muted);line-height:1.7;margin:20px 0}.cnba-empty,.cnba-pad{padding:20px}.cnba-links a{display:inline-block;background:#edf3fd;color:#204d89;border:1px solid #cbdaf1;border-radius:8px;text-decoration:none;padding:11px 16px;font-size:14px;font-weight:700}.cnba a:focus-visible{outline:3px solid #2a65fb;outline-offset:3px}@media(max-width:850px){.cnba-grid{grid-template-columns:1fr}.cnba-market+.cnba-market{padding-top:12px;border-top:1px solid #d8e3f0}}@media(max-width:520px){.cnba{padding:12px}.cnba-match{align-items:flex-start;flex-direction:column;padding:16px;gap:7px}.cnba-match strong{font-size:18px}.cnba-title h2{font-size:24px}.cnba-grid{padding:16px}.cnba th,.cnba td{padding:10px 12px}}
/* NBA-scoped market desk: same visual hierarchy and controls as football. */
.cnba-tabs:not([hidden]){display:flex;gap:8px;flex-wrap:wrap;padding:20px 20px 0}.cnba-tabs button{appearance:none;border:1px solid #d2e1f5;border-radius:9px;background:#edf3fc;color:#244568;padding:12px 20px;font:700 16px/1.2 system-ui;cursor:pointer}.cnba-tabs button[aria-pressed=true]{background:#2862ef;color:#fff;border-color:#2862ef}.cnba-tabs button:focus-visible,.cnba summary:focus-visible{outline:3px solid #7558da;outline-offset:3px}.cnba-market[hidden]{display:none!important}.cnba-game.cnba-enhanced .cnba-grid{display:block}.cnba-game.cnba-enhanced .cnba-side{display:grid;grid-template-columns:minmax(200px,1fr) auto minmax(180px,1fr) minmax(180px,1fr);align-items:center;gap:16px;padding:22px 0}.cnba-game.cnba-enhanced .cnba-bar-row{margin:0}.cnba-best-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid #e1e8f3}.cnba-best-row>span{text-align:right}.cnba-best-row b{font-size:24px;font-variant-numeric:tabular-nums}.cnba-best-row small{display:block;color:#60748f;margin-top:5px}.cnba-details{margin:0 20px 20px;border:1px solid #d8e3f0;border-radius:10px;overflow:hidden}.cnba-details summary{padding:18px;background:#f4f8fe;font-weight:700;cursor:pointer}.cnba-match strong{font-size:22px}.cnba-match{padding:24px}.cnba-market h4{font-size:15px;color:#60748f}.cnba-game.cnba-enhanced .cnba-market+.cnba-market{border:0;padding:0}@media(max-width:850px){.cnba-game.cnba-enhanced .cnba-side{grid-template-columns:1fr auto}.cnba-game.cnba-enhanced .cnba-bar-row{grid-column:1/-1}.cnba-tabs button{font-size:14px;padding:11px 16px}}@media(prefers-reduced-motion:reduce){.cnba *{scroll-behavior:auto}}
.cnba-pred{padding:20px;border-bottom:1px solid #d8e3f0}.cnba-pred h3{font-size:21px;margin:0 0 6px}.cnba-pred header p,.cnba-pred-note{font-size:12px;color:#60748f;line-height:1.6}.cnba-pred-scroll{overflow:auto;margin-top:16px;border:1px solid #d8e3f0;border-radius:10px}.cnba-pred table{min-width:760px;table-layout:fixed}.cnba-pred th,.cnba-pred td{padding:14px 10px;text-align:center}.cnba-pred th:first-child{text-align:left;width:24%}.cnba-pred caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.cnba-pred thead a{display:flex;gap:7px;align-items:center;justify-content:center;color:#19314f;text-decoration:none}.cnba-pred img{object-fit:contain}.cnba-quote a{text-decoration:none;color:inherit}.cnba-quote b{font-size:23px}.cnba-quote small{font-size:11px;line-height:1.5}.cnba .cnba-pred-cta{display:inline-block;font-size:11px;padding:10px;border-radius:7px;text-decoration:none;color:#fff;background:#2762ef}.cnba .cnba-pred-cta.cnba-venue-novig{background:#7040ca}.cnba .cnba-pred-cta.cnba-venue-kx{background:#008779}.cnba .cnba-pred-cta.cnba-venue-og{background:#c95200}.cnba .cnba-pred-note{margin-top:12px}@media(max-width:520px){.cnba-pred{padding:16px}.cnba-pred h3{font-size:19px}}
/* 2.22.2: football-style, one-row-per-book comparison, scoped to NBA. */
.cnba .cnba-details>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;list-style:none;padding:16px 18px;background:#f6f9fd}
.cnba .cnba-details>summary::-webkit-details-marker{display:none}
.cnba .cnba-details>summary::after{content:'⌄';font-size:20px;line-height:1}
.cnba .cnba-details[open]>summary::after{content:'⌃'}
.cnba .cnba-details:not([open])>*:not(summary){display:none!important}
.cnba .cnba-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.cnba .cnba-books-table{width:100%;min-width:650px;table-layout:fixed;border-collapse:collapse;border:0;font-size:14px;line-height:1.4}
.cnba .cnba-books-table th,.cnba .cnba-books-table td{border:0;border-bottom:1px solid #e1e8f1;padding:14px 16px;vertical-align:middle;color:#19314f;background:#fff}
.cnba .cnba-books-table thead th{background:#f5f8fc;text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700;text-align:right}
.cnba .cnba-books-table thead th:first-child{width:25%;text-align:left}
.cnba .cnba-books-table tbody tr:nth-child(even)>*{background:#f8fafd}
.cnba .cnba-books-table tbody tr:hover>*{background:#eef4fb}
.cnba .cnba-books-table tbody tr:last-child>*{border-bottom:0}
.cnba .cnba-book-heading{text-align:left;font-weight:650}
.cnba .cgd-book-name{display:flex;align-items:center;gap:10px;line-height:1.4}
.cnba .cgd-book-logo{display:block;width:28px;height:28px;object-fit:contain;flex-shrink:0;border-radius:5px}
.cnba .cnba-book-pair{display:grid;gap:6px;max-width:190px;margin-left:auto}
.cnba .cnba-book-quote{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:25px}
.cnba .cnba-book-side{font-size:12px;font-weight:500}
.cnba .cnba-book-side abbr{text-decoration:none;border:0;cursor:inherit}
.cnba .cnba-team-pill{display:inline-block;min-width:36px;padding:3px 5px;border-radius:4px;color:#fff;font:700 10px/1.4 ui-monospace,SFMono-Regular,monospace;letter-spacing:.04em;text-align:center}
.cnba .cnba-book-value{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:7px;padding:2px 3px;border-radius:4px;font-variant-numeric:tabular-nums;white-space:nowrap}
.cnba .cnba-book-value b{font-size:14px;font-weight:700}
.cnba .cnba-book-value em{font-size:12px;font-style:normal;font-weight:400;color:#5e7390}
.cnba .cnba-book-value.is-best{color:#007460;background:#e6f8f0}
.cnba .cnba-book-tabs{display:none}
@media(max-width:700px){
 .cnba .cnba-details{margin:0 12px 16px}
 .cnba .cnba-books-enhanced .cnba-book-tabs:not([hidden]){display:flex;gap:6px;padding:12px 10px;background:#fff}
 .cnba .cnba-book-tabs button{appearance:none;border:1px solid #d2e1f5;border-radius:7px;background:#edf3fc;color:#244568;padding:9px 11px;font:700 12px/1.2 system-ui;cursor:pointer}
 .cnba .cnba-book-tabs button[aria-pressed=true]{background:#2862ef;color:#fff;border-color:#2862ef}
 .cnba .cnba-book-tabs button:focus-visible{outline:3px solid #7558da;outline-offset:2px}
 .cnba .cnba-books-enhanced .cnba-books-table{min-width:0;width:100%}
 .cnba .cnba-books-enhanced[data-book-market="spread"] [data-nba-book-col]:not([data-nba-book-col="spread"]),
 .cnba .cnba-books-enhanced[data-book-market="total"] [data-nba-book-col]:not([data-nba-book-col="total"]),
 .cnba .cnba-books-enhanced[data-book-market="moneyline"] [data-nba-book-col]:not([data-nba-book-col="moneyline"]){display:none}
 .cnba .cnba-books-table th,.cnba .cnba-books-table td{padding:12px 10px}
 .cnba .cnba-books-enhanced .cnba-books-table th:first-child{width:43%}
 .cnba .cgd-book-name{gap:7px;font-size:12px}
 .cnba .cgd-book-logo{width:24px;height:24px}
 .cnba .cnba-book-quote{gap:5px}
 .cnba .cnba-book-value{gap:5px}
 .cnba .cnba-book-value b{font-size:13px}
 .cnba .cnba-book-value em{font-size:11px}
}
.cnba .cnba-books .cnba-table-wrap{position:relative;max-width:100%}
.cnba .cnba-books-table caption{top:0;left:0}
/* 2.24.3: clearer game boundaries and split lines without adjacent prices. */
.cnba .cnba-game{margin:20px 0 28px;border-color:#c7d5e6;box-shadow:0 2px 6px rgba(25,49,79,.05)}
.cnba .cnba-match{background:#eaf1fb;border-top:4px solid #3467ba;border-bottom:1px solid #c2d3e9;padding:20px 24px;flex-wrap:wrap}
.cnba .cnba-match strong{font-size:21px;line-height:1.4;letter-spacing:-.015em}
.cnba .cnba-match time{padding:7px 11px;border:1px solid #bfcee2;border-radius:7px;background:#fff;color:#244568;font-weight:700}
.cnba-game.cnba-enhanced .cnba-side-line{grid-template-columns:minmax(200px,1.15fr) repeat(2,minmax(180px,1fr))}
.cnba .cnba-bar-row>span:first-child{width:66px;white-space:nowrap}
.cnba .cnba-pred table{min-width:var(--cnba-pred-min-width,760px)}
@media(max-width:850px){.cnba-game.cnba-enhanced .cnba-side-line{grid-template-columns:1fr}}
@media(max-width:520px){.cnba .cnba-match{padding:16px;gap:10px}.cnba .cnba-match strong{font-size:18px}.cnba .cnba-match time{font-size:12px}}
/* 2.24.4: cache-only NBA Public Betting Consensus; all selectors stay NBA scoped. */
.cnba .cnba-consensus{margin:24px 0;background:#fff;border:1px solid #d5e1ef;border-radius:14px;padding:22px}
.cnba .cnba-consensus h3{font-size:23px;line-height:1.3;letter-spacing:-.02em;margin:0 0 12px;color:var(--ink)}
.cnba .cnba-consensus-intro,.cnba .cnba-consensus-help,.cnba .cnba-consensus-empty{font-size:13px;line-height:1.6;color:var(--muted)}
.cnba .cnba-consensus-help{margin:14px 0 12px}
.cnba .cnba-consensus-tabs:not([hidden]){display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.cnba .cnba-consensus-tabs button,.cnba .cnba-consensus-more{appearance:none;cursor:pointer;border:1px solid #d2e1f5;border-radius:8px;background:#edf3fc;color:#244568;padding:11px 16px;font:700 15px/1.3 system-ui}
.cnba .cnba-consensus-tabs button[aria-pressed=true]{color:#fff;background:#2862ef;border-color:#2862ef}
.cnba .cnba-consensus button:focus-visible{outline:3px solid #7558da;outline-offset:3px}
.cnba .cnba-consensus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cnba .cnba-ranking{min-width:0;border:1px solid #d5e1ef;border-radius:10px;padding:16px}
.cnba .cnba-ranking h4{font-size:15px;line-height:1.4;margin:0 0 12px;color:var(--ink);min-height:42px}
.cnba .cnba-ranks{list-style:none;counter-reset:cnba-rank;margin:0;padding:0}
.cnba .cnba-ranks>li{counter-increment:cnba-rank;display:flex;align-items:center;gap:9px;min-height:72px;padding:12px 0;border-bottom:1px solid #e7edf5}
.cnba .cnba-ranks>li::before{content:counter(cnba-rank);color:var(--muted);font-size:13px;width:12px;flex-shrink:0;text-align:left;font-variant-numeric:tabular-nums}
.cnba .cnba-ranks a{display:flex;align-items:center;gap:10px;justify-content:space-between;min-width:0;flex:1;color:var(--ink);text-decoration:none;border-radius:4px}
.cnba .cnba-ranks a:hover .cnba-rank-text strong{text-decoration:underline;text-underline-offset:3px}
.cnba .cnba-rank-label{display:flex;align-items:center;gap:9px;min-width:0}
.cnba .cnba-rank-label .cnba-team-pill{display:flex;align-items:center;justify-content:center;min-width:32px;width:32px;height:32px;padding:3px;border-radius:6px;flex-shrink:0;font-size:10px;text-decoration:none}
.cnba .cnba-rank-text{min-width:0}
.cnba .cnba-rank-text strong{display:block;font-size:14px;line-height:1.4;font-weight:700;overflow-wrap:anywhere}
.cnba .cnba-rank-text small{display:block;font-size:12px;line-height:1.4;color:var(--muted);margin-top:3px}
.cnba .cnba-rank-value{display:flex;align-items:center;gap:7px;flex-shrink:0}
.cnba .cnba-rank-value i{display:block;width:36px;height:6px;border-radius:4px;background:linear-gradient(to right,#397ffc 0 var(--cnba-value),#e7eef7 var(--cnba-value) 100%)}
.cnba .cnba-rank-value b{font-size:15px;min-width:34px;text-align:right;font-variant-numeric:tabular-nums}
.cnba .cnba-consensus-more{width:100%;margin-top:12px;font-size:14px;padding:10px}
.cnba .cnba-consensus-empty{padding:12px 0}
.cnba .cnba-consensus [hidden]{display:none!important}
.cnba .cnba-consensus-markets:not([hidden]){display:none}
/* Native fallback: only five ranked selections shown before JavaScript loads. */
.cnba .cnba-ranking .cnba-ranks>li:nth-child(n+6){display:none}
.cnba .cnba-ranking .cnba-consensus-expand:checked~.cnba-ranks>li:nth-child(n+6){display:flex}
.cnba .cnba-consensus-radio,.cnba .cnba-consensus-expand{position:absolute;width:1px;height:1px;padding:0;margin:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.cnba .cnba-consensus-choice{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:16px 8px 10px 0;border:1px solid #d2e1f5;border-radius:9px;background:#edf3fc;color:#244568;padding:11px 19px;font-size:15px;font-weight:700;line-height:1.3}
.cnba .cnba-consensus-radio:checked+.cnba-consensus-choice{background:#2862ef;border-color:#2862ef;color:#fff}
.cnba .cnba-consensus-radio:focus-visible+.cnba-consensus-choice,.cnba .cnba-consensus-expand:focus-visible~.cnba-consensus-more{outline:3px solid #7558da;outline-offset:3px}
.cnba .cnba-consensus-radio-handle:checked~.cnba-consensus-panel-bets,.cnba .cnba-consensus-radio-bets:checked~.cnba-consensus-panel-handle{display:none}
.cnba .cnba-consensus .cnba-consensus-more{display:block;cursor:pointer;text-align:center}
.cnba .cnba-ranking .cnba-consensus-more .cnba-more-close{display:none}
.cnba .cnba-ranking .cnba-consensus-expand:checked~.cnba-consensus-more .cnba-more-open{display:none}
.cnba .cnba-ranking .cnba-consensus-expand:checked~.cnba-consensus-more .cnba-more-close{display:inline}
.cnba .cnba-consensus-more[hidden]{display:none!important}
.cnba .cnba-game[id]{scroll-margin-top:90px}
@media(max-width:1000px){
 .cnba .cnba-consensus-grid{grid-template-columns:1fr}
 .cnba .cnba-consensus-markets:not([hidden]){display:flex;margin:0 0 12px}
 .cnba .cnba-consensus-markets button{font-size:13px;padding:9px 13px}
 .cnba .cnba-consensus-enhanced[data-consensus-market="spread"] [data-nba-consensus-column]:not([data-nba-consensus-column="spread"]),
 .cnba .cnba-consensus-enhanced[data-consensus-market="total"] [data-nba-consensus-column]:not([data-nba-consensus-column="total"]),
 .cnba .cnba-consensus-enhanced[data-consensus-market="underdogs"] [data-nba-consensus-column]:not([data-nba-consensus-column="underdogs"]){display:none}
 .cnba .cnba-ranking h4{min-height:0;font-size:16px}
 .cnba .cnba-rank-value i{width:48px}
 .cnba .cnba-rank-text strong{font-size:15px}
}
@media(max-width:520px){
 .cnba .cnba-consensus{padding:14px;margin:20px 0}
 .cnba .cnba-consensus h3{font-size:20px}
 .cnba .cnba-ranking{padding:12px}
 .cnba .cnba-ranks>li{gap:7px}
 .cnba .cnba-rank-label{gap:7px}
 .cnba .cnba-rank-value{gap:5px}
 .cnba .cnba-rank-value i{width:26px}
 .cnba .cnba-rank-text strong{font-size:13px}
 .cnba .cnba-rank-text small{font-size:11px}
 .cnba .cnba-rank-value b{font-size:14px;min-width:32px}
}
/* 2.26.4: NBA Lines CTA rail + compact best-number summary. */
.cnba .cnba-cta-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:18px 20px;border-bottom:1px solid #d8e3f0;background:#fff}
.cnba .cnba-cta-intro{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12px 14px;border:1px dashed #c7d5e6;border-radius:10px;background:#f7faff}
.cnba .cnba-cta-intro strong{font-size:14px;line-height:1.35}
.cnba .cnba-cta-intro span{font-size:12px;line-height:1.5;color:#60748f}
.cnba .cnba-cta{position:relative;display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:84px;padding:14px 42px 14px 14px;border-radius:12px;border:1px solid #d8e3f0;text-decoration:none;background:linear-gradient(135deg,#fff,#f6f9fd);box-shadow:0 1px 2px rgba(25,49,79,.04)}
.cnba .cnba-cta strong{font-size:15px;line-height:1.3;color:#19314f}
.cnba .cnba-cta small{font-size:12px;line-height:1.45;color:#60748f}
.cnba .cnba-cta-brand{display:inline-flex;align-items:center;align-self:flex-start;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:#eaf1fb;color:#285dba}
.cnba .cnba-cta-arrow{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e7eef8;color:#1f4f97;font-size:14px;font-weight:700}
.cnba .cnba-cta:hover{text-decoration:none;box-shadow:0 4px 14px rgba(25,49,79,.08);transform:translateY(-1px)}
.cnba .cnba-cta:focus-visible{outline:3px solid #7558da;outline-offset:3px}
.cnba .cnba-cta-onyx{border-color:#dac9ff;background:linear-gradient(135deg,#fff,#f7f2ff)}
.cnba .cnba-cta-onyx .cnba-cta-brand{background:#f1e8ff;color:#6836c8}
.cnba .cnba-cta-onyx .cnba-cta-arrow{background:#7c3aed;color:#fff}
.cnba .cnba-cta-rebet{border-color:#ffd0bf;background:linear-gradient(135deg,#fff8f4,#fff)}
.cnba .cnba-cta-rebet .cnba-cta-brand{background:#fff0e9;color:#d85d24}
.cnba .cnba-cta-rebet .cnba-cta-arrow{background:#ff7a3a;color:#111827}
.cnba .cnba-cta-sleeper{border-color:#c8ddfb;background:linear-gradient(135deg,#f8fbff,#fff)}
.cnba .cnba-cta-sleeper .cnba-cta-brand{background:#e9f2ff;color:#1d62d8}
.cnba .cnba-cta-sleeper .cnba-cta-arrow{background:#2a65fb;color:#fff}
.cnba .cnba-cta-underdog{border-color:#f6d06d;background:linear-gradient(135deg,#fffdf5,#fff)}
.cnba .cnba-cta-underdog .cnba-cta-brand{background:#fff4cf;color:#8b6700}
.cnba .cnba-cta-underdog .cnba-cta-arrow{background:#f1bc17;color:#111827}
.cnba .cnba-best-summary{padding:20px;border-top:1px solid #e3ebf5;border-bottom:1px solid #d8e3f0;background:#fbfdff}
.cnba .cnba-best-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px}
.cnba .cnba-best-head h4{font-size:21px;line-height:1.25;margin:0 0 5px;color:#19314f}
.cnba .cnba-best-head p{font-size:12px;line-height:1.55;color:#60748f}
.cnba .cnba-best-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cnba .cnba-best-card{border:1px solid #d8e3f0;border-radius:12px;background:#fff;padding:16px 16px 6px}
.cnba .cnba-best-card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}
.cnba .cnba-best-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:#edf3fd;color:#285dba;font-size:18px;font-weight:700;flex-shrink:0}
.cnba .cnba-best-card h5{font-size:16px;line-height:1.3;margin:0 0 4px;color:#19314f}
.cnba .cnba-best-card p{font-size:12px;line-height:1.5;color:#60748f}
.cnba .cnba-best-stack{display:grid;gap:0}
.cnba .cnba-best-mini{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #e5ecf5}
.cnba .cnba-best-mini strong{font-size:13px;line-height:1.4;color:#19314f;max-width:46%}
.cnba .cnba-best-mini span{text-align:right}
.cnba .cnba-best-mini b{display:block;font-size:19px;line-height:1.2;color:#19314f;font-variant-numeric:tabular-nums}
.cnba .cnba-best-mini small{display:block;margin-top:4px;font-size:11px;line-height:1.45;color:#60748f}
@media(max-width:1024px){
 .cnba .cnba-cta-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cnba .cnba-cta-intro{grid-column:1/-1}
 .cnba .cnba-best-cards{grid-template-columns:1fr}
}
@media(max-width:700px){
 .cnba .cnba-cta-strip{padding:16px 12px}
 .cnba .cnba-best-summary{padding:16px 12px}
}
@media(max-width:520px){
 .cnba .cnba-cta-strip{grid-template-columns:1fr}
 .cnba .cnba-cta{min-height:0;padding:14px 40px 14px 14px}
 .cnba .cnba-best-head h4{font-size:19px}
 .cnba .cnba-best-mini b{font-size:17px}
}
/* v2.26.8: Novig player-prop watch, NBA Public Betting only. Native radio
 * tabs and expand controls work even when page-cache delays JavaScript. */
.cnba .cnpw{margin:0 20px 20px;border:1px solid #d9d4f3;border-radius:13px;overflow:hidden;background:#fff;color:#19314f}
.cnba .cnpw-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;background:linear-gradient(110deg,#f7f2ff,#fbfdff);border-bottom:1px solid #e3daf7}
.cnba .cnpw-heading{display:flex;align-items:center;gap:12px;min-width:0}
.cnba .cnpw-heading img{width:36px;height:36px;object-fit:contain;border-radius:9px}
.cnba .cnpw-head h4{font-size:18px;line-height:1.3;color:#1e3150;margin:0 0 3px}
.cnba .cnpw-head p{font-size:12px;line-height:1.4;color:#5d6f8b}
.cnba .cnpw-head>a{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:10px 13px;border:1px solid #bfa5ef;border-radius:8px;color:#6333bd;text-decoration:none;font-size:12px;font-weight:750;text-align:center}
.cnba .cnpw-head>a:hover{background:#f0e8ff}
.cnba .cnpw-content{padding:15px 16px 13px}
.cnba .cnpw-radio,.cnba .cnpw-expand{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.cnba .cnpw-choice{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;margin:0 6px 12px 0;padding:8px 13px;background:#eff4fc;border:1px solid #d9e4f2;color:#274368;border-radius:8px;font-size:12px;font-weight:750}
.cnba .cnpw-radio:checked+.cnpw-choice{background:#2862ef;border-color:#2862ef;color:#fff}
.cnba .cnpw-radio:focus-visible+.cnpw-choice,.cnba .cnpw-expand:focus-visible~.cnpw-more{outline:3px solid #7558da;outline-offset:2px}
.cnba .cnpw-panel{display:none}
.cnba .cnpw-radio-points:checked~.cnpw-panel-points,
.cnba .cnpw-radio-rebounds:checked~.cnpw-panel-rebounds,
.cnba .cnpw-radio-assists:checked~.cnpw-panel-assists,
.cnba .cnpw-radio-threes:checked~.cnpw-panel-threes,
.cnba .cnpw-radio-combos:checked~.cnpw-panel-combos{display:block}
.cnba .cnpw-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cnba .cnpw-team{min-width:0;border:1px solid #e1e8f2;border-radius:10px;overflow:hidden;background:#fff}
.cnba .cnpw-team h5{font-size:14px;line-height:1.4;margin:0;padding:12px 12px 10px;background:#f8faff;overflow-wrap:anywhere}
.cnba .cnpw-team .cnpw-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(75px,.55fr);gap:7px;align-items:center;min-height:46px;padding:9px 10px;border-top:1px solid #e9edf4;font-size:12px}
.cnba .cnpw-team .cnpw-row-head{min-height:30px;padding:7px 10px;background:#fafcff;font-size:10px;letter-spacing:.015em;color:#657895;font-weight:650}
.cnba .cnpw-player{font-weight:750;overflow-wrap:anywhere}
.cnba .cnpw-line{font-variant-numeric:tabular-nums}
.cnba .cnpw-line small,.cnba .cnpw-prob small{display:block;color:#687c96;font-size:10px;margin-top:2px;line-height:1.35}
.cnba .cnpw-prob{font-weight:800;color:#087c5c;font-variant-numeric:tabular-nums;text-align:right}
.cnba .cnpw-panel .cnpw-row:nth-child(n+6){display:none}
.cnba .cnpw-expand:checked~.cnpw-teams .cnpw-row:nth-child(n+6){display:grid}
.cnba .cnpw-more{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border:1px solid #d5e2f3;border-radius:8px;margin-top:11px;background:#edf3fc;color:#234879;font-size:12px;font-weight:700;cursor:pointer}
.cnba .cnpw-more span+span{display:none}
.cnba .cnpw-expand:checked~.cnpw-more span:first-child{display:none}
.cnba .cnpw-expand:checked~.cnpw-more span+span{display:inline}
.cnba .cnpw-disclosure{font-size:11px;line-height:1.55;color:#617691;margin-top:13px!important}
.cnba .cnpw-unavailable{margin:0 20px 20px;border:1px solid #e1e6f0;border-radius:9px;overflow:hidden;font-size:12px;color:#506b8b}
.cnba .cnpw-unavailable summary{cursor:pointer;padding:11px 14px;font-weight:700;background:#f8fafd}
.cnba .cnpw-unavailable summary span{font-weight:500;margin-left:9px}
.cnba .cnpw-unavailable p{padding:10px 14px;line-height:1.5}
@media(max-width:780px){.cnba .cnpw-teams{grid-template-columns:1fr}.cnba .cnpw-head{align-items:flex-start;flex-wrap:wrap}.cnba .cnpw-head>a{width:100%}}
@media(max-width:520px){.cnba .cnpw,.cnba .cnpw-unavailable{margin:0 12px 16px}.cnba .cnpw-choice{padding:8px 10px}.cnba .cnpw-team .cnpw-row{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(65px,.55fr);padding:9px 8px;font-size:11px}}
/* 2.26.11 — real Novig alternate thresholds, scoped to NBA Public Betting. */
.cnba .cnpw-ladder .cnpw-ladder-row{display:block;min-height:0;padding:12px;border-top:1px solid #e6edf6}
.cnba .cnpw-ladder .cnpw-player{display:block;font-size:12px;margin-bottom:8px}
.cnba .cnpw-ladder-cells{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.cnba .cnpw-ladder-cell{min-width:0;text-align:center;padding:10px 5px;border:1px solid #e1e7f0;border-radius:8px;background:#f6f9fe;font-variant-numeric:tabular-nums}
.cnba .cnpw-ladder-cell b,.cnba .cnpw-ladder-cell strong,.cnba .cnpw-ladder-cell small{display:block}
.cnba .cnpw-ladder-cell b{font-size:14px;color:#203954}
.cnba .cnpw-ladder-cell strong{font-size:19px;color:#096b68;margin-top:3px}
.cnba .cnpw-ladder-cell small{font-size:10px;color:#637791;margin-top:4px}
.cnba .cnpw-ladder-cell.cnpw-ladder-check{border-color:#f0bd81;background:#fff7ed}
.cnba .cnpw-ladder-cell.cnpw-ladder-check strong{color:#995516}
.cnba .cnpw-ladder-shift{display:block;margin-top:8px;color:#566d87;font-size:10px;line-height:1.5}
.cnba .cnpw-ladder-panel .cnpw-team .cnpw-row:nth-child(6){display:block}
.cnba .cnpw-ladder-panel .cnpw-team .cnpw-row:nth-child(n+7){display:none}
.cnba .cnpw-ladder-panel .cnpw-expand:checked~.cnpw-teams .cnpw-row:nth-child(n+7){display:block}
@media(max-width:430px){.cnba .cnpw-ladder-cells{gap:4px}.cnba .cnpw-ladder-cell{padding:8px 2px}.cnba .cnpw-ladder-cell strong{font-size:16px}.cnba .cnpw-ladder-cell b{font-size:12px}}

/* 2.26.14: direct Novig tiles retain the established light game-box design. */
.cnba .cnpw-direct a.cnpw-ladder-cell{display:block;text-decoration:none;color:inherit;line-height:1.4}
.cnba .cnpw-direct a.cnpw-ladder-cell:hover{border-color:#9974ec;background:#f6f1ff}
.cnba .cnpw-direct .cnpw-standard{border:1px solid #d8e3f0;border-radius:9px;padding:12px;margin-top:14px}
.cnba .cnpw-direct .cnpw-standard summary{cursor:pointer;font-weight:700;color:#34506f;font-size:12px}
.cnba .cnpw-direct .cnpw-standard .cnpw-teams{margin-top:12px}
.cnba .cnpw-direct .cnpw-standard .cnpw-row{display:grid!important}
.cnba .cnpw-direct .cnpw-teams>section:only-child{grid-column:1/-1}
.cnba .cnpw-direct .cnpw-ladder-cells:has(>a:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}

/* 2.26.18: explicit dates for the three-day consensus; reusable Novig links. */
.cnba .cnba-consensus-scope{font-size:13px;line-height:1.6;margin:10px 0 0;color:var(--muted)}
.cnba .cnba-consensus-scope strong{color:var(--ink)}
.cnba .cnba-rank-date{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:5px;font-variant-numeric:tabular-nums}
.cnba .cnba-provider-link{color:#244fc4;text-decoration:underline;text-underline-offset:3px}
.cnba .cnba-provider-link:focus-visible{outline:3px solid #7558da;outline-offset:3px}

/* 2.26.29: snapshot provenance, scoped to NBA boards. */
.cnba .cnba-source-note{padding:16px 20px;margin:14px 0 20px;background:#f3f6fb;border:1px solid #cbd9ed;border-left:4px solid #718db3;border-radius:10px;color:#23415f;line-height:1.6}
.cnba .cnba-source-note strong{display:block;font-size:17px;margin-bottom:5px;color:#192d48}
.cnba .cnba-source-note p{margin:0;font-size:14px;overflow-wrap:anywhere}
.cnba .cnba-source-label{font-size:14px;color:#456187;background:#eff3f9;border-radius:8px;padding:10px 12px}

/* Keep real prices alongside percentage placeholders. */
.cnba .cnba-current-prices{padding:12px 16px;margin:0 0 12px;background:#f6f9fd;border:1px solid #d8e3f0;border-radius:8px}
.cnba .cnba-current-prices>.cnba-meta{margin:0 0 8px}
.cnba .cnba-current-prices .cnba-best-mini{padding:9px 0;border-top:1px solid #e3ebf6}
