:root{--bg:#F6F4EE;--card:#FFFFFF;--line:#E6E1D6;--ink:#14202E;--muted:#6B7280;--navy:#0E2238;
  --green:#1E8E4E;--green-tint:#E3F4E8;--red:#C8372D;--red-tint:#FBE5E3;--blue:#2563EB;--blue-tint:#E3ECFD;
  --amber:#B7791F;--amber-tint:#FCF0D9;--radius:12px;--serif:"Libre Caslon Text",Georgia,serif;
  --sans:"Inter",system-ui,sans-serif;--shadow:0 1px 2px rgba(16,24,40,.04);--gutter:clamp(20px,3vw,64px);
  /* G4 type scale: reaches the mockup sizes (card title 26, stat value 34, label 16, table 14) on wide screens and steps down so content still fits at 1280-1440 */
  --fs-card:clamp(20px,1.36vw,26px);--fs-card-sm:clamp(15px,.95vw,19px);--fs-stat:clamp(28px,1.78vw,34px);--fs-label:clamp(13.5px,1vw,16px);--fs-table:clamp(12px,.8vw,14px);--fs-rail-title:clamp(13px,.82vw,16px)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 var(--sans)}
button,select,input,textarea{font-family:inherit}
.num,td,.ca-stat-value{font-variant-numeric:tabular-nums}
a{color:inherit}
.ca-header{background:var(--navy);color:#fff}
.ca-header-inner{height:64px;display:flex;align-items:center;gap:40px;padding:0 var(--gutter)}
.ca-wordmark{font:700 28px var(--serif);color:#fff;text-decoration:none;letter-spacing:-.5px}
.ca-alpha{font-style:italic}
.ca-nav{display:flex;gap:28px}
.ca-nav a{color:#fff;text-decoration:none;font-weight:600;font-size:15px;padding:20px 0;border-bottom:2px solid transparent}
.ca-nav a.active{border-bottom-color:#fff}
.ca-header-tools{margin-left:auto;display:flex;align-items:center;gap:18px}
.ca-icon-btn{background:none;border:0;color:#fff;cursor:pointer;padding:6px}
.ca-avatar{width:36px;height:36px;border-radius:50%;border:0;background:#5B7FA6;color:#fff;font-weight:700;cursor:pointer}
.ca-avatar-wrap{position:relative}
.ca-menu{position:absolute;right:0;top:44px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(16,24,40,.12);min-width:180px;z-index:20;padding:6px}
.ca-menu[hidden]{display:none}
.ca-menu a{display:block;padding:9px 12px;border-radius:6px;color:var(--ink);text-decoration:none;font-weight:500}
.ca-menu a:hover{background:var(--bg)}
.ca-page{padding:24px var(--gutter) 48px}
.ca-title-row{display:flex;align-items:center;gap:16px;margin:8px 0 20px}
.ca-title{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.ca-title h1{font:700 44px/1.1 var(--serif);margin:0;letter-spacing:-.5px}
.ca-title p{margin:0;color:var(--muted);font-size:16px}
.ca-title-right{margin-left:auto;display:flex;gap:10px;align-items:center}
.ca-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}
.ca-card h2{font:700 26px/1.2 var(--serif);margin:0}
.ca-card-head{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.ca-card-head p{margin:0;color:var(--muted);font-size:14px}
.ca-card-head .ca-link{margin-left:auto;color:var(--blue);font-weight:600;text-decoration:none;font-size:14px}
.ca-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}
.ca-stat{min-height:140px;padding:16px 18px;display:flex;flex-direction:column;min-width:0}
.ca-stat-label{display:flex;align-items:center;min-width:0;font-weight:600;font-size:16px}
.ca-stat-lt{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-stat-value{font:700 34px/1.15 var(--serif);margin-top:6px}
.ca-stat-sub{color:var(--muted);font-size:13px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-stat-body{flex:1;min-width:0;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.ca-stat-body>div:first-child{min-width:0}
/* G2: moved detail text lives in a tooltip behind a small (i): infoTip() in ui.js */
.ca-info{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:6px;border:1px solid #B5B0A3;border-radius:50%;color:var(--muted);font:600 10px/1 var(--sans);font-style:normal;letter-spacing:0;text-transform:none;vertical-align:1px;cursor:help;flex:none}
.ca-info:hover,.ca-info:focus-visible{color:var(--ink);border-color:var(--ink);outline:0}
.pos{color:var(--green)}.neg{color:var(--red)}.muted{color:var(--muted)}
.ca-pills{display:flex;gap:8px;flex-wrap:wrap}
.ca-pill{border:1px solid var(--line);background:#F1EEE6;color:var(--ink);border-radius:8px;padding:8px 16px;font-weight:600;font-size:14px;cursor:pointer}
.ca-pill.on{background:var(--navy);border-color:var(--navy);color:#fff}
.ca-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ca-table{width:100%;border-collapse:collapse;font-size:14px}
.ca-table th{text-align:left;font-weight:600;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);background:#FBFAF6;white-space:nowrap}
.ca-table td{padding:11px 12px;border-bottom:1px solid #F0ECE3;white-space:nowrap}
.ca-table tr:last-child td{border-bottom:0}
.ca-team{display:inline-flex;align-items:center;gap:8px}
.ca-team img{width:22px;height:22px;object-fit:contain}
.ca-conf{display:inline-block;min-width:78px;text-align:center;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:700;letter-spacing:.04em}
.ca-conf.HIGH{background:var(--green-tint);color:var(--green)}
.ca-conf.STRONG{background:var(--blue-tint);color:var(--blue)}
.ca-conf.MEDIUM{background:var(--amber-tint);color:var(--amber)}
.ca-conf.VALUE{background:#EEE9DD;color:var(--muted)}
.ca-alpha-cell{display:inline-block;min-width:56px;text-align:center;border-radius:6px;padding:5px 8px;background:var(--amber-tint);font-weight:600}
.ca-alpha-cell.hi{background:var(--green-tint)}
.ca-alpha-cell.lo{background:#EEE9DD;color:var(--muted)}
.ca-fair{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:4px;background:#F1EEE6;color:var(--muted);font:600 10px/1.4 var(--sans);letter-spacing:.04em;text-transform:uppercase;vertical-align:1px;cursor:help}
.ca-go{display:inline-grid;place-items:center;width:32px;height:28px;border-radius:7px;background:var(--blue-tint);color:var(--blue);text-decoration:none;font-weight:700}
.ca-empty{color:var(--muted);padding:18px 4px}
.ca-star{background:none;border:0;cursor:pointer;color:var(--amber);font-size:17px;opacity:0;transition:opacity .12s}
/* G3: stars show on hover of their row / name, on keyboard focus, or when already starred; touch screens (no hover) always show them */
.ca-star.on,.ca-star:hover,.ca-star:focus-visible,:hover>.ca-star,:focus-within>.ca-star,tr:hover .ca-star,.ca-gm-team:hover .ca-star,.ca-dash-wl-row:hover .ca-star{opacity:1}
@media (hover:none){.ca-star{opacity:1}}
.ca-select,.ca-input{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 12px;font:500 14px var(--sans);color:var(--ink)}
.ca-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 12px;font-weight:600;cursor:pointer}
.ca-loading{color:var(--muted);padding:40px 4px;margin:0}
/* Site footer (app.js footer()): outside .ca-page, aligned to its content box (viewport minus the two --gutter margins). */
footer{width:calc(100% - 2 * var(--gutter));margin:0 auto;padding:16px 0 32px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
@media (max-width:620px){
  :root{--gutter:16px}
  .ca-header-inner{gap:14px;height:auto;flex-wrap:wrap}
  .ca-nav{order:3;width:100%;overflow-x:auto;gap:18px}
  .ca-page{padding:16px var(--gutter)}
  .ca-title h1{font-size:32px}
  .ca-stats{grid-template-columns:1fr}
}
/* UI components + charts (js/ui.js) */
.ca-book{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:6px;color:#fff;font:700 9px var(--sans)}
.ca-axis{font:12px var(--sans);fill:var(--muted)}
.ca-grid-line{stroke:#ECE8DF;stroke-width:1;vector-effect:non-scaling-stroke}
.ca-chart{width:100%}
.ca-plot{position:absolute;left:46px;right:14px;top:10px;bottom:28px}
.ca-plot svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible}
.ca-yl,.ca-xl{position:absolute;font:12px var(--sans);color:var(--muted);white-space:nowrap;line-height:1}
.ca-yl{right:100%;margin-right:8px;transform:translateY(-50%)}
.ca-xl{top:100%;margin-top:8px;transform:translateX(-50%)}
.ca-xl-start{transform:none}.ca-xl-end{transform:translateX(-100%)}
.ca-dot{position:absolute;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #fff}
.ca-dot-sm{width:6px;height:6px;box-shadow:none}
.ca-bars,.ca-hist{max-width:100%;height:auto}
.ca-bar-val{font:600 12px var(--sans);fill:var(--ink)}
.ca-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:13px;color:var(--muted)}
.ca-legend-item i,.ca-dl-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.ca-donut-legend{display:grid;gap:8px;font-size:14px}
.ca-dl-row{display:flex;align-items:center;gap:8px}
.ca-dl-label{flex:1}
.ca-dl-pct,.ca-dl-val{font-variant-numeric:tabular-nums;font-weight:600}
.ca-dl-pct{color:var(--muted);min-width:40px;text-align:right}
@media (max-width:620px){.ca-plot{left:38px;right:10px}.ca-xl-opt{display:none}}
/* Dashboard (js/pages/dashboard.js) */
.ca-datenav{display:flex;gap:8px;align-items:center}
.ca-dn-btn,.ca-dn-date{height:42px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--ink);font:600 15px var(--sans)}
.ca-dn-btn{width:42px;cursor:pointer;font-size:22px;line-height:1}
.ca-dn-date{position:relative;display:inline-flex;align-items:center;gap:10px;padding:0 16px;cursor:pointer;min-width:200px;white-space:nowrap}
.ca-dn-date input{position:absolute;inset:0;opacity:0;pointer-events:none;width:100%}
.ca-dash .ca-card h2,.ca-ev .ca-card h2{font-size:var(--fs-card);white-space:nowrap}
.ca-dash-sub .ca-card h2{font-size:var(--fs-card-sm)}
.ca-dash-stats{margin-bottom:16px}
@media (min-width:1280px){.ca-dash-stats{grid-template-columns:repeat(6,minmax(0,1fr))}}
.ca-dash-stats .ca-stat,.ca-ev-stats .ca-stat{position:relative;min-height:145px;padding:16px clamp(12px,1vw,18px);container-type:inline-size}
.ca-dash-stats .ca-stat-label .ca-info,.ca-ev-stats .ca-stat-label .ca-info{position:absolute;top:12px;right:12px;margin:0}
.ca-dash-stats .ca-stat-label,.ca-ev-stats .ca-stat-label{font-size:var(--fs-label)}
.ca-dash-stats .ca-stat-body,.ca-ev-stats .ca-stat-body{align-items:center}
.ca-dash-stats .ca-stat-value,.ca-ev-stats .ca-stat-value{font-size:var(--fs-stat)}
.ca-dash-stats .ca-stat-sub,.ca-ev-stats .ca-stat-sub{font-size:clamp(12px,.88vw,13.5px);line-height:1.35}
.ca-dash-stats .ca-stat-visual,.ca-ev-stats .ca-stat-visual{flex:none}
@container (max-width:200px){.ca-dash-stats .ca-stat-visual svg,.ca-ev-stats .ca-stat-visual svg{max-width:54px;height:auto}.ca-dash-gt .ca-league{display:none}}
/* Hit Rate (donut) at ~1280px: a slimmer donut + tighter gap so "+6.1% vs. market" stays on ONE line without an ellipsis */
@container (max-width:170px){.ca-dash-stats .ca-stat-body{gap:6px}.ca-dash-stats .ca-stat-visual svg{max-width:46px}}
.ca-dash-gt{display:flex;justify-content:space-between;gap:4px;margin-top:10px}
.ca-dash-gt-item{display:flex;align-items:center;gap:4px}
.ca-dash-gt .ca-league{width:17px;height:17px}
.ca-dash-gt-item div{display:flex;flex-direction:column;line-height:1.15}
.ca-dash-gt-item span{font-size:11px;color:var(--muted);font-weight:600}
.ca-dash-gt-item b{font-size:14px}
.ca-league{width:20px;height:20px;object-fit:contain;flex:none}
/* Best Current Edge: ONE line, logo + "Lions ML" + at + logo, ellipsised */
.ca-dash-be{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;text-decoration:none;color:var(--muted);margin-top:4px}
.ca-dash-be span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.ca-dash-be i{font-style:normal;flex:none}
.ca-dash-be .tlogo{width:22px!important;height:22px!important;max-width:22px;max-height:22px;margin:0!important;flex:none}
.ca-dash-sig{display:grid;gap:6px;margin-top:10px}
.ca-dash-sig-row{display:flex;align-items:center;gap:clamp(8px,.8vw,12px);font-size:clamp(13px,.9vw,14px);white-space:nowrap}
.ca-dash-sig-row i{width:13px;height:13px;border-radius:50%;border:3.5px solid;flex:none}
.ca-dash-sig-row b{min-width:20px;font-size:16px}
.ca-dash-sig-row span{color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis}
/* Top row: Best Opportunities | Today's Slate; bottom row: four cards (31 / 27 / 21 / 21 %), all one height */
.ca-dash-main{display:grid;grid-template-columns:minmax(0,1.56fr) minmax(0,1fr);gap:16px;align-items:start}
.ca-dash-col{display:grid;gap:16px;align-content:start;min-width:0}
.ca-dash-sub{display:grid;gap:16px;align-items:stretch}
.ca-dash-sub-l{grid-template-columns:minmax(0,1.17fr) minmax(0,1fr)}
.ca-dash-sub-r{grid-template-columns:repeat(2,minmax(0,1fr))}
.ca-dash-card{min-width:0}
.ca-dash .ca-card-head,.ca-ev .ca-card-head{flex-wrap:nowrap;gap:12px 14px}
.ca-dash .ca-card-head p,.ca-ev .ca-card-head p{flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(12.5px,.9vw,14px);cursor:help}
.ca-dash .ca-card-head .ca-link,.ca-ev .ca-card-head .ca-link{margin-left:auto;flex:none;white-space:nowrap;font-size:clamp(12.5px,.9vw,14px)}
.ca-dash .ca-card-head .ca-info,.ca-ev .ca-card-head .ca-info{margin-left:-6px}
.ca-dash .ca-card-head .ca-pills{flex-wrap:nowrap;flex:none;gap:6px}
.ca-dash .ca-card-head .ca-pill{padding:6px clamp(9px,.85vw,13px);font-size:clamp(12px,.86vw,13.5px)}
.ca-dash-sub .ca-card{padding:16px}
.ca-dash-sub .ca-card-head{margin-bottom:12px}
/* Performance Snapshot head: title, pills and link share one row when the card is wide enough; otherwise the pills drop under the title */
#dash-perf{container-type:inline-size}
/* F6: title, compact 7D/30D/Season pills and "View Track Record" share ONE row; "View " drops first, the pills wrap under the title only below ~1366px */
#dash-perf .ca-card-head{gap:8px}
#dash-perf .ca-card-head .ca-pills{gap:4px}
#dash-perf .ca-card-head .ca-pill{padding:3px 5px;font-size:11px;border-radius:6px}
#dash-perf .ca-card-head .ca-link{font-size:12px}
@container (max-width:470px){#dash-perf .ca-lk-opt{display:none}}
/* head links stay inside the card padding: below ~430px (1366-1500px viewports) the Performance head tightens its gaps, pill padding and title, and the Slate head its pill padding, so the whole row fits */
@container (max-width:430px){#dash-perf .ca-card-head{gap:5px}#dash-perf .ca-card-head h2{font-size:14.5px}#dash-perf .ca-card-head .ca-info{margin-left:-8px}#dash-perf .ca-card-head .ca-pills{gap:3px}#dash-perf .ca-card-head .ca-pill{padding:3px 4px}}
@container (max-width:600px){#dash-slate .ca-card-head .ca-pills{gap:5px}#dash-slate .ca-card-head .ca-pill{padding:5px 9px}}
@container (max-width:392px){#dash-perf .ca-card-head{flex-wrap:wrap}#dash-perf .ca-card-head .ca-link{order:2}#dash-perf .ca-card-head .ca-pills{order:3;flex-basis:100%}}
.ca-dash-sub .ca-card-head .ca-pill{padding:5px clamp(7px,.7vw,11px);font-size:clamp(11.5px,.8vw,13px)}
.ca-dash-pillrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.ca-dash-pillrow .ca-pill{padding:clamp(6px,.5vw,8px) clamp(12px,1.05vw,18px);font-size:clamp(12.5px,.9vw,14.5px)}
.ca-dash-pillsep{width:clamp(8px,1.2vw,20px)}
.ca-dash-tabs{margin-bottom:12px}
.ca-dash-tabs .ca-pills{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}
.ca-dash-tabs .ca-pill{padding:7px 4px;font-size:clamp(11.5px,.8vw,13px);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
#dash-movers{container-type:inline-size}
/* compact Movers/Portfolio/Watchlist cards (1280-1440px): labels wrap to two lines instead of overflowing; ellipsis stays as the last-resort guard */
@container (max-width:470px){.ca-dash-card .ca-dash-tabs .ca-pills{gap:4px}.ca-dash-card .ca-dash-tabs .ca-pill{padding:5px 3px;font-size:11.5px;line-height:1.15;white-space:normal;display:flex;align-items:center;justify-content:center;text-align:center}}
.ca-dash-table{font-size:var(--fs-table)}
.ca-dash-table th{padding:9px 5px;font-size:var(--fs-table)}
.ca-dash-table th:first-child{border-top-left-radius:8px}.ca-dash-table th:last-child{border-top-right-radius:8px}
.ca-dash-table td{padding:6px 5px}
.ca-dash-table th:first-child,.ca-dash-table td:first-child{padding-left:10px}
.ca-dash-table .ca-conf{min-width:60px;padding:4px 5px;font-size:10.5px}
.ca-ell{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.ca-dash-table tr[data-href]{cursor:pointer}
.ca-dash-table tbody tr:hover{background:#FBFAF6}
.ca-dash-table .tlogo{width:20px!important;height:20px!important;max-width:20px;max-height:20px;margin:0!important}
.ca-dash-table .ca-league{width:18px;height:18px}
.ca-dash-table .ca-team{gap:7px}
.ca-dash-table .ca-alpha-cell{min-width:42px;padding:3px 5px}
.ca-dash-table .ca-go{width:26px;height:24px}
.ca-b{font-weight:700}
.ca-dash-odds{display:inline-flex;align-items:center;gap:6px}
.ca-dash-odds .ca-book{width:22px;height:22px}
.ca-dash-pair .tlogo+.tlogo{margin-left:-2px!important}
.ca-dash-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}
.ca-dash-dot.live{background:var(--red)}.ca-dash-dot.soon{background:var(--navy)}.ca-dash-dot.later{background:#E0A526}.ca-dash-dot.final{background:#B9B3A5}
.ca-dash-gtime{white-space:nowrap;color:var(--muted)}
/* Dashboard tables: 14px text at 1750px+, stepping down to 12px at 1440 (--fs-table); headers stay on one line */
.ca-dash .ca-dash-table,.ca-ev .ca-dash-table,.ca-trk .ca-dash-table{font-size:var(--fs-table)}
.ca-dash .ca-dash-table th,.ca-ev .ca-dash-table th,.ca-trk .ca-dash-table th{font-size:var(--fs-table);padding:10px 6px;line-height:1.2;white-space:nowrap}
.ca-dash .ca-dash-table td,.ca-ev .ca-dash-table td,.ca-trk .ca-dash-table td{padding:8px 6px}
.ca-dash .ca-dash-table th:first-child,.ca-dash .ca-dash-table td:first-child,.ca-ev .ca-dash-table th:first-child,.ca-ev .ca-dash-table td:first-child,.ca-trk .ca-dash-table th:first-child,.ca-trk .ca-dash-table td:first-child{padding-left:10px}
.ca-dash .ca-dash-table .ca-conf,.ca-ev .ca-dash-table .ca-conf,.ca-trk .ca-dash-table .ca-conf{min-width:clamp(54px,4.2vw,76px);padding:4px 6px;font-size:clamp(10px,.7vw,11.5px)}
.ca-dash .ca-dash-table .ca-alpha-cell,.ca-ev .ca-dash-table .ca-alpha-cell,.ca-trk .ca-dash-table .ca-alpha-cell{min-width:clamp(40px,3vw,52px);padding:4px 6px}
.ca-dash .ca-dash-table .ca-go,.ca-ev .ca-dash-table .ca-go,.ca-trk .ca-dash-table .ca-go{width:30px;height:26px}
.ca-dash .ca-dash-table .tlogo,.ca-ev .ca-dash-table .tlogo,.ca-trk .ca-dash-table .tlogo{width:clamp(18px,1.4vw,24px)!important;height:clamp(18px,1.4vw,24px)!important;max-width:24px;max-height:24px}
.ca-dash .ca-dash-table .ca-team,.ca-ev .ca-dash-table .ca-team,.ca-trk .ca-dash-table .ca-team{gap:8px}
.ca-dash-opps .ca-dash-who{max-width:clamp(140px,9.5vw,220px)}
.ca-dash-who .ca-ell{min-width:0}
.ca-dash-opps .ca-dash-mkt{max-width:clamp(100px,7vw,150px)}
.ca-dash-slate{table-layout:fixed}
.ca-dash-slate th:nth-child(1){width:13.5%}.ca-dash-slate th:nth-child(2){width:28.5%}.ca-dash-slate th:nth-child(3){width:28%}
.ca-dash-slate th:nth-child(4){width:9%}.ca-dash-slate th:nth-child(5){width:11%}.ca-dash-slate th:nth-child(6){width:10%}
/* narrower Slate card (1366-1440px): Market takes the Matchup/Line slack so typical prop markets ("Olave Under 85.5 Rec Yds") fit without clipping */
@container (min-width:461px) and (max-width:640px){.ca-dash-slate th:nth-child(1){width:16%}.ca-dash-slate th:nth-child(2){width:19%}.ca-dash-slate th:nth-child(3){width:33%}.ca-dash-slate th:nth-child(4){width:8.5%}.ca-dash-slate th:nth-child(5){width:10.5%}.ca-dash-slate th:nth-child(6){width:13%}.ca-dash-slate .ca-dash-pair .tlogo{display:none}}
.ca-dash .ca-dash-slate th,.ca-dash .ca-dash-slate td{padding-left:4px;padding-right:4px}
.ca-dash .ca-dash-slate th:first-child,.ca-dash .ca-dash-slate td:first-child{padding-left:10px}
.ca-dash .ca-dash-slate th{white-space:normal;vertical-align:bottom}
.ca-dash-slate td{overflow:hidden;text-overflow:ellipsis}
.ca-dash-slate .ca-dash-pair{max-width:100%;gap:5px}
.ca-dash .ca-dash-slate .ca-alpha-cell{min-width:36px;padding:4px}
.ca-dash-slate .ca-dash-pair .ca-ell{min-width:0}
.ca-dash-slate .ca-dash-mkt{max-width:100%}
.ca-dash-slate th:last-child,.ca-dash-slate td:last-child{padding-right:10px}
.ca-dash-actions{text-align:right}
.ca-dash-actions .ca-star{padding:0 1px;font-size:15px;vertical-align:middle}
.ca-dash-slate-wrap{max-height:clamp(480px,38vw,640px);overflow-y:auto}
.ca-dash-slate th{position:sticky;top:0;z-index:1}
#dash-slate{display:flex;flex-direction:column;container-type:inline-size}
#dash-opps{container-type:inline-size}
/* narrower Opportunities card (1280-1700px viewports): league logo only, two-line headers, tighter cells so all 11 columns fit without a scrollbar */
@container (max-width:940px){
  .ca-dash-opps .ca-dash-sport-t{display:none}
  .ca-dash .ca-dash-opps th{white-space:normal;vertical-align:bottom}
  .ca-dash .ca-dash-opps th,.ca-dash .ca-dash-opps td{padding-left:4px;padding-right:4px}
  .ca-dash-opps .ca-dash-who{max-width:138px}.ca-dash-opps .ca-dash-mkt{max-width:114px}
  .ca-dash .ca-dash-opps .ca-conf{min-width:50px}
}
@container (max-width:760px){.ca-dash-opps .ca-book{display:none}.ca-dash-opps .ca-dash-who{max-width:112px}.ca-dash-opps .ca-dash-mkt{max-width:90px}.ca-dash .ca-dash-opps .ca-conf{min-width:46px;padding:4px}}
@container (max-width:460px){#dash-slate .ca-card-head{flex-wrap:wrap}#dash-slate .ca-card-head .ca-link{order:2}#dash-slate .ca-card-head .ca-pills{order:3;flex-basis:100%}
  .ca-dash-slate th:nth-child(1){width:20%}.ca-dash-slate th:nth-child(2){width:27%}.ca-dash-slate th:nth-child(3){width:17%}.ca-dash-slate th:nth-child(4){width:11%}.ca-dash-slate th:nth-child(5){width:11%}.ca-dash-slate th:nth-child(6){width:14%}.ca-dash .ca-dash-slate .ca-go{width:26px}}
.ca-dash-minis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.ca-dash-mini{border:1px solid var(--line);border-radius:10px;padding:8px 6px;text-align:center}
.ca-dash-mini span{display:block;font-size:clamp(12px,.84vw,14px);color:var(--muted);font-weight:500}
.ca-dash-mini b{display:block;font:700 clamp(18px,1.3vw,24px)/1.25 var(--serif);margin-top:2px;white-space:nowrap}
.ca-dash-mvlist{display:grid}
.ca-dash-mv{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:4px 2px;border-bottom:1px solid #F0ECE3;text-decoration:none;color:var(--ink)}
.ca-dash-mv:last-child{border-bottom:0}
.ca-dash-mv:hover{background:#FBFAF6}
.ca-dash-mv-ic{display:grid;place-items:center;color:var(--navy)}
.ca-dash-mv-ic .tlogo,.ca-dash-mv-ic .ca-league{width:24px!important;height:24px!important;max-width:24px;max-height:24px;margin:0!important}
.ca-dash-mv-main{min-width:0}
.ca-dash-mv-main b{display:block;font-size:clamp(12.5px,.9vw,14px);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-dash-mv-main small,.ca-dash-mv-r small{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-dash-mv-r{text-align:right}
.ca-dash-mv-r b{font-size:clamp(12.5px,.9vw,14px);white-space:nowrap}
.ca-dash-expo{display:flex;align-items:center;gap:12px;margin:0 0 10px}
.ca-dash-expo .ca-donut-legend{flex:1;min-width:0;font-size:clamp(12px,.86vw,13.5px);gap:7px}
.ca-dash-expo .ca-dl-row{gap:5px}
.ca-dash-expo .ca-dl-pct{min-width:30px}
.ca-dash-expo .ca-dl-val{min-width:38px;text-align:right}
.ca-dash-expo .ca-dl-dot{width:9px;height:9px;margin-right:2px}
.ca-dash-expo .ca-dl-dot{border-radius:2px}
.ca-dash-donut{position:relative;flex:none}
.ca-dash-donut svg{display:block}
.ca-dash-donut-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.ca-dash-donut-c b{font:700 18px/1.1 var(--serif)}
.ca-dash-donut-c span{font-size:11px;color:var(--muted)}
.ca-dash-mtx h3{font-size:clamp(13px,.95vw,15px);margin:0 0 8px}
.ca-dash-mtx-row{display:grid;grid-template-columns:78px minmax(0,1fr) 34px;gap:8px;align-items:center;white-space:nowrap;font-size:clamp(12px,.86vw,13.5px);margin-bottom:5px}
.ca-dash-mtx-row i{height:10px;background:#E9E5DB;border-radius:5px;overflow:hidden}
.ca-dash-mtx-row i b{display:block;height:100%;background:var(--navy);border-radius:5px}
.ca-dash-mtx-row em{font-style:normal;text-align:right;font-weight:600}
.ca-dash-wl{display:grid}
.ca-dash-wl-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:clamp(12px,.86vw,13.5px);padding:6px 0;border-bottom:1px solid #F0ECE3}
.ca-dash-wl-row:last-child{border-bottom:0}
.ca-dash-wl-row a{text-decoration:none;min-width:0}
.ca-dash-wl-row a b,.ca-dash-wl-row a small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-dash-wl-row a b{font-weight:600}
.ca-dash-wl-row a small{font-size:.92em;color:var(--muted)}
.ca-dash-wl-row span{font-size:.92em;white-space:nowrap}
.ca-dash-wl-row .ca-star{padding:0}
#watchlist{container-type:inline-size}
#dash-expo{container-type:inline-size}
@container (max-width:215px){.ca-dash-expo .ca-dash-donut{width:72px!important;height:72px!important}.ca-dash-expo .ca-donut-legend{font-size:11.5px}.ca-dash-expo .ca-dl-row{gap:3px}.ca-dash-expo .ca-dl-pct{min-width:24px}.ca-dash-expo .ca-dl-val{min-width:30px}}
@container (max-width:250px){.ca-dash-expo .ca-dash-donut{width:84px!important;height:84px!important}.ca-dash-expo .ca-dash-donut svg{width:100%;height:100%}.ca-dash-expo{gap:8px}.ca-dash-expo .ca-dl-pct{min-width:26px}.ca-dash-expo .ca-dl-val{min-width:32px}}
/* wide enough: "Lions @ Chiefs   Lions ML +128   Sun 4:25 PM" on one line */
@container (min-width:290px){.ca-dash-wl-row a{display:flex;gap:10px;align-items:baseline}.ca-dash-wl-row a b{flex:0 1 auto}.ca-dash-wl-row a small{flex:1 1 0;min-width:0}}
@media (max-width:1180px){.ca-dash-main{grid-template-columns:minmax(0,1fr)}.ca-dash .ca-card-head{flex-wrap:wrap}}
/* +EV page (js/pages/ev.js). Type sizes are the shared fluid tokens (--fs-*, see :root); the stat cards, card heads and table cells reuse the
   dashboard rules above (selectors listed together). The 13-column table fits without an inner scrollbar through container queries on #ev-table. */
.ca-ev-updated{display:flex;flex-direction:column;align-items:flex-end;font-size:clamp(12px,.82vw,14px);line-height:1.3;color:var(--muted)}
.ca-ev-updated b{color:var(--ink);font-weight:600;font-size:clamp(13px,.9vw,15.5px)}
.ca-ev-refresh{display:grid;place-items:center}
.ca-ev-stats{margin-bottom:16px}
@media (min-width:1100px){.ca-ev-stats{grid-template-columns:repeat(5,minmax(0,1fr))}}
.ca-ev-stats .ca-stat-label{padding-right:18px}
.ca-note-s{display:none}
@container (max-width:290px){.ca-ev-stats .ca-note-l{display:none}.ca-ev-stats .ca-note-s{display:inline}}
.ca-ev-stats .ca-stat-value{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.ca-ev-stats .ca-stat-value small{font:600 clamp(12px,.9vw,15px) var(--sans)}
.ca-ev-hi{display:block;max-width:100%;text-decoration:none;color:var(--ink);font-weight:600}
.ca-ev-hi .ca-ell{display:block}
/* E4: filter card (~74%) + separate search card (~26%), same row, equal height */
.ca-ev-filterrow{display:grid;grid-template-columns:minmax(0,74fr) minmax(0,26fr);gap:16px;margin-bottom:16px;align-items:stretch}
.ca-ev-filters{padding:clamp(12px,1vw,18px) clamp(14px,1.2vw,22px)}
.ca-ev-fgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr) minmax(0,1.08fr) minmax(0,1fr) minmax(0,.92fr) minmax(0,1.24fr) minmax(0,1.1fr);gap:12px clamp(8px,.8vw,16px)}
.ca-sfind{display:flex;align-items:center;padding:clamp(12px,1vw,18px) clamp(10px,1vw,22px)}
.ca-sfind .ca-search svg{width:clamp(16px,1.1vw,20px);height:clamp(16px,1.1vw,20px);flex:none}
.ca-sfind .ca-search{flex:1;min-width:0;padding:0 clamp(8px,.75vw,12px);gap:6px}
/* Track Record search card is the narrow 23% rail column: tighter side padding up to 1500px so "Search teams, players, or games..." reads in full at 1280px */
@media (max-width:1500px){.ca-trk .ca-sfind{padding-left:10px;padding-right:10px}.ca-trk .ca-sfind .ca-search{padding:0 6px}}
.ca-f{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:13px;color:var(--ink)}
.ca-f span{color:var(--muted);font-weight:500}
.ca-f .ca-select{width:100%;min-width:0;height:40px;padding:0 6px;background:#fff;font-size:13px}
.ca-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 12px;height:40px;color:var(--muted)}
.ca-search .ca-input{border:0;padding:0;flex:1;min-width:0;outline:none;height:38px;background:transparent}
.ca-ev .ca-f span{font-size:var(--fs-label);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-ev .ca-f .ca-select,.ca-ev-sort .ca-select{height:clamp(36px,2.3vw,44px);font-size:clamp(12.5px,.85vw,15px);appearance:none;-webkit-appearance:none;padding:0 24px 0 clamp(7px,.6vw,12px);
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2314202E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 8px center;text-overflow:ellipsis}
.ca-ev-date{min-width:0}
.ca-ev .ca-ev-date .ca-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2314202E' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E")}
.ca-ev .ca-search{height:clamp(36px,2.3vw,44px)}
.ca-ev .ca-search .ca-input{height:clamp(34px,2.2vw,42px);font-size:clamp(12.5px,.85vw,15px)}
/* E2: left column ~70% (tabs row + table card), right rail ~30% starting level with the tabs row */
.ca-ev-main{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:16px;align-items:start}
.ca-ev-left{min-width:0;display:grid;gap:14px;align-content:start}
.ca-ev-tabsrow{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
.ca-ev-tabsrow .ca-pill{padding:clamp(9px,.7vw,13px) clamp(12px,1.25vw,26px);font-size:clamp(13px,.9vw,16px)}
.ca-ev-sort{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:5px 6px 5px 14px;font-size:clamp(13px,.9vw,15px);color:var(--muted)}
.ca-ev-sort .ca-select{min-width:clamp(150px,11vw,210px)}
.ca-ev-tablecard{padding:18px 16px;min-width:0;container-type:inline-size}
.ca-ev-tablecard .ca-card-head{margin-bottom:10px}
.ca-ev .ca-ev-table th{white-space:nowrap;vertical-align:bottom;line-height:1.2}
.ca-ev-table tr[data-href]{cursor:pointer}
.ca-ev-table tbody tr:hover{background:#FBFAF6}
.ca-ev-table .ca-conf{min-width:clamp(54px,4.2vw,76px)}
.ca-ev-table .ca-book{width:22px;height:22px}
.ca-ev-table .ca-league{width:clamp(16px,1.2vw,22px);height:clamp(16px,1.2vw,22px)}
.ca-ev-mkt{max-width:clamp(100px,8vw,160px)}
.ca-ev-who{display:flex;flex-direction:column;line-height:1.25;max-width:clamp(120px,9vw,200px)}
.ca-ev-who small{color:var(--muted);font-size:.86em}
.ca-ev-player{display:inline-flex;align-items:center;gap:2px}
.ca-ev-player .ca-star{padding:0 2px;font-size:15px}
.prop-proj td .ca-star{padding:0 4px 0 0;font-size:15px;vertical-align:-1px}
.ca-ev-table .ca-team .ca-ell{max-width:clamp(120px,10vw,200px)}
.ca-ev-prob .ca-fair{margin-left:4px}
.ca-ev-reset{margin:0 0 14px 4px}
/* narrower table card (1280-1700px viewports): league logo only, two-line headers, tighter cells */
@container (max-width:1200px){
  .ca-ev-sport-t{display:none}
  .ca-ev .ca-ev-table th{white-space:normal}
  .ca-ev .ca-ev-table th,.ca-ev .ca-ev-table td{padding-left:4px;padding-right:4px}
  .ca-ev .ca-ev-table th{padding-right:10px}
  .ca-ev-table .ca-ev-mkt{max-width:132px}.ca-ev-who,.ca-ev-table .ca-team .ca-ell{max-width:170px}
  .ca-ev .ca-ev-table .ca-conf{min-width:48px;padding:4px}
}
@container (max-width:900px){.ca-ev-table .ca-book{display:none}.ca-ev-table .ca-ev-mkt{max-width:116px}.ca-ev-who,.ca-ev-table .ca-team .ca-ell{max-width:128px}
  .ca-ev .ca-ev-table th,.ca-ev .ca-ev-table td{padding-left:3px;padding-right:3px}.ca-ev .ca-ev-table th{padding-right:10px}.ca-ev .ca-ev-table .ca-conf{min-width:44px}}
/* rail: Top Alpha, Market Pulse full width; EV Distribution + Performance by Edge Bucket side by side */
.ca-ev-rail{display:grid;gap:16px;align-content:start;min-width:0}
.ca-ev-pair{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:12px;align-items:stretch}
.ca-ev-rail-card{padding:clamp(12px,1vw,18px);min-width:0;container-type:inline-size}
.ca-ev-rail-card .ca-card-head{margin-bottom:10px}
.ca-ev-pair .ca-card-head h2{font-size:var(--fs-card-sm);white-space:normal;line-height:1.15}
@media (min-width:1440px){.ca-ev-pair .ca-card-head h2{font-size:var(--fs-rail-title);white-space:nowrap}}
.ca-ev-ta{display:grid;grid-template-columns:clamp(38px,3.2vw,58px) auto minmax(0,1fr) auto clamp(56px,4.4vw,84px);gap:clamp(6px,.7vw,12px);align-items:center;padding:clamp(6px,.6vw,10px) 0;border-bottom:1px solid #F0ECE3;text-decoration:none;color:var(--ink)}
.ca-ev-ta:last-child{border-bottom:0}
.ca-ev-ta:hover{background:#FBFAF6}
.ca-ev-rank{display:grid;place-items:center;height:clamp(38px,3vw,56px);border-radius:8px;background:#F6EFE0;font:700 var(--fs-label) var(--serif)}
.ca-ev-logos{display:flex;align-items:center}
.ca-ev-logos .tlogo{width:clamp(24px,2vw,40px)!important;height:clamp(24px,2vw,40px)!important;max-width:40px;max-height:40px;margin:0!important}
.ca-ev-logos .tlogo+.tlogo{margin-left:-4px!important}
.ca-ev-ta-main{min-width:0}
.ca-ev-ta-main b{display:block;max-width:100%;font-size:var(--fs-table);font-weight:600}
.ca-ev-ta-main small{display:block;color:var(--muted);font-size:clamp(11px,.78vw,13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@container (max-width:360px){.ca-ev-ta-main small{white-space:normal;line-height:1.25}}
.ca-ev-ta-odds{font-weight:600;font-size:var(--fs-table)}
.ca-ev-edge{display:flex;flex-direction:column;align-items:center;justify-content:center;height:clamp(38px,3vw,56px);border-radius:8px;background:var(--green-tint);color:var(--green);font-size:clamp(10.5px,.75vw,12.5px);line-height:1.15}
.ca-ev-edge b{font-size:clamp(13px,.95vw,16.5px)}
.ca-ev-pr{display:grid;grid-template-columns:clamp(26px,2vw,34px) minmax(0,1fr) auto;gap:clamp(8px,.8vw,12px);align-items:center;padding:clamp(7px,.6vw,10px) 0;border-bottom:1px solid #F0ECE3;text-decoration:none;color:var(--ink)}
.ca-ev-pr:last-child{border-bottom:0}
a.ca-ev-pr:hover{background:#FBFAF6}
.ca-ev-pr-ic{display:grid;place-items:center;color:var(--navy)}
.ca-ev-pr-main{min-width:0}
.ca-ev-pr-main b{display:block;font-size:var(--fs-table);font-weight:600}
.ca-ev-pr-main small{display:block;color:var(--muted);font-size:clamp(11px,.78vw,13px)}
.ca-ev-pr-r{text-align:right;white-space:nowrap}
.ca-ev-pr-r b{display:block;font-size:clamp(13px,.95vw,16px)}
.ca-ev-pr-r small{display:block;color:var(--muted);font-size:clamp(11px,.78vw,13px)}
.ca-ev-pr-empty .ca-ev-pr-main small{white-space:normal}
.ca-ev-axis{margin:2px 0 0;text-align:center;font-size:clamp(10.5px,.74vw,12px);color:var(--muted)}
#ev-dist .ca-hist{display:block;margin:0 auto;width:100%;height:auto}
/* the SVG scales with the card, so its text is set in viewBox units (170 wide): ~10px rendered at every rail width; below ~190px every second bin label is dropped */
#ev-dist .ca-axis,#ev-dist .ca-bar-val{font-size:9.5px}
/* below ~190px all 6 bin labels stay (none are dropped): every 2nd label drops onto a second row (14 viewBox units lower; the svg gets the matching space below) so the larger font never overlaps its neighbour */
@container (max-width:190px){#ev-dist .ca-axis,#ev-dist .ca-bar-val{font-size:10.5px}#ev-dist .ca-hist{overflow:visible;margin-bottom:8.3cqw}#ev-dist .ca-axis-alt{transform:translateY(14px)}}
@container (max-width:165px){#ev-dist .ca-axis,#ev-dist .ca-bar-val{font-size:12px}}
@container (max-width:140px){#ev-dist .ca-axis,#ev-dist .ca-bar-val{font-size:13.5px}}
.ca-ev-bt{font-size:clamp(10.5px,.72vw,13px)}
.ca-ev-bt th{padding:6px 2px;font-size:inherit;background:transparent;white-space:nowrap}
.ca-ev-bt td{padding:7px 2px;white-space:nowrap}
.ca-ev-bt th:not(:first-child),.ca-ev-bt td:not(:first-child){text-align:right}
.ca-cap{margin:8px 0 0;font-size:11px;line-height:1.35;color:var(--muted)}
@container (max-width:860px){.ca-ev .ca-ev-table th,.ca-ev .ca-ev-table td{padding-left:2px;padding-right:2px}.ca-ev .ca-ev-table th{padding-right:8px}.ca-ev .ca-ev-table .ca-conf{min-width:42px}.ca-ev-prob .ca-fair{margin-left:3px}}
/* narrow rail (1280px): the sample size n leaves the table (it stays in each row's tooltip) so Edge Range / Hits / ROI / Units fit */
@container (max-width:205px){#ev-buckets .ca-ev-bt th:nth-child(2),#ev-buckets .ca-ev-bt td:nth-child(2){display:none}}
.ca-ev-legacy{margin-top:20px}
@media (max-width:1180px){.ca-ev-main{grid-template-columns:minmax(0,1fr)}.ca-ev-fgrid{grid-template-columns:repeat(4,minmax(0,1fr))}.ca-ev-filterrow{grid-template-columns:minmax(0,1fr)}}
/* Game page (js/pages/game.js) */
/* M1: --ob-h is the odds-box height; the boxes straddle the hero's bottom edge (half inside, half on the page background). The gradient
   paints to the rounded corners by itself, so the hero does not clip (overflow:visible) and the boxes can hang below it. */
.ca-gm{--ob-h:92px}
.ca-gm-hero{position:relative;display:flow-root;border-radius:14px;color:#fff;padding:18px 28px 24px;margin-bottom:16px;
  background:radial-gradient(ellipse 38% 55% at 14% -6%,rgba(160,196,236,.42),transparent 70%),radial-gradient(ellipse 38% 55% at 86% -6%,rgba(160,196,236,.36),transparent 70%),
  radial-gradient(ellipse 80% 40% at 50% 112%,rgba(38,104,70,.50),transparent 70%),linear-gradient(180deg,#16314F 0%,#0C1C30 52%,#08121E 100%);
  background-color:#0C1C30}
/* Stadium photo per sport (the hero root carries sport-<sport>; gmHero in js/pages/game.js). Layers, top to bottom: dark overlay (keeps the white
   text AA-readable over the brightest lights), the photo, then the original dark gradient, which shows if the photo fails to load. The base rule's
   background-color stops a white flash while the image loads. Backgrounds clip to border-radius, so the 14px corners need nothing extra. NFL + CFB share the football photo. */
.ca-gm-hero.sport-cfb,.ca-gm-hero.sport-nfl,.ca-gm-hero.sport-mlb,.ca-gm-hero.sport-nba{background-size:cover;background-position:center 40%;background-repeat:no-repeat}
.ca-gm-hero.sport-cfb{background-image:linear-gradient(180deg,rgba(8,18,30,.66) 0%,rgba(8,18,30,.48) 45%,rgba(8,18,30,.74) 100%),url(../public/stadiums/football.jpg),linear-gradient(180deg,#16314F 0%,#0C1C30 52%,#08121E 100%)}
.ca-gm-hero.sport-nfl{background-image:linear-gradient(180deg,rgba(8,18,30,.66) 0%,rgba(8,18,30,.48) 45%,rgba(8,18,30,.74) 100%),url(../public/stadiums/football.jpg),linear-gradient(180deg,#16314F 0%,#0C1C30 52%,#08121E 100%)}
.ca-gm-hero.sport-mlb{background-image:linear-gradient(180deg,rgba(8,18,30,.66) 0%,rgba(8,18,30,.48) 45%,rgba(8,18,30,.74) 100%),url(../public/stadiums/baseball.jpg),linear-gradient(180deg,#16314F 0%,#0C1C30 52%,#08121E 100%)}
.ca-gm-hero.sport-nba{background-image:linear-gradient(180deg,rgba(8,18,30,.66) 0%,rgba(8,18,30,.48) 45%,rgba(8,18,30,.74) 100%),url(../public/stadiums/basketball.jpg),linear-gradient(180deg,#16314F 0%,#0C1C30 52%,#08121E 100%)}
.ca-gm-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;font-size:15px}
.ca-gm-back{color:#fff;text-decoration:none;font-weight:600;justify-self:start}
.ca-gm-back:hover{text-decoration:underline}
.ca-gm-when{color:#DCE6F2;font-weight:500;text-align:center}
.ca-gm-venue{margin:8px 0 0;text-align:center;color:#F2F6FB;font-size:14px;line-height:1.35}
.ca-gm-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px;margin:14px 0 32px}
.ca-gm-team{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-width:0}
.ca-gm-team .tlogo{width:112px!important;height:112px!important;max-width:112px;max-height:112px;margin:0 0 4px!important;filter:drop-shadow(0 4px 14px rgba(0,0,0,.45))}
.ca-gm-team h1{margin:0;font:700 30px/1.15 var(--sans);letter-spacing:-.2px;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.ca-gm-name{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0}
.ca-gm-name .ca-star{font-size:24px;padding:0 2px;text-shadow:0 2px 10px rgba(0,0,0,.45)}
.ca-gm-rec{margin:0;color:#EEF3F9;font-size:16px}
.ca-gm-at{font:700 42px var(--sans);color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.ca-gm-final{margin:-6px 0 14px;text-align:center;color:#EAF1F9;font-weight:600}
.ca-gm-ok{color:#7FE0A4}.ca-gm-miss{color:#FF9C94}
.ca-gm-odds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ca-gm-hero.has-odds{padding-bottom:0;margin-bottom:calc(var(--ob-h) / 2 + 20px)}
.ca-gm-hero.has-odds .ca-gm-odds{margin-bottom:calc(var(--ob-h) / -2)}
.ca-gm-ob{display:flex;flex-direction:column;justify-content:center;height:var(--ob-h);background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--ink);padding:8px 0;box-shadow:0 6px 18px rgba(14,34,56,.16)}
.ca-gm-ob-vals{display:grid;grid-template-columns:1fr 1fr;text-align:center}
.ca-gm-ob-vals .ca-gm-v+.ca-gm-v{border-left:1px solid var(--line)}
.ca-gm-v{font:600 22px var(--sans);padding:4px 8px;font-variant-numeric:tabular-nums}
.ca-gm-v.lean{color:var(--red);font-weight:800}
.ca-gm-ob-t{text-align:center;color:var(--muted);font-size:13px;letter-spacing:.06em;margin-top:6px;padding-top:8px;border-top:1px solid #F0ECE3}
.ca-gm-read{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;padding:20px 24px;margin-bottom:16px}
.ca-gm-mark{display:grid;place-items:center;white-space:nowrap;flex:none;width:64px;height:64px;border-radius:12px;background:var(--navy);color:#fff;font:700 28px var(--serif)}
.ca-gm-mark{grid-auto-flow:column;gap:1px}.ca-gm-mark i{font-style:italic}
.ca-gm-kicker{margin:0 0 4px;color:var(--muted);font-weight:600;font-size:13px;letter-spacing:.08em}
.ca-gm-read h2{font:700 27px/1.2 var(--sans);margin:0 0 6px;letter-spacing:-.2px}
.ca-gm-read p{margin:0;color:#3B4756;font-size:16px}
.ca-gm-read p b{color:var(--ink)}
.ca-gm-read p.ca-gm-raw{margin-top:8px;font-size:13px;color:var(--muted)}
.ca-gm-edge{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:176px;height:96px;border-radius:12px;background:var(--green-tint);color:var(--green);border:1px solid #CBE9D5}
.ca-gm-edge b{font:700 34px var(--sans)}
.ca-gm-edge span{font-weight:700;font-size:13px;letter-spacing:.08em}
.ca-gm-tabs{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line);margin-bottom:18px}
.ca-gm-tab{background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;padding:14px 8px;font:600 17px var(--sans);color:var(--ink);cursor:pointer}
.ca-gm-tab:hover{background:rgba(14,34,56,.04)}
.ca-gm-tab.on{border-bottom-color:var(--navy);font-weight:700}
.ca-gm-panel{display:grid;gap:16px;min-width:0}
.ca-gm-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.ca-gm-card{padding:16px 18px;min-height:150px;display:flex;flex-direction:column;gap:8px;min-width:0}
.ca-gm-cl{font-weight:600;font-size:15px}
.ca-gm-big{font:700 42px/1.1 var(--sans)}
.ca-gm-big small{font:500 20px var(--sans);color:var(--muted)}
.ca-gm-mid{font:700 32px/1.15 var(--sans);margin-top:10px}
.ca-gm-sub{color:var(--muted);font-size:14px;min-width:0}
.ca-gm-card .ca-conf{align-self:flex-start;min-width:0;padding:4px 10px}
.ca-gm-wp,.ca-gm-score{display:flex;align-items:center;gap:10px}
.ca-gm-wp{margin-top:4px}
.ca-gm-wp b{font:700 26px var(--sans)}
.ca-gm-score{justify-content:center;margin-top:10px;font:700 34px var(--sans)}
.ca-gm-score span{color:var(--muted);font-weight:500}
.ca-gm-card .tlogo{width:30px!important;height:30px!important;max-width:30px;max-height:30px;margin:0!important}
.ca-gm-proj h2,.ca-gm-ins-card h2,.ca-gm-cover h2,.ca-gm-moves h2,.ca-gm-books h2,.ca-gm-power h2,.ca-gm-flow h2{font:700 24px var(--sans)}
.ca-gm-table{font-size:16px}
.ca-gm-table th{background:transparent;text-align:center;font-weight:600;font-size:15px;color:var(--ink);padding:10px 12px}
.ca-gm-table th:first-child,.ca-gm-table td:first-child{text-align:left;padding-left:4px;width:22%}
.ca-gm-table td{text-align:center;padding:14px 12px}
.ca-gm-lower{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
.ca-gm-lower.solo{grid-template-columns:minmax(0,1fr)}
.ca-gm-lower.solo .ca-gm-flow{max-width:560px}
.ca-gm-flow .ca-legend{margin:2px 0 0;gap:6px 16px}
.ca-gm-flow .ca-legend-item{white-space:nowrap}
.ca-gm-flow .ca-legend-note{color:var(--muted);font-size:12px;font-style:italic}
.ca-gm-flow .ca-chart{margin:12px 0 34px;height:clamp(230px,16vw,300px)!important}
.ca-gm-flow .ca-gm-flow-note{margin:0 0 6px;font-size:12px;line-height:1.4}
.ca-gm-flow-cover{margin-top:18px;padding-top:16px;border-top:1px solid #F0ECE3}
.ca-gm-flow-cover h3{margin:0 0 4px;font:700 17px var(--sans)}
.ca-gm-flow-cover .ca-gm-cov{gap:10px}
.ca-gm-flow-cover .ca-gm-cov-s b{font-size:20px}
.ca-gm-ins{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;padding:12px 0;border-top:1px solid #F0ECE3}
.ca-gm-ins:first-of-type{border-top:0}
.ca-gm-ins b{font-size:16px}
.ca-gm-ins p{margin:3px 0 0;color:var(--muted);font-size:14px;line-height:1.4}
.ca-gm-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:50%}
.ca-gm-ic-red{background:var(--red-tint);color:var(--red)}.ca-gm-ic-amber{background:var(--amber-tint);color:var(--amber)}
.ca-gm-ic-blue{background:var(--blue-tint);color:var(--blue)}.ca-gm-ic-green{background:var(--green-tint);color:var(--green)}
.ca-gm-cov{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;margin-top:6px}
.ca-gm-cov-s{display:inline-flex;align-items:center;gap:8px}
.ca-gm-cov-s b{font:700 22px var(--sans)}
.ca-gm-cov .tlogo{width:32px!important;height:32px!important;max-width:32px;max-height:32px;margin:0!important}
.ca-gm-bar{display:flex;height:16px;border-radius:8px;overflow:hidden;background:var(--line)}
.ca-gm-bar i{display:block;height:100%}
.ca-gm-cap{margin:12px 0 0;text-align:center;color:var(--muted);font-size:14px}
.ca-gm-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.ca-gm-mv{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #F0ECE3}
.ca-gm-mv:first-of-type{border-top:0}
.ca-gm-mv b{display:block;font-size:15px}
.ca-gm-mv small{color:var(--muted);font-size:13px}
.ca-gm-legacy>.section:first-child{margin-top:0}
.ca-gm-legacy .section-title h2{font:700 24px var(--sans)}
.ca-gm-legacy .ev-empty{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}
@media (max-width:1180px){.ca-gm-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.ca-gm-lower,.ca-gm-two{grid-template-columns:minmax(0,1fr)}.ca-gm-read{grid-template-columns:auto minmax(0,1fr)}.ca-gm-edge{grid-column:1 / -1}}
/* Track Record (js/pages/track.js) */
.ca-axis-main{font-weight:600;fill:var(--ink)}
.ca-axis-sub{font:11.5px var(--sans);fill:var(--muted)}
/* Track Record. T7 proportions (measured from the mockup): row 2 63/37, row 3 32/45/23, row 4 filter row + table 77 / rail 23. Type = the shared G4 tokens;
   stat labels are the exception (UPPERCASE ~13px, letter-spaced). */
.ca-trk .ca-card h2{font-size:var(--fs-card);white-space:nowrap}
.ca-trk .ca-title{flex:1 1 0;min-width:0;flex-wrap:nowrap}
.ca-trk .ca-title h1{white-space:nowrap}
.ca-trk .ca-title p{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(14px,.95vw,17px)}
.ca-trk .ca-title-right{flex:none;flex-wrap:nowrap;gap:clamp(8px,.7vw,14px)}
.ca-trk .ca-title-right .ca-pills{gap:clamp(6px,.55vw,10px);flex-wrap:nowrap}
.ca-trk .ca-title-right .ca-pill{padding:clamp(8px,.62vw,12px) clamp(12px,1vw,19px);font-size:clamp(13px,.85vw,15px)}
.ca-trk-recordbar{display:flex;justify-content:flex-start;width:auto;margin:-4px 0 16px;padding:10px 14px}
.ca-trk-recordbar .ca-f{min-width:220px}
.ca-trk-error{padding:24px}
.ca-trk-banner{margin:0 0 16px;padding:12px 16px;border:1px solid #EBD6A6;border-radius:10px;background:var(--amber-tint);color:#6B4A12;font-size:14px}
.ca-trk-banner .ca-link{background:none;border:0;padding:0;margin-left:6px;color:var(--blue);font:600 14px var(--sans);cursor:pointer;text-decoration:underline}
/* stat cards: five equal, ~150px tall; labels UPPERCASE 13px (page-scoped, the shared label style is untouched) */
.ca-trk-stats{margin-bottom:16px}
@media (min-width:1100px){.ca-trk-stats{grid-template-columns:repeat(5,minmax(0,1fr))}}
.ca-trk-stats .ca-stat{position:relative;min-height:150px;padding:16px clamp(12px,1vw,20px);container-type:inline-size}
.ca-trk-stats .ca-stat-label{font-size:clamp(12px,.68vw,13.5px);letter-spacing:.07em;font-weight:700;text-transform:uppercase}
.ca-trk-stats .ca-stat-body{align-items:center}
.ca-trk-stats .ca-stat-value{font-size:var(--fs-stat);display:flex;align-items:baseline;gap:clamp(8px,.7vw,14px);white-space:nowrap}
.ca-trk-stats .ca-stat-value small{font:600 clamp(14px,1.05vw,20px) var(--sans)}
.ca-trk-stats .ca-stat-sub{font-size:clamp(12px,.88vw,13.5px);line-height:1.35;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ca-trk-stats .ca-stat-visual{flex:none;display:grid;place-items:center}
@container (max-width:250px){.ca-trk-stats .ca-stat-visual svg{max-width:54px;height:auto}.ca-trk-stats .ca-stat-label{font-size:11.5px;letter-spacing:.04em}}
@container (max-width:215px){.ca-trk-stats .ca-stat-visual{display:none}}
@container (max-width:370px){.ca-trk-stats .ca-stat:first-child .ca-stat-visual svg{max-width:50px}}
@container (max-width:300px){.ca-trk-stats .ca-stat:first-child .ca-stat-visual{display:none}}
.ca-trk-rec{display:inline-flex;align-items:flex-start;gap:clamp(4px,.4vw,7px)}
.ca-trk-rec>span{display:flex;flex-direction:column;align-items:center;line-height:1.1}
.ca-trk-rec b,.ca-trk-rec>i{font:700 calc(var(--fs-stat)*.88)/1.1 var(--serif)}
.ca-trk-rec em{font:600 clamp(11px,.72vw,13px) var(--sans);color:var(--muted);font-style:normal;margin-top:4px;letter-spacing:.05em}
.ca-trk-rec>i{font-style:normal;color:var(--ink)}
.ca-trk-dots{display:inline-flex;gap:clamp(3px,.3vw,6px);align-self:center}
.ca-trk-dot{display:inline-grid;place-items:center;width:clamp(18px,1.35vw,26px);height:clamp(18px,1.35vw,26px);border-radius:50%;color:#fff;font:700 clamp(9.5px,.68vw,12px) var(--sans);font-style:normal}
.ca-trk-dot.W{background:var(--green)}.ca-trk-dot.L{background:var(--red)}.ca-trk-dot.P{background:#B9B3A5}
@container (max-width:250px){.ca-trk-dot{width:17px;height:17px;font-size:9px}.ca-trk-dots{gap:3px}}
/* rows 2 and 3 */
.ca-trk-r1{display:grid;grid-template-columns:minmax(0,63fr) minmax(0,37fr);gap:16px;margin-bottom:16px}
.ca-trk-r2{display:grid;grid-template-columns:minmax(0,32fr) minmax(0,45fr) minmax(0,23fr);gap:16px;margin-bottom:16px}
.ca-trk-card{min-width:0;padding:clamp(14px,1.05vw,20px) clamp(16px,1.25vw,24px);container-type:inline-size}
.ca-trk-card .ca-card-head{align-items:flex-start;justify-content:space-between;margin-bottom:10px;flex-wrap:nowrap}
.ca-trk-card .ca-card-head>div:first-child{min-width:0}
.ca-trk-card .ca-card-head p{margin:4px 0 0;font-size:clamp(12.5px,.9vw,14px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-trk-card .ca-card-head h2{font-size:var(--fs-card)}
.ca-trk-card .ca-pills{flex:none;flex-wrap:nowrap;gap:clamp(5px,.5vw,8px)}
.ca-trk-card .ca-pill{padding:clamp(6px,.55vw,9px) clamp(10px,.95vw,17px);font-size:clamp(12px,.85vw,14px)}
.ca-trk-legend{display:flex;gap:clamp(10px,1vw,18px);flex-wrap:nowrap;white-space:nowrap;font-size:clamp(12px,.85vw,14px);color:var(--ink);padding-top:6px}
.ca-trk-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
@container (max-width:600px){#trk-calib .ca-card-head{flex-wrap:wrap}#trk-calib .ca-trk-legend{padding-top:0;flex-basis:100%}}
@container (max-width:520px){#trk-market .ca-card-head{flex-wrap:wrap}#trk-market .ca-trk-legend{padding-top:0;flex-basis:100%}}
@container (max-width:340px){.ca-trk-card .ca-card-head p{white-space:normal}}
#trk-cum .ca-chart{margin:6px 0 34px}
.ca-trk-bars{display:flex;justify-content:center;padding-top:6px}
.ca-trk-bars svg{width:100%;max-width:640px;height:auto}
.ca-trk-lg{display:grid;grid-template-columns:clamp(70px,5.6vw,92px) minmax(0,1fr) auto auto auto;gap:clamp(8px,.8vw,14px);align-items:center;padding:clamp(8px,.75vw,13px) 0;font-size:clamp(13px,.9vw,15px)}
.ca-trk-lg-n{display:inline-flex;align-items:center;gap:10px}
.ca-trk-lg-n .ca-league{width:clamp(22px,1.6vw,30px);height:clamp(22px,1.6vw,30px)}
.ca-trk-bar{display:block;height:clamp(10px,.8vw,14px);border-radius:7px;background:#E9E5DB;overflow:hidden}
.ca-trk-bar b{display:block;height:100%;background:var(--green);border-radius:7px}
.ca-trk-lg-p{text-align:right;min-width:3.4em}
.ca-trk-lg-r{color:var(--muted);font-size:clamp(12px,.85vw,14px);white-space:nowrap}
.ca-trk-lg em{font-style:normal;color:var(--muted);font-size:clamp(12px,.85vw,14px);text-align:right}
@container (max-width:330px){.ca-trk-lg-r{display:none}.ca-trk-lg{grid-template-columns:70px minmax(0,1fr) auto auto}}
.ca-trk-fm{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(52px,auto);gap:clamp(8px,.8vw,14px);align-items:center;padding:clamp(9px,.8vw,14px) 0;border-bottom:1px solid #F0ECE3;font-size:clamp(13px,.9vw,15.5px)}
.ca-trk-fm:last-child{border-bottom:0}
.ca-trk-fm b{font-weight:600;white-space:nowrap}
.ca-trk-fm strong{font:700 clamp(14px,1vw,18px) var(--sans);text-align:right}
/* row 4: filter row (77 / 23, search over the rail), then table (77) + rail (23) */
.ca-trk-filterrow{display:grid;grid-template-columns:minmax(0,77fr) minmax(0,23fr);gap:16px;margin-bottom:16px;align-items:stretch;container-type:inline-size}
.ca-trk-filters{display:flex;align-items:center;gap:clamp(10px,1.2vw,24px);padding:clamp(10px,.9vw,16px) clamp(12px,1.1vw,20px)}
.ca-trk-filters .ca-pills{flex:none;flex-wrap:nowrap;gap:clamp(5px,.5vw,9px)}
.ca-trk-filters .ca-pill{padding:clamp(7px,.6vw,12px) clamp(10px,.9vw,18px);font-size:clamp(12px,.86vw,14.5px);white-space:nowrap}
.ca-trk-fgrid{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr) minmax(0,.9fr) minmax(0,1.15fr) minmax(0,1.1fr);gap:clamp(6px,.6vw,12px)}
.ca-trk .ca-f{gap:5px}
.ca-trk .ca-f span{font-size:clamp(11.5px,.8vw,14px);color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-trk .ca-f .ca-select,.ca-trk-recordbar .ca-select{height:clamp(34px,2.2vw,42px);font-size:clamp(12px,.82vw,14.5px);appearance:none;-webkit-appearance:none;padding:0 22px 0 clamp(7px,.6vw,11px);text-overflow:ellipsis;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2314202E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 7px center}
.ca-trk .ca-search{height:clamp(34px,2.2vw,42px)}
.ca-trk .ca-search .ca-input{height:clamp(32px,2.1vw,40px);font-size:clamp(12px,.82vw,15px);text-overflow:ellipsis}
/* F7: filters share one line from a ~1331px container up (1440px viewport); below that the select grid wraps under the pills */
@container (max-width:1330px){.ca-trk-filters{flex-wrap:wrap}.ca-trk-fgrid{flex-basis:100%}}
@container (min-width:1331px) and (max-width:1580px){
  .ca-trk-filters{gap:10px}
  .ca-trk-fgrid{grid-template-columns:repeat(6,minmax(0,auto));gap:5px}
  .ca-trk .ca-f .ca-select{padding:0 17px 0 5px;background-position:right 4px center;text-overflow:ellipsis}
  .ca-trk-filters .ca-pill{padding:6px 9px}
  .ca-trk-filters .ca-pills{gap:4px}
}
.ca-trk-main{display:grid;grid-template-columns:minmax(0,77fr) minmax(0,23fr);gap:16px;align-items:start}
.ca-trk-left{min-width:0}
.ca-trk-tablecard{padding:clamp(8px,.7vw,14px) clamp(8px,.8vw,16px) 14px;min-width:0;container-type:inline-size}
.ca-trk .ca-table-wrap{overflow:visible}
.ca-trk .ca-trk-table{table-layout:auto}
.ca-trk-table tr[data-href]{cursor:pointer}
.ca-trk-table tbody tr:hover{background:#FBFAF6}
.ca-trk-table th{background:transparent;vertical-align:bottom}
.ca-trk-table .tlogo{width:clamp(18px,1.4vw,24px)!important;height:clamp(18px,1.4vw,24px)!important;max-width:24px;max-height:24px;margin:0!important}
.ca-trk-table .ca-league{width:clamp(16px,1.2vw,22px);height:clamp(16px,1.2vw,22px)}
.ca-trk-table .ca-team .ca-ell{max-width:clamp(120px,9.4vw,200px)}
.ca-trk-pick{max-width:clamp(100px,7.2vw,140px)}
.ca-trk-fs{max-width:clamp(110px,10vw,210px)}
.ca-trk-date{color:var(--ink)}
.ca-trk-chip{display:inline-block;min-width:clamp(38px,3vw,54px);text-align:center;border-radius:6px;padding:clamp(4px,.35vw,6px) clamp(6px,.6vw,10px);font-weight:700;font-size:clamp(11.5px,.8vw,13.5px)}
.ca-trk-chip.W{background:var(--green-tint);color:var(--green)}
.ca-trk-chip.L{background:var(--red-tint);color:var(--red)}
.ca-trk-chip.P{background:#EEE9DD;color:var(--ink)}
.ca-trk-more{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 8px 0;font-size:13px}
.ca-trk-reset{margin:0 0 14px 4px}
@container (max-width:1000px){.ca-trk .ca-trk-table th{white-space:normal;padding-left:4px;padding-right:4px}.ca-trk .ca-trk-table td{padding-left:4px;padding-right:4px}.ca-trk-table .ca-team .ca-ell{max-width:150px}.ca-trk-pick{max-width:110px}.ca-trk-fs{max-width:170px}}
@container (max-width:880px){.ca-trk-lgt{display:none}.ca-trk-table .ca-team .ca-ell{max-width:130px}.ca-trk-fs{max-width:140px}}
.ca-trk-rail{display:grid;gap:16px;align-content:start;min-width:0}
.ca-trk-rail-card{padding:clamp(12px,1vw,18px) clamp(12px,1.1vw,20px);min-width:0;container-type:inline-size}
.ca-trk-rail-card .ca-card-head{margin-bottom:10px}
.ca-trk-rail-card .ca-card-head h2{font-size:clamp(17px,1.12vw,22px);white-space:normal;line-height:1.15}
.ca-trk-rail-card .ca-dash-tabs{margin-bottom:6px}
.ca-trk-rail-card .ca-dash-tabs .ca-pill{font-size:clamp(11.5px,.82vw,13.5px);padding:7px 4px}
.ca-trk-sg{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:clamp(6px,.7vw,14px);align-items:center;padding:clamp(8px,.7vw,12px) 2px;border-bottom:1px solid #F0ECE3;font-size:clamp(12.5px,.88vw,15px)}
.ca-trk-sg:last-child{border-bottom:0}
.ca-trk-sg b{font:700 clamp(13px,.92vw,15.5px) var(--sans);text-align:right}
.ca-trk-sg .muted{text-align:right;white-space:nowrap;font-size:clamp(12px,.82vw,14px)}
.ca-trk-mc{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:clamp(6px,.7vw,12px);align-items:center;padding:clamp(8px,.7vw,11px) 2px;border-bottom:1px solid #F0ECE3;font-size:clamp(12.5px,.88vw,15px)}
.ca-trk-mc:last-of-type{border-bottom:0}
.ca-trk-mc span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ca-trk-mc b{font:600 clamp(13px,.92vw,15.5px) var(--sans);text-align:right}
.ca-trk-verdict{font-style:normal;font-weight:600;font-size:clamp(10.5px,.74vw,12.5px);border-radius:6px;padding:4px clamp(6px,.55vw,9px);white-space:nowrap}
.ca-trk-verdict.ok{background:var(--green-tint);color:var(--green)}
.ca-trk-verdict.off{background:var(--amber-tint);color:var(--amber)}
.ca-trk-mc.solo b{grid-column:2 / 4}
.ca-trk-legacy{margin-top:24px}
.ca-trk-legacy>.section:first-child,.ca-trk-legacy>.ca-card:first-child .section{margin-top:0}
.ca-trk-legacy .section h2{font:700 24px var(--sans)}
.ca-trk-legacy .ev-empty{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}
@media (max-width:1180px){.ca-trk-r1,.ca-trk-main,.ca-trk-r2,.ca-trk-filterrow{grid-template-columns:minmax(0,1fr)}.ca-trk-fgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.ca-trk-filters{flex-wrap:wrap}.ca-trk-fgrid{flex-basis:100%}}
/* Sport pages (js/pages/board.js): title row (Power Rankings link + period navigator + date range), three columns ~23 / 50 / 27 that
   stack on their own, and the centre "This Week's Games" card (container-query table: no inner horizontal scroll). */
.ca-res{display:inline-grid;place-items:center;min-width:1.55em;padding:.12em .3em;border-radius:5px;font:700 .92em/1.25 var(--sans)}
.ca-res.W{background:var(--green-tint);color:var(--green)}.ca-res.L{background:var(--red-tint);color:var(--red)}.ca-res.P{background:#EEE9DD;color:var(--ink)}
.ca-bd-rk{margin-right:clamp(4px,.8vw,16px);color:var(--blue);font-weight:600;font-size:clamp(13px,.85vw,15px);text-decoration:none;white-space:nowrap}
.ca-bd-rk:hover{text-decoration:underline}
.ca-bd-nav{display:flex;align-items:center;gap:clamp(6px,.6vw,10px)}
.ca-bd-nav .ca-dn-btn{height:clamp(38px,2.35vw,46px);width:clamp(38px,2.35vw,46px);flex:none}
.ca-bd-nav .ca-dn-btn:disabled,.ca-bd-next:disabled{opacity:.4;cursor:default}
.ca-bd-period{position:relative;display:flex;align-items:center;height:clamp(38px,2.35vw,46px);min-width:clamp(120px,9vw,170px);border:1px solid var(--line);background:#fff;border-radius:8px;font:600 clamp(13px,.85vw,15px) var(--sans)}
.ca-bd-weeksel{appearance:none;-webkit-appearance:none;border:0;background:transparent;font:inherit;color:var(--ink);height:100%;width:100%;padding:0 clamp(30px,2.3vw,40px) 0 clamp(10px,.8vw,16px);cursor:pointer;outline-offset:-2px;border-radius:8px}
.ca-bd-daypick{display:flex;align-items:center;height:100%;width:100%;padding:0 clamp(30px,2.3vw,40px) 0 clamp(10px,.8vw,16px);cursor:pointer;white-space:nowrap;position:relative}
.ca-bd-daypick input{position:absolute;inset:0;opacity:0;pointer-events:none;width:100%}
.ca-bd-next{position:absolute;right:0;top:0;bottom:0;width:clamp(30px,2.3vw,40px);border:0;background:transparent;color:var(--ink);font-size:clamp(18px,1.2vw,22px);line-height:1;cursor:pointer}
.ca-daterange,.ca-trk-daterange{display:inline-flex;align-items:center;gap:10px;height:clamp(38px,2.35vw,46px);padding:0 clamp(12px,1vw,18px);border:1px solid var(--line);background:#fff;border-radius:8px;font:600 clamp(13px,.85vw,15px) var(--sans);white-space:nowrap}
.ca-board-main{display:grid;grid-template-columns:minmax(0,23fr) minmax(0,50fr) minmax(0,27fr);gap:16px;align-items:start}
.ca-board-col{min-width:0;display:grid;gap:16px;align-content:start}
.ca-board-slot{display:none}
@media (max-width:1180px){.ca-board-main{grid-template-columns:minmax(0,1fr)}.ca-board-center{order:-1}.ca-board-col{gap:14px}.ca-board .ca-title-row{flex-wrap:wrap}}
.ca-board .ca-card h2,.ca-rk .ca-card h2{font-size:var(--fs-card)}
.ca-board-card{padding:18px 16px;min-width:0}
.ca-bd-games{container-type:inline-size;padding:clamp(14px,1.1vw,22px) clamp(10px,1vw,20px)}
.ca-bd-head h2{white-space:nowrap}
.ca-bd-head p{margin:4px 0 0;color:var(--muted);font-size:clamp(12px,.82vw,15px)}
.ca-bd-tools{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin:clamp(10px,.9vw,18px) 0}
.ca-bd-tools .ca-pills{gap:clamp(5px,.5vw,9px);flex-wrap:wrap}
.ca-bd-tools .ca-pill{padding:clamp(6px,.55vw,11px) clamp(9px,.9vw,18px);font-size:clamp(11.5px,.8vw,14px);white-space:nowrap}
.ca-bd-sel.ca-bd-sel.ca-bd-sortsel{width:clamp(140px,9vw,176px)}.ca-bd-filters{display:flex;gap:clamp(5px,.5vw,9px);flex-wrap:wrap}
.ca-bd-sel{appearance:none;-webkit-appearance:none;height:clamp(32px,2.1vw,40px);padding:0 24px 0 clamp(8px,.7vw,12px);font-size:clamp(11.5px,.72vw,13.5px);font-weight:500;width:clamp(96px,6.6vw,118px);text-overflow:ellipsis;cursor:pointer;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2314202E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 7px center}
.ca-bd-sec{margin:14px 2px 6px;font-weight:700;font-size:clamp(12px,.82vw,14px);color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.ca-board-table{font-size:clamp(10.5px,.62vw,12.5px);table-layout:fixed}
.ca-board-table th{padding:7px 2px;white-space:normal;line-height:1.2;vertical-align:bottom;text-align:center;font-weight:600}
.ca-board-table td{padding:clamp(7px,.6vw,11px) 2px;vertical-align:middle;text-align:center;overflow:hidden;text-overflow:ellipsis}
.ca-board-table th.ca-bd-grp{text-align:center;color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:5px}
.ca-board-table th.ca-bd-sub{font-size:.92em;font-weight:500;color:var(--muted);padding-top:5px}
.ca-board-table .ca-bd-gs{border-left:1px solid #F0ECE3}
.ca-board-table th:first-child,.ca-board-table td:first-child{text-align:left;padding-left:clamp(10px,.6vw,12px)}
.ca-board-table tr[data-href]{cursor:pointer}
.ca-board-table tbody tr:hover{background:#FBFAF6}
.ca-board-table td.ca-bd-match{position:relative;overflow:visible}
.ca-board-table .ca-bd-match .ca-star{position:absolute;left:0;top:50%;transform:translateY(-50%);padding:0;font-size:.85em;line-height:1}
.ca-board-table .tlogo{width:clamp(14px,1vw,20px)!important;height:clamp(14px,1vw,20px)!important;max-width:none;max-height:none;margin:0!important;flex:none}
.ca-bd-pair{gap:clamp(3px,.28vw,5px);white-space:nowrap}
/* column widths (% of the table) by the width of the card content: wide above 780px (everything inline); up to 780 the spread / pick cells stack team over number; up to 660 the matchup stacks away over home too. No width needs a horizontal scroll. */
.ca-bd-up col:nth-child(1){width:22%}.ca-bd-up col:nth-child(2){width:7.5%}.ca-bd-up col:nth-child(3){width:5.5%}.ca-bd-up col:nth-child(4){width:10%}.ca-bd-up col:nth-child(5){width:5%}.ca-bd-up col:nth-child(6){width:5.5%}.ca-bd-up col:nth-child(7){width:10%}.ca-bd-up col:nth-child(8){width:5%}.ca-bd-up col:nth-child(9){width:6%}.ca-bd-up col:nth-child(10){width:5.5%}.ca-bd-up col:nth-child(11){width:5.5%}.ca-bd-up col:nth-child(12){width:6%}.ca-bd-up col:nth-child(13){width:6.5%}
.ca-bd-fin col:nth-child(1){width:22%}.ca-bd-fin col:nth-child(2){width:5.5%}.ca-bd-fin col:nth-child(3){width:7%}.ca-bd-fin col:nth-child(4){width:5.5%}.ca-bd-fin col:nth-child(5){width:9.5%}.ca-bd-fin col:nth-child(6){width:5%}.ca-bd-fin col:nth-child(7){width:5.5%}.ca-bd-fin col:nth-child(8){width:9.5%}.ca-bd-fin col:nth-child(9){width:5%}.ca-bd-fin col:nth-child(10){width:8%}.ca-bd-fin col:nth-child(11){width:7%}.ca-bd-fin col:nth-child(12){width:6%}.ca-bd-fin col:nth-child(13){width:4.5%}
.ca-bd-side{display:inline-flex;align-items:center;gap:clamp(3px,.35vw,6px);min-width:0}
.ca-bd-pair b{min-width:0;overflow:hidden;text-overflow:ellipsis}
@container (max-width:780px){
.ca-bd-up col:nth-child(1){width:21%}.ca-bd-up col:nth-child(2){width:7.5%}.ca-bd-up col:nth-child(3){width:6.5%}.ca-bd-up col:nth-child(4){width:8.5%}.ca-bd-up col:nth-child(5){width:5%}.ca-bd-up col:nth-child(6){width:6.5%}.ca-bd-up col:nth-child(7){width:8.5%}.ca-bd-up col:nth-child(8){width:5%}.ca-bd-up col:nth-child(9){width:6%}.ca-bd-up col:nth-child(10){width:5.5%}.ca-bd-up col:nth-child(11){width:5.5%}.ca-bd-up col:nth-child(12){width:8.5%}.ca-bd-up col:nth-child(13){width:6%}
.ca-bd-fin col:nth-child(1){width:20.5%}.ca-bd-fin col:nth-child(2){width:6%}.ca-bd-fin col:nth-child(3){width:8.5%}.ca-bd-fin col:nth-child(4){width:6.5%}.ca-bd-fin col:nth-child(5){width:7.5%}.ca-bd-fin col:nth-child(6){width:5%}.ca-bd-fin col:nth-child(7){width:6.5%}.ca-bd-fin col:nth-child(8){width:7.5%}.ca-bd-fin col:nth-child(9){width:5%}.ca-bd-fin col:nth-child(10){width:8%}.ca-bd-fin col:nth-child(11){width:7.5%}.ca-bd-fin col:nth-child(12){width:7%}.ca-bd-fin col:nth-child(13){width:4.5%}
  .ca-board-table .ca-go{width:20px}
  .ca-board-table td,.ca-board-table th{padding-left:1px;padding-right:1px}
  .ca-board-table td:first-child,.ca-board-table th:first-child{padding-left:9px}
  .ca-board-table .ca-bd-pk{display:block;max-width:100%;margin:0 0 1px;font-size:.88em;line-height:1.1}
  .ca-board-table th.ca-bd-sub{font-size:.86em}
  .ca-bd-sp i{display:block;font-size:.88em;line-height:1.1}
}
@container (max-width:660px){
.ca-bd-up col:nth-child(1){width:15%}.ca-bd-up col:nth-child(2){width:9%}.ca-bd-up col:nth-child(3){width:7%}.ca-bd-up col:nth-child(4){width:8%}.ca-bd-up col:nth-child(5){width:5.5%}.ca-bd-up col:nth-child(6){width:7%}.ca-bd-up col:nth-child(7){width:8%}.ca-bd-up col:nth-child(8){width:5.5%}.ca-bd-up col:nth-child(9){width:8%}.ca-bd-up col:nth-child(10){width:6%}.ca-bd-up col:nth-child(11){width:6%}.ca-bd-up col:nth-child(12){width:8.5%}.ca-bd-up col:nth-child(13){width:6.5%}
.ca-bd-fin col:nth-child(1){width:14.5%}.ca-bd-fin col:nth-child(2){width:7.5%}.ca-bd-fin col:nth-child(3){width:9%}.ca-bd-fin col:nth-child(4){width:7%}.ca-bd-fin col:nth-child(5){width:7.5%}.ca-bd-fin col:nth-child(6){width:5.5%}.ca-bd-fin col:nth-child(7){width:7%}.ca-bd-fin col:nth-child(8){width:7.5%}.ca-bd-fin col:nth-child(9){width:5.5%}.ca-bd-fin col:nth-child(10){width:8.5%}.ca-bd-fin col:nth-child(11){width:8.5%}.ca-bd-fin col:nth-child(12){width:7%}.ca-bd-fin col:nth-child(13){width:5%}
  .ca-bd-pair{flex-direction:column;align-items:flex-start;gap:2px}
  .ca-bd-side{gap:4px}
}
/* A wide centre card (content width >= 665px, i.e. a 1536px+ window: 673px at 1536, 846px at 1920; 630px at 1440 keeps the stacked forms): the matchup stays on one line ("BUF @ ATL", logos inline; the stacked form above is only for <= 660px) and the upcoming table's Kickoff reads "Sun 1:00 PM" on one line, so its column is widened at the matchup / alpha columns' expense. */
@container (min-width:665px){
.ca-bd-up col:nth-child(1){width:21%}.ca-bd-up col:nth-child(2){width:11%}.ca-bd-up col:nth-child(3){width:5.5%}.ca-bd-up col:nth-child(4){width:8.5%}.ca-bd-up col:nth-child(5){width:5%}.ca-bd-up col:nth-child(6){width:5.5%}.ca-bd-up col:nth-child(7){width:8.5%}.ca-bd-up col:nth-child(8){width:5%}.ca-bd-up col:nth-child(9){width:6.5%}.ca-bd-up col:nth-child(10){width:5.5%}.ca-bd-up col:nth-child(11){width:5.5%}.ca-bd-up col:nth-child(12){width:6.5%}.ca-bd-up col:nth-child(13){width:6%}
  .ca-bd-up .ca-bd-time{white-space:nowrap}.ca-bd-up .ca-bd-time span{display:inline}
}

.ca-bd-pair i{font-style:normal;color:var(--muted);margin:0 1px}
.ca-bd-pair b{font-weight:600}
.ca-bd-time{color:var(--muted);line-height:1.25}.ca-bd-time span{display:block;white-space:nowrap}
.ca-bd-sp i{font-style:normal;color:var(--muted)}
.ca-bd-proj{font-size:.78em;font-weight:400;white-space:nowrap}
.ca-bd-th-match,.ca-bd-th-time{text-align:left}
.ca-board-table .ca-alpha-cell{min-width:0;padding:.35em .6em;font-size:1em}
.ca-bd-fin .ca-bd-final{line-height:1.3}.ca-bd-up .ca-bd-alpha{white-space:nowrap}.ca-bd-final span{display:block;white-space:nowrap}.ca-bd-final .ca-bd-win{font-weight:700}
.ca-bd-res{white-space:nowrap}
.ca-bd-pk{display:inline-block;max-width:calc(100% - 1.9em);overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;margin-right:.3em;color:var(--muted);font-weight:600}
/* the graded table's result cells always stack the pick over its W / L / P chip: beside the chip a 4-5 letter abbreviation (WAKE, M-OH, NMSU) was clipped to "WAK…" even at 1920 */
.ca-bd-fin .ca-bd-res .ca-bd-pk{display:block;max-width:100%;margin:0 0 1px;font-size:.88em;line-height:1.1}
.ca-bd-go{text-align:center}
.ca-board-table .ca-go{width:clamp(22px,1.5vw,28px);height:clamp(22px,1.5vw,26px);font-size:.95em}
.ca-bd-mkt{max-width:100%;font-weight:600}
.ca-bd-odds{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.ca-bd-odds .ca-book{width:22px;height:22px}
.ca-bd-props{table-layout:auto}
.ca-bd-props td,.ca-bd-props th{text-align:left}
.ca-bd-em-moneyline [data-m=spread],.ca-bd-em-moneyline [data-m=total],.ca-bd-em-spread [data-m=moneyline],.ca-bd-em-spread [data-m=total],.ca-bd-em-total [data-m=moneyline],.ca-bd-em-total [data-m=spread]{opacity:.38}
.ca-bd-more{display:block;width:100%;margin:8px 0 2px;padding:clamp(8px,.6vw,12px);border:1px solid var(--line);border-radius:8px;background:#F1EEE6;color:var(--ink);font:600 clamp(12px,.82vw,14px) var(--sans);cursor:pointer}
.ca-bd-more:hover{background:#EAE6DA}
/* Sport page, left column (js/pages/board-left.js): Season Performance, Model vs. Market, Market Intelligence, Key Insights */
.ca-bl-card{padding:clamp(12px,1vw,18px);container-type:inline-size;min-width:0}
.ca-board .ca-bl-card h2{font-size:clamp(14px,1.05vw,22px);white-space:nowrap}
.ca-bl-head{margin-bottom:8px;gap:2px 8px}
.ca-bl-head .ca-link{font-size:clamp(11.5px,.8vw,14px);white-space:nowrap}
.ca-bl-head .ca-info{margin-left:auto;flex:none}
.ca-bl-card .ca-empty{padding:2px 0 4px;margin:0;font-size:clamp(12px,.82vw,14px);line-height:1.4}
.ca-bl-cap{margin:2px 0 8px;color:var(--muted);font-size:clamp(11px,.76vw,13px);line-height:1.35}
.ca-bl-scope{margin:2px 0 6px}.ca-bl-scope .ca-pills{gap:6px;flex-wrap:nowrap}
.ca-bl-scope .ca-pill,.ca-bl-pills .ca-pill{padding:clamp(5px,.42vw,8px) clamp(7px,.5vw,12px);font-size:clamp(10.5px,.7vw,13px);white-space:nowrap}
.ca-bl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(6px,.6vw,10px)}
.ca-bl-grid .ca-stat{min-height:0;padding:clamp(8px,.7vw,12px) clamp(9px,.8vw,14px);box-shadow:none;container-type:inline-size}
.ca-bl-grid .ca-stat-label{font-size:clamp(11px,.78vw,14px);font-weight:500}
.ca-bl-grid .ca-stat-label .ca-info{margin-left:4px}
.ca-bl-grid .ca-stat-value{font-size:clamp(18px,1.4vw,28px);margin-top:3px}
.ca-bl-wl{white-space:nowrap;margin-right:clamp(4px,.4vw,8px)}
.ca-bl-grid .ca-stat-value small{display:inline-block;white-space:nowrap;font:600 clamp(11px,.78vw,15px) var(--sans)}
.ca-bl-grid .ca-stat-sub{font-size:clamp(10.5px,.72vw,12.5px);margin-top:2px}
.ca-bl-grid .ca-stat-body{align-items:flex-end}
.ca-bl-grid .ca-stat-visual{flex:none}
@container (max-width:118px){.ca-bl-grid .ca-stat-visual{display:none}}
.ca-bl-pills{margin:4px 0 8px}.ca-bl-pills .ca-pills{gap:clamp(4px,.4vw,6px)}
.ca-bl-s{display:none}
@container (max-width:285px){.ca-bl-l{display:none}.ca-bl-s{display:inline}}
@container (max-width:420px){.ca-bl-v{display:none}}
@container (max-width:285px){.ca-bl-head{flex-wrap:nowrap}.ca-board .ca-bl-card .ca-bl-head h2{font-size:13.5px}.ca-bl-head .ca-link{font-size:10.5px}}
.ca-bl-legend{display:flex;gap:clamp(10px,1vw,18px);justify-content:center;margin:2px 0 6px;font-size:clamp(11px,.76vw,13px);color:var(--muted)}
.ca-bl-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.ca-bl-lg-ca{background:var(--navy)}.ca-bl-lg-mk{background:#9AA3AE}
.ca-scatter .ca-plot{left:clamp(30px,2.5vw,40px);right:clamp(14px,1.1vw,20px);top:6px;bottom:22px}
.ca-scatter .ca-yl,.ca-scatter .ca-xl{font-size:clamp(10px,.7vw,12px)}
.ca-sc-dot{width:var(--r,10px);height:var(--r,10px);background:var(--navy);box-shadow:0 0 0 2px #fff;cursor:help}
.ca-bl-edgerow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;font-size:clamp(11px,.76vw,13px)}
.ca-bl-edge{display:flex;flex-direction:column;align-items:flex-end;background:var(--green-tint);border-radius:8px;padding:clamp(5px,.45vw,9px) clamp(9px,.8vw,14px);line-height:1.2}
.ca-bl-edge span{font-size:clamp(10.5px,.72vw,12.5px);color:var(--muted)}
.ca-bl-edge b{font-size:clamp(13px,.95vw,18px);color:var(--green);white-space:nowrap}
.ca-bl-pulse .ca-ev-pr{padding:clamp(7px,.6vw,10px) 0}
.ca-bl-pulse .ca-ev-pr-main b{font-size:clamp(12px,.82vw,15px)}
.ca-bl-pulse .ca-ev-pr-r b{font-size:clamp(12.5px,.88vw,16px)}
.ca-bl-pulse .ca-ev-pr-main small,.ca-bl-pulse .ca-ev-pr-r small{font-size:clamp(10.5px,.72vw,12.5px)}
.ca-bl-pulse .ca-ev-pr{grid-template-columns:clamp(22px,1.7vw,32px) minmax(0,1fr) auto}
.ca-bl-pulse .ca-ev-pr-ic svg{width:clamp(18px,1.4vw,24px);height:auto}
.ca-bl-in{display:flex;align-items:center;gap:clamp(8px,.8vw,14px);padding:clamp(6px,.55vw,10px) 0;border-bottom:1px solid #F0ECE3}
.ca-bl-in:last-child{border-bottom:0}
.ca-bl-in-ic{flex:none;display:grid;place-items:center;width:clamp(30px,2.2vw,42px);height:clamp(30px,2.2vw,42px);border-radius:50%}
.ca-bl-in-ic svg{width:clamp(16px,1.2vw,22px);height:auto}
.ca-bl-in-homefav{background:var(--red-tint);color:var(--red)}.ca-bl-in-unders{background:var(--blue-tint);color:var(--blue)}.ca-bl-in-overs{background:var(--green-tint);color:var(--green)}
.ca-bl-in-group{background:var(--amber-tint);color:var(--amber)}.ca-bl-in-short{background:var(--blue-tint);color:var(--blue)}
.ca-bl-in-t{min-width:0}
.ca-bl-in-t b{display:block;font-size:clamp(12.5px,.88vw,16px);font-weight:600}
.ca-bl-in-t small{display:block;color:var(--muted);font-size:clamp(11px,.76vw,13.5px);line-height:1.3}
/* Sport page, right column (js/pages/board-right.js): Top Alpha Edges, Betting Splits, Model Projections. Heads / pills / empty states reuse the left-column rules (.ca-bl-*). */
.ca-ev-at{font-style:normal;color:var(--muted);font-size:clamp(11px,.8vw,14px);margin:0 clamp(3px,.35vw,6px)}
.ca-ev-ta-noaux{grid-template-columns:clamp(38px,3.2vw,58px) auto minmax(0,1fr) clamp(56px,4.4vw,84px)}
.ca-br-ta .ca-ev-ta{grid-template-columns:clamp(32px,2.5vw,50px) auto minmax(0,1fr) auto clamp(52px,3.8vw,74px);gap:clamp(5px,.55vw,10px)}
.ca-br-ta .ca-ev-ta-noaux{grid-template-columns:clamp(32px,2.5vw,50px) auto minmax(0,1fr) clamp(52px,3.8vw,74px)}
.ca-br-ta .ca-ev-rank,.ca-br-ta .ca-ev-edge{height:clamp(36px,2.4vw,46px)}
.ca-br-ta .ca-ev-ta{padding:clamp(5px,.45vw,8px) 0}
.ca-br-ta .ca-ev-logos{flex:none}
.ca-br-ta .ca-ev-logos .tlogo{width:clamp(20px,1.7vw,34px)!important;height:clamp(20px,1.7vw,34px)!important}
.ca-br-ta .ca-ev-logos .tlogo+.tlogo{margin-left:0!important}
.ca-br-ta .ca-ev-ta-main b{font-size:clamp(12px,.84vw,15.5px);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;white-space:normal;line-height:1.2}
.ca-br-ta .ca-ev-ta-main small{font-size:clamp(10.5px,.72vw,12.5px)}
.ca-br-ta .ca-ev-ta-odds{font-size:clamp(11px,.8vw,14px);text-align:center}
.ca-br-ta .ca-res{font-size:clamp(11px,.8vw,14px);min-width:2em;padding:.25em .4em}
@container (max-width:340px){.ca-br-ta .ca-ev-at{display:none}.ca-br-ta .ca-ev-ta{gap:5px}}
@container (max-width:330px){.ca-br-pills .ca-bl-l{display:none}.ca-br-pills .ca-bl-s{display:inline}}
.ca-br-pills .ca-pills{flex-wrap:nowrap}
.ca-br-sel{border:1px solid var(--line);background:#fff;border-radius:8px;font:500 clamp(11.5px,.8vw,14px) var(--sans);color:var(--ink);padding:clamp(4px,.35vw,7px) clamp(6px,.5vw,10px);min-width:0;max-width:100%}
.ca-bl-head .ca-br-sel{margin-left:auto;flex:none;width:auto}
.ca-bl-head .ca-br-sel+.ca-info{margin-left:0}
.ca-br-tabs .ca-pills{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;flex-wrap:nowrap}
.ca-br-tabs .ca-pill{padding:clamp(6px,.5vw,9px) 2px;font-size:clamp(10.5px,.74vw,13px);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
.ca-br-game{margin:8px 0 0}.ca-br-game .ca-br-sel{width:100%;text-overflow:ellipsis}
.ca-br-split{display:flex;align-items:center;gap:clamp(10px,1vw,20px);margin:clamp(8px,.8vw,14px) 0}
.ca-br-donut{position:relative;flex:none;width:clamp(96px,7.4vw,136px)}
.ca-br-donut svg{display:block;width:100%;height:auto}
.ca-br-dc{position:absolute;inset:0;display:grid;place-content:center;text-align:center;line-height:1.1}
.ca-br-dc b{font:700 clamp(17px,1.4vw,27px) var(--serif)}
.ca-br-dc span{font-size:clamp(10.5px,.78vw,13.5px);color:var(--muted);font-weight:600}
.ca-br-leg{flex:1;min-width:0;display:grid;gap:clamp(8px,.8vw,14px)}
.ca-br-lg{display:flex;align-items:center;gap:6px;font-size:clamp(11.5px,.82vw,15px);min-width:0}
.ca-br-lg i{width:10px;height:10px;border-radius:2px;flex:none}
.ca-br-lgn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ca-br-lg b{font-weight:600;font-variant-numeric:tabular-nums}
.ca-br-bar{margin-top:clamp(6px,.6vw,10px)}
.ca-br-bl{display:block;font-size:clamp(11px,.78vw,13.5px);color:var(--muted)}
.ca-br-b{display:flex;height:clamp(9px,.7vw,13px);border-radius:7px;overflow:hidden;margin:4px 0}
.ca-br-b i{display:block;height:100%}
.ca-br-bv{display:flex;justify-content:space-between;gap:8px;font-size:clamp(10.5px,.74vw,13px);font-weight:600;font-variant-numeric:tabular-nums}
.ca-br-asof{margin:8px 0 0}
.ca-br-table{font-size:clamp(11.5px,.8vw,14px);margin-top:2px}
.ca-br-table th{background:transparent;color:var(--ink);padding:clamp(6px,.5vw,9px) clamp(3px,.3vw,6px);font-size:.95em;text-align:center}
.ca-br-table td{padding:clamp(6px,.42vw,8px) clamp(3px,.3vw,6px);text-align:center;white-space:nowrap}
.ca-br-table th:first-child,.ca-br-table td:first-child{text-align:left;padding-left:clamp(4px,.4vw,8px)}
.ca-br-table td:last-child{font-weight:600}
.ca-br-tot td{font-weight:600;background:#FBFAF6;border-top:1px solid var(--line)}
/* Power Rankings (the legacy rankingsTable, restyled; app.js rankingsCard) */
.ca-pills a.ca-pill{display:inline-block;text-decoration:none}
.ca-rk-card{padding:18px 16px;min-width:0}
.ca-rk-card .ca-card-head .rk-conf{margin-left:auto}
.ca-rk-table th.rk-th{padding:10px 8px;cursor:pointer;user-select:none}
.ca-rk-table th.rk-th:hover,.ca-rk-table th.sorted{color:var(--blue)}
.ca-rk-table td{padding:9px 8px}
.ca-rk-table .tlogo{width:22px!important;height:22px!important;max-width:22px;max-height:22px;margin:0 8px 0 0!important}
.ca-rk-note{margin:14px 2px 0;max-width:960px;color:var(--muted);font-size:13px;line-height:1.6}
/* Settings (app.js buildSettings): one card, a block per setting */
.ca-set{padding:0}
.ca-set-block{padding:22px 24px;border-bottom:1px solid var(--line)}
.ca-set-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.ca-set-head h2{font-size:22px}
.ca-set-head p{margin:5px 0 0;color:var(--muted);font-size:13px}
.ca-set-foot{padding:16px 24px;display:flex}
.settings .set-warn{margin:0 0 16px}
/* Search overlay (js/shell.js) */
.ca-find{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 0;background:rgba(14,34,56,.45)}
.ca-find[hidden]{display:none}
.ca-find-box{width:100%;max-width:620px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px rgba(16,24,40,.28);overflow:hidden}
.ca-find-field{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);color:var(--muted)}
.ca-find-input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:500 17px var(--sans);color:var(--ink)}
.ca-find-input::-webkit-search-cancel-button{display:none}
.ca-find-esc{border:1px solid var(--line);border-radius:5px;padding:2px 6px;font:600 11px var(--sans)}
.ca-find-results{max-height:min(60vh,420px);overflow-y:auto;padding:6px}
.ca-find-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:8px;color:var(--ink);text-decoration:none}
.ca-find-item b{font-size:15px}
.ca-find-item small{color:var(--muted);font-size:12.5px}
.ca-find-item:hover,.ca-find-item.on{background:var(--blue-tint)}
.ca-find-empty{margin:0;padding:18px 12px;color:var(--muted);font-size:14px}
/* Take These (take.html, js/pages/take.js) */
.ca-take .ca-card{margin-top:16px}
.ca-take .ca-take-progress p{margin:0}
.ca-take-bar{height:8px;border-radius:99px;background:#ECE8DF;overflow:hidden;margin:0 0 10px}
.ca-take-bar i{display:block;height:100%;background:var(--green)}
.ca-take-table td small{display:block;color:var(--muted);font-size:12px;line-height:1.3}
.ca-take-table .ca-take-other{white-space:nowrap}
.ca-take-table .ca-take-stale{color:var(--amber);font-weight:600}
.ca-take-table .ca-dash-odds{display:inline-flex;align-items:center;gap:6px}
@media (max-width:639px){
  .ca-take-table thead{display:none}
  .ca-take-table,.ca-take-table tbody,.ca-take-table tr,.ca-take-table td{display:block;width:100%}
  .ca-take-table tr{border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;margin-bottom:12px;background:var(--card)}
  .ca-take-table td{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #F0ECE3;white-space:normal;text-align:right}
  .ca-take-table td::before{content:attr(data-label);color:var(--muted);font-weight:600;text-align:left;flex:none}
  .ca-take-table td:last-child{border-bottom:0}
}
/* Scorecard (scorecard.html, js/pages/scorecard.js) */
.ca-sc .ca-card{margin-top:16px}
.ca-sc .ca-stats{margin-bottom:0;margin-top:16px}
.ca-sc .ca-stats .ca-card{margin-top:0}
.ca-sc-drop{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;padding:28px 16px;border:2px dashed var(--line);border-radius:var(--radius);color:var(--muted);cursor:pointer}
.ca-sc-drop.over,.ca-sc-drop:focus-within,.ca-sc-drop:hover{border-color:var(--navy);background:var(--blue-tint)}
.ca-sc-file{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.ca-sc-controls{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:14px;font-weight:600}
.ca-sc-controls .ca-input{width:110px;margin-left:6px}
.ca-sc-alert{border-color:var(--red)}
.ca-sc-alert p{margin:0 0 10px}
.ca-sc-table td small{color:var(--muted)}
.ca-sc-side{display:flex;flex-wrap:wrap;gap:32px;margin-bottom:10px}
.ca-sc-side div{display:flex;flex-direction:column;gap:2px}
.ca-sc-side b{font-size:28px;line-height:1.1}
.ca-sc-side small{color:var(--muted);font-size:12.5px}
@media (max-width:639px){
  .ca-sc-table thead{display:none}
  .ca-sc-table,.ca-sc-table tbody,.ca-sc-table tr,.ca-sc-table td{display:block;width:100%}
  .ca-sc-table tr{border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;margin-bottom:12px;background:var(--card)}
  .ca-sc-table td{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #F0ECE3;white-space:normal;text-align:right}
  .ca-sc-table td::before{content:attr(data-label);color:var(--muted);font-weight:600;text-align:left;flex:none}
  .ca-sc-table td:last-child{border-bottom:0}
}
