/* Redesign v3 (flags.redesign_v3, branch redesign). A declutter layer over the kwonprops shell: same pages, same data, same markup.
   Loaded last and scoped to html.rd3, so the flag-off site never sees a rule here.
   Tokens: a 4/8px spacing scale (--s1..--s12), one type scale (--t11..--t32), one accent (green), green and red only for hit and miss.
   Everything else is ink on one dark surface: no ambient glow, no third colour, sentence-case labels, lighter bezels, 44px targets on phones. */

:root.rd3{
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;
  --t11:11px;--t12:12px;--t13:13px;--t15:15px;--t17:17px;--t20:20px;--t24:24px;--t32:32px;
  --acc:#3DDC97;--hit:#3DDC97;--miss:#E8776F;
  --r:20px;--r-in:16px;--r-s:12px;
  --hair:rgba(255,255,255,.07);--hair-2:rgba(255,255,255,.11);
  --ink-2:#A9B1AC;--ink-3:#7F8790;
  --core:#111519;--core-2:#111519;
  --pad:clamp(16px,3vw,40px);
  /* legacy-amber-ok */ --amber:#B9C0C8;--amber-dim:rgba(255,255,255,.06);   /* the third colour retires: every amber use reads as neutral ink */
}
/* ---------- surface ---------- */
.rd3 body::before{display:none}
.rd3 body::after{opacity:.022}
.rd3 body{font-family:Geist,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:var(--t15);line-height:1.45}
.rd3 main{padding:88px var(--pad) 96px}
.rd3 .shell{padding:3px;border-radius:var(--r);background:rgba(255,255,255,.025);border:1px solid var(--hair)}
.rd3 .core{border-radius:calc(var(--r) - 3px);background:var(--core);box-shadow:none;padding:var(--s5)}
.rd3 .bento{gap:var(--s4)}
.rd3 .card-head{margin-bottom:var(--s4);gap:var(--s3)}
.rd3 .card-head h2{font-size:var(--t15);font-weight:600;letter-spacing:-.01em}
.rd3 .card-head small{font-size:var(--t12);letter-spacing:0;text-transform:none;color:var(--ink-3)}
.rd3 .sh{margin:var(--s8) 0 var(--s3)}
.rd3 .sh h2{font:600 var(--t20)/1.2 Geist,system-ui,sans-serif;letter-spacing:-.01em;text-transform:none}
.rd3 .sh small{font-size:var(--t12);color:var(--ink-3)}
.rd3 .sh .rule{display:none}
.rd3 .eyebrow{font-size:var(--t11);letter-spacing:.08em;padding:4px 10px}
.rd3 .hist-note,.rd3 .mdl-note,.rd3 .pd-note{font-size:var(--t12);color:var(--ink-3)}
/* ---------- nav: a lighter island on desktop, brand + search + data on phones, five tabs below ---------- */
.rd3 .nav{top:12px;padding:5px 5px 5px 18px;background:#0E1114;box-shadow:none;border-color:var(--hair)}   /* solid: nothing ghosts through a pinned bar (Joseph, 2026-10-29) */
.rd3 .pg-matchups .mu-tabs,.rd3 .pg-home .home-jump,.rd3 .pg-research nav.tabs{--cover:var(--bg);background:var(--bg)}
.rd3 .pg-props .mk-row{--cover:var(--core);background:var(--core)}   /* the market row sits inside the board card: its band is card-coloured */
.rd3 .brand{font-size:18px;margin-right:10px}
.rd3 .nav-links a{padding:9px 14px;font-size:var(--t13)}
.rd3 .nav-links a[aria-current="page"]{background:rgba(255,255,255,.08)}
.rd3 .tb{height:38px;padding:0 13px;font:500 var(--t13) Geist,system-ui,sans-serif;background:transparent}
.rd3 .tb.nav-data[aria-current="page"]{background:rgba(61,220,151,.08);border-color:rgba(61,220,151,.3)}
/* the site-wide season: a three-way segment in the nav tools (top right); long labels on desktop, short on phones */
.rd3 .rd3-season{height:38px;padding:3px;gap:2px;background:rgba(255,255,255,.04);border:1px solid var(--hair-2)}
.rd3 .rd3-season button{min-height:30px;padding:0 10px;font-size:var(--t12);color:var(--ink-3);border-radius:999px}
.rd3 .rd3-season button[aria-pressed="true"]{color:var(--ink);background:rgba(255,255,255,.1)}
.rd3 .rd3-season .s{display:none}
/* ---------- compact hero: sentence-case title, meta, the ? ---------- */
.rd3 .hero.hero-c{padding:4px 4px 0;margin-bottom:var(--s4)}
.rd3 .hero-c h1{font:600 var(--t20)/1.2 Geist,system-ui,sans-serif;letter-spacing:-.01em;text-transform:none}
.rd3 .hero-c .hc-m{font-size:var(--t13);color:var(--ink-3)}
.rd3 .hero-c .hc-q{width:28px;height:28px;background:rgba(255,255,255,.04)}
.rd3 .hero-c .hc-leg ul{margin-top:var(--s3);padding:var(--s3) var(--s4) var(--s3) 30px;border-radius:var(--r-in);font-size:var(--t13)}
.rd3 .hero-c .hc-leg ul p{margin:var(--s2) 0 0 -14px}
.rd3 .hero-c .strip-slot{margin-top:var(--s3)}
/* slate chips */
.rd3 .game{width:156px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.025)}
.rd3 .game .meta{font-size:var(--t11);letter-spacing:.04em;text-transform:none;margin-bottom:6px}
.rd3 .game .row{font-size:var(--t13);padding:2px 0}
.rd3 .game.all{width:76px;padding:10px 6px;font-size:var(--t11)}
.rd3 .game.all b{font-size:var(--t13)}
.rd3 .game[aria-pressed="true"]{background:rgba(61,220,151,.08);border-color:rgba(61,220,151,.4)}
/* ---------- controls: segments, pills, grades ---------- */
.rd3 .seg{padding:3px;gap:2px;background:rgba(255,255,255,.035);border-color:var(--hair)}
.rd3 .seg button{font:500 var(--t13) Geist,system-ui,sans-serif;padding:0 14px;min-height:34px;color:var(--ink-2)}
.rd3 .seg button[aria-pressed="true"]{background:rgba(255,255,255,.1);color:var(--ink)}
.rd3 .seg.g button[aria-pressed="true"]{background:rgba(61,220,151,.1);color:var(--acc)}
.rd3 .pill{min-width:46px;padding:4px 9px;font-size:var(--t12);letter-spacing:0;font-weight:600;box-shadow:inset 0 0 0 1px rgba(61,220,151,.3)}
.rd3 .pill.pass,.rd3 .pill.watch,.rd3 .pill.WATCH,.rd3 .pill.amb,.rd3 .pill.sp{background:rgba(255,255,255,.05);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--hair)}
.rd3 .pill.under,.rd3 .pill.PASS{background:rgba(232,119,111,.1);color:var(--miss);box-shadow:inset 0 0 0 1px rgba(232,119,111,.3)}
.rd3 .grade,.rd3 .ltr{border-radius:8px;font-weight:600}
.rd3 .mg .grade.B,.rd3 .ltr.B,.rd3 #mg.mgm .mg .grade.B{color:var(--ink);background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--hair-2)}
.rd3 .stat.watch .num{color:var(--ink)}
/* ---------- tables: one quiet header, roomier rows, sticky under the pinned rows ---------- */
.rd3 .plays .hd,.rd3 .hd,.rd3 .dl-h,.rd3 .mgm-hd>span{font-size:var(--t11);font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.rd3 .plays .hd{padding-bottom:var(--s2)}
.rd3 .plays .tr{padding:var(--s3) 0;min-height:52px}
.rd3 .plays .nm b{font-size:var(--t15);font-weight:500}
.rd3 .plays .nm span{font-size:var(--t12)}
.rd3 .plays .line .j{font-size:.86em}
.rd3 .spk u{border-top-color:rgba(255,255,255,.5)}
.rd3 .pg-props .plays .hd{position:sticky;top:calc(84px + var(--sat) + var(--strip-h) + var(--rd3-mk,0px));z-index:3;background:var(--core)}
/* ---------- Home: one job (tonight's games, search, five plays) ---------- */
.rd3 .rd3-search{display:flex;align-items:center;gap:var(--s3);width:100%;max-width:560px;min-height:48px;margin:0 0 var(--s4);padding:0 var(--s2) 0 var(--s4);border:1px solid var(--hair-2);border-radius:999px;background:rgba(255,255,255,.04);color:var(--ink-3);font:500 var(--t15) Geist,system-ui,sans-serif;cursor:pointer;text-align:left;transition:background .5s var(--ease),border-color .5s var(--ease),transform .5s var(--ease)}
.rd3 .rd3-search:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18);color:var(--ink-2)}
.rd3 .rd3-search:active{transform:scale(.99)}
.rd3 .rd3-search svg{width:18px;height:18px;flex:none;color:var(--ink-2)}
.rd3 .rd3-search span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd3 .rd3-search kbd{flex:none;font:500 var(--t11) "Geist Mono",monospace;padding:3px 7px;border-radius:7px;background:rgba(255,255,255,.07);color:var(--ink-3)}
.rd3 .rd3-search .go{flex:none;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center;color:var(--ink);transition:transform .5s var(--ease)}
.rd3 .rd3-search:hover .go{transform:translate(2px,-1px) scale(1.05)}
.rd3 .best-plays .bp .bp-why{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;font-size:var(--t12);color:var(--ink-3)}
.rd3 .home-jump{margin:var(--s6) 0 var(--s3)}
.rd3 .home-jump .more-l{font:500 var(--t12) Geist,system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--ink-3)}
.rd3 .fresh{font-size:var(--t12)}
/* ---------- Props: four markets up front, the rest behind More; prices behind one toggle; the hit rate stays on phones ---------- */
.rd3 .pg-props .mk-row{gap:var(--s2);padding:var(--s1) 0}
.rd3 #mk{flex-wrap:wrap;overflow:visible}
.rd3 #mk.rd3-fold>button:nth-child(n+6):not(.rd3-more){display:none}
.rd3 #mk.rd3-fold.open>button:nth-child(n+6):not(.rd3-more){display:inline-flex}   /* same specificity as the fold rule, later: it wins */
.rd3 #mk .rd3-more{color:var(--ink-3)}
.rd3 #plays .card-head{flex-wrap:wrap;align-items:center}
.rd3 #plays .card-head .pq-btn,.rd3 #plays .card-head .pq-f{margin-left:auto}
.rd3 #plays .card-head .rd3-tg{margin-left:0}
.rd3 #plays .card-head .pq-f{max-width:260px}
.rd3 #mk .rd3-more i{font-style:normal;display:inline-block;margin-left:4px;transition:transform .5s var(--ease)}
.rd3 #mk.open .rd3-more i{transform:rotate(180deg)}
.rd3 .rd3-tg{margin-left:auto;display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 11px;border:0;border-radius:999px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--hair);color:var(--ink-2);font:500 var(--t12) Geist,system-ui,sans-serif;cursor:pointer;transition:background .5s var(--ease),color .5s var(--ease)}
.rd3 .rd3-tg:hover{background:rgba(255,255,255,.08);color:var(--ink)}
.rd3 .rd3-tg[aria-pressed="true"]{background:rgba(255,255,255,.1);color:var(--ink)}
.rd3 .rd3-tg i{font-style:normal;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.18)}
.rd3 .rd3-tg[aria-pressed="true"] i{background:var(--acc)}
/* desktop, model on: Player | Last 10 | Cleared | Proj | Book | Pick | Edge; Prices adds Book | Over | Under back */
.rd3 .pg-props .plays.pm{--cols:minmax(0,1fr) 64px 60px 56px 40px 104px 60px;--g:32px}
.rd3 .pg-props .plays.pm .hd>:nth-child(3),.rd3 .pg-props .plays.pm .tr>:nth-child(3),
.rd3 .pg-props .plays.pm .hd>:nth-child(4),.rd3 .pg-props .plays.pm .tr>:nth-child(4),
.rd3 .pg-props .plays.pm .hd>:nth-child(5),.rd3 .pg-props .plays.pm .tr>:nth-child(5){display:none}
.rd3 .pg-props .plays.pm.rd3-prices{--cols:minmax(0,1fr) 64px 40px 96px 56px 60px 56px 40px 104px 60px}
.rd3 .pg-props .plays.pm.rd3-prices .hd>:nth-child(3),.rd3 .pg-props .plays.pm.rd3-prices .tr>:nth-child(3),
.rd3 .pg-props .plays.pm.rd3-prices .hd>:nth-child(4),.rd3 .pg-props .plays.pm.rd3-prices .tr>:nth-child(4),
.rd3 .pg-props .plays.pm.rd3-prices .hd>:nth-child(5),.rd3 .pg-props .plays.pm.rd3-prices .tr>:nth-child(5){display:block}
@media (max-width:1279px){
  .rd3 .pg-props .plays.pm{--cols:minmax(0,1fr) 60px 56px 40px 104px 60px;--g:24px}
  .rd3 .pg-props .plays.pm .hd>:nth-child(2),.rd3 .pg-props .plays.pm .tr>:nth-child(2){display:none}
  .rd3 .pg-props .plays.pm .hd>:nth-child(6),.rd3 .pg-props .plays.pm .tr>:nth-child(6){display:block}
  .rd3 .pg-props .plays.pm.rd3-prices{--cols:minmax(0,1fr) 40px 96px 56px 60px 56px 40px 104px 60px}
}
/* ---------- the card: name, line, hit rate, chart; the read under the chart; markets on one scrolling row ---------- */
.rd3 .pc-core{padding:var(--s5) var(--s5) var(--s8);background:var(--core);box-shadow:none}
.rd3 .pd-head .pd-kick{font-size:var(--t11);letter-spacing:.04em;text-transform:none;color:var(--ink-3)}
.rd3 .pd-head h2{font-size:var(--t24);letter-spacing:-.02em}
.rd3 .pd-mk{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:var(--s1);margin:var(--s3) 0 var(--s2);padding-bottom:2px;mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.rd3 .pd-mk::-webkit-scrollbar{display:none}
.rd3 .pd-mk .lab{display:none}
.rd3 .pd-mk button{flex:none;height:34px;line-height:34px;padding:0 11px;gap:5px;font-size:var(--t12)}
.rd3 .pd-nums{gap:var(--s2)}
.rd3 .pd-nums>div{padding:var(--s3) var(--s2);border-radius:var(--r-s)}
.rd3 .pd-nums .lab{font-size:var(--t11);letter-spacing:.04em;text-transform:none}
.rd3 .pd-nums small{font-size:var(--t11)}
.rd3 .pd-read{margin:var(--s3) 0 0;padding:var(--s3) var(--s4);border-radius:var(--r-s);font-size:var(--t13);line-height:1.45}
.rd3 .pd-read small{font-size:var(--t12)}
.rd3 .pd-seg{margin-top:var(--s3);background:var(--core);box-shadow:inset 0 0 0 1px var(--hair)}   /* the sticky section bar is opaque */
.rd3 .hero-c .hc-leg .rd3-detail{white-space:normal;overflow:visible;text-overflow:clip;margin:var(--s2) 0 0 -14px;line-height:1.5}   /* the notes folded into the ? legend wrap */
.rd3 .pg-research .tabs button{min-height:40px}
.rd3 .pd-blk{margin-top:var(--s4)}
.rd3 .pd-vw button{min-height:30px;font-size:var(--t12)}
.rd3 .pd-chart line.ln{stroke:rgba(255,255,255,.55)}
.rd3 .pd-chart .ln-c rect{stroke:rgba(255,255,255,.3)}.rd3 .pd-chart .ln-c text{fill:var(--ink)}
.rd3 .pd-chart path.under{fill:rgba(232,119,111,.55)}
.rd3 .pd-pbar{box-shadow:inset 0 0 0 1px var(--hair-2)}
/* ---------- Matchups: one section at a time; rank tiles in ink, green for the soft eight, red for the tough eight ---------- */
.rd3 .mu-tabs{gap:var(--s2);margin:0 0 var(--s4)}
.rd3 .pg-matchups .sh{margin:var(--s4) 0 var(--s3)}
.rd3 .pg-matchups .sh h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}   /* the segment carries the name; the heading stays for readers and heading order */
.rd3 .pg-matchups .sh small{flex-basis:100%;font-size:var(--t13);color:var(--ink-2)}
.rd3 .dg-c{background:rgba(255,255,255,.035);box-shadow:none;border-radius:var(--r-s);height:54px}
.rd3 .dg-c b{color:var(--ink);font:600 var(--t17)/1 Geist,system-ui,sans-serif;letter-spacing:0}
.rd3 .dg-c small{color:var(--ink-2);font-size:11px}.rd3 .dg-c small em{color:var(--ink-2)}
.rd3 .dg-c.rk-soft{background:rgba(61,220,151,.1)}.rd3 .dg-c.rk-soft b{color:var(--hit)}
.rd3 .dg-c.rk-tough{background:rgba(232,119,111,.08)}.rd3 .dg-c.rk-tough b{color:var(--miss)}
.rd3 .dg-c.on{box-shadow:0 0 0 1.5px rgba(255,255,255,.28)}
.rd3 .dg-g{border-radius:var(--r-in);padding:4px;gap:4px}
.rd3 .dg-title b{font:600 var(--t17) Geist,system-ui,sans-serif;letter-spacing:0}
.rd3 .dg-title small,.rd3 .dg-title em,.rd3 .dg-sub{letter-spacing:.04em;text-transform:none;font-size:var(--t11)}
.rd3 .dgs{gap:var(--s8)}
/* ---------- Research and Players: the same compact header as every other page ---------- */
.rd3 .pg-research .hero{padding:4px 4px 0;margin-bottom:var(--s4);display:block}
.rd3 .pg-research .hero .eyebrow{margin-bottom:var(--s2);font-size:var(--t11)}
.rd3 .pg-research .hero h1{font:600 var(--t20)/1.2 Geist,system-ui,sans-serif;letter-spacing:-.01em;text-transform:none;margin:0 0 2px;display:block}
.rd3 .pg-research .hero p{font-size:var(--t13);color:var(--ink-3)}
.rd3 .pg-research .tabs{margin-bottom:var(--s4)}
.rd3 .pg-research h2{font:600 var(--t17)/1.25 Geist,system-ui,sans-serif;letter-spacing:-.01em;text-transform:none}
.rd3 .pl-tabs{margin-bottom:var(--s3)}
/* ---------- phones ---------- */
@media (max-width:767px){
  .rd3 main{padding:var(--s4) var(--s4) calc(104px + env(safe-area-inset-bottom))}   /* the nav sits in the flow on phones and its own margin clears the status bar: no inset here */
  .rd3 .plays .hd,.rd3 .hd,.rd3 .dl-h{font-size:10px;letter-spacing:.03em}
  .rd3 .nav{margin:calc(12px + var(--sat)) 12px 0;padding:4px 4px 4px 14px;gap:4px}
  .rd3 .brand{font-size:16px;margin-right:0}
  .rd3 .tb.hide-s{display:inline-flex}
  .rd3 .tb.hide-s span,.rd3 .tb.hide-s kbd,.rd3 .tb.nav-data span{display:none}
  .rd3 .tb{width:40px;height:40px;padding:0;justify-content:center}
  .rd3 .rd3-season{height:38px;padding:2px;gap:0;flex:none}
  .rd3 .nav .rd3-season button{min-height:32px;padding:0 5px;font-size:10px;letter-spacing:-.01em}   /* outranks the phone .seg button rule: 3 x 40px, the brand keeps its room in Safari */
  .rd3 .rd3-season .l{display:none}.rd3 .rd3-season .s{display:inline}
  .rd3 .nav{gap:6px;padding-left:12px;overflow:hidden}.rd3 .nav .tools{gap:3px;flex:none}
  .rd3 .brand{font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .rd3 .tabbar{bottom:calc(10px + env(safe-area-inset-bottom));width:calc(100vw - 20px);max-width:480px;padding:4px;border-radius:22px;background:#0E1114;box-shadow:0 -8px 24px -12px rgba(0,0,0,.9)}   /* solid, with a soft shadow above it */
  .rd3 .tabbar button[data-search]{display:none}
  .rd3 .tabbar a{min-height:48px;padding:6px 0 5px;gap:2px;border-radius:16px;font-size:var(--t11)}
  .rd3 .tabbar a svg{width:22px;height:22px}
  .rd3 .core{padding:var(--s4)}
  .rd3 .bento{gap:var(--s3)}
  .rd3 .seg button{min-height:40px;padding:0 13px}
  .rd3 .hero-c .hc-q{width:36px;height:36px}
  .rd3 .game{width:104px;min-height:44px}
  .rd3 .plays .tr{min-height:56px}
  .rd3 .pg-props .plays .hd{top:calc(20px + var(--sat) + var(--strip-h) + var(--rd3-mk,0px))}
  .rd3 .rd3-tg{display:none}
  .rd3 #mk{flex-wrap:nowrap;overflow-x:auto}
  .rd3 #mk.open{flex-wrap:wrap}
  /* best plays: Play | Grade | Line | Cleared (Book is on the card) */
  .rd3 .plays.best-plays,.rd3 .plays.best-plays.mdl-best{--cols:minmax(0,1fr) 44px 84px 58px;--g:8px}
  .rd3 .plays.best-plays .hd>:nth-child(2),.rd3 .plays.best-plays .bp>:nth-child(2){display:block}
  .rd3 .plays.best-plays .hd>:nth-child(3),.rd3 .plays.best-plays .bp>:nth-child(3){display:none}
  .rd3 .plays.best-plays .hd>:nth-child(4),.rd3 .plays.best-plays .bp>:nth-child(4),
  .rd3 .plays.best-plays .hd>:nth-child(5),.rd3 .plays.best-plays .bp>:nth-child(5){display:block}
  .rd3 .best-plays .bp .bp-why{-webkit-line-clamp:2}
  /* props board, model on: Player | Cleared | Pick | Edge (Last 10 bars, both books and the prices live on the card) */
  .rd3 .pg-props .plays.pm,.rd3 .pg-props .plays.pm.rd3-prices{--cols:minmax(0,1fr) 58px 92px 46px;--g:8px}
  .rd3 #mk button{padding:0 10px}
  .rd3 .pg-props .plays.pm .hd>:nth-child(n+2):nth-child(-n+5),.rd3 .pg-props .plays.pm .tr>:nth-child(n+2):nth-child(-n+5),
  .rd3 .pg-props .plays.pm .hd>:nth-child(7),.rd3 .pg-props .plays.pm .tr>:nth-child(7),
  .rd3 .pg-props .plays.pm .hd>:nth-child(8),.rd3 .pg-props .plays.pm .tr>:nth-child(8){display:none!important}
  .rd3 .pg-props .plays.pm .hd>:nth-child(6),.rd3 .pg-props .plays.pm .tr>:nth-child(6),
  .rd3 .pg-props .plays.pm .hd>:nth-child(9),.rd3 .pg-props .plays.pm .tr>:nth-child(9),
  .rd3 .pg-props .plays.pm .hd>:nth-child(10),.rd3 .pg-props .plays.pm .tr>:nth-child(10){display:block!important}
  .rd3 .pg-props .plays.pm .c .pill{min-width:44px;padding:4px 6px}
  .rd3 .pl-ctl{flex-wrap:wrap}.rd3 .pl-ctl .pl-q{flex:1 1 100%;order:-1;max-width:none;min-width:0}   /* Players: the search on its own full row */
  .rd3 .pc-core{padding:var(--s4) var(--s4) calc(var(--s6) + env(safe-area-inset-bottom))}
  .rd3 .pd-head h2{font-size:var(--t20)}
  .rd3 .pd-mk button{height:40px;line-height:40px}
  .rd3 .pd-nums>div{padding:var(--s2) var(--s1)}
  .rd3 .dg-c{height:50px}
  .rd3 .dg-c b{font-size:var(--t15)}
}
@media (max-width:400px){
  .rd3 .brand{font-size:14px}
  .rd3 .pg-props .plays.pm .hd>:last-child,.rd3 .pg-props .plays.pm .tr>:last-child{display:block!important}
}
@media (prefers-reduced-motion:reduce){.rd3 .rd3-search,.rd3 .rd3-tg,.rd3 #mk .rd3-more i{transition:none}}
/* ---------- charts (nba-charts.js): the mebius-kit look as tokens. One card, one accent, faint grid, rounded bars, grow-in, tap tooltip.
   Hit and miss never read by colour alone: misses are hatched and labelled ✕, hits are solid and labelled ✓. ---------- */
.rd3 .nc{margin:0;padding:var(--s4);border-radius:var(--r-s);background:rgba(255,255,255,.03);box-shadow:inset 0 0 0 1px var(--hair);min-width:0}
.rd3 .nc-h{display:flex;align-items:baseline;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s2)}
.rd3 .nc-t{font-size:var(--t12);color:var(--ink-3)}
.rd3 .nc-n{font-size:var(--t24);font-weight:600;line-height:1;color:var(--ink);letter-spacing:-.01em}
.rd3 .nc-d{font-style:normal;font-size:var(--t11);font-weight:600;padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.07);color:var(--ink-2)}
.rd3 .nc-d.up{background:rgba(61,220,151,.14);color:var(--hit)}.rd3 .nc-d.down{background:rgba(232,119,111,.14);color:var(--miss)}
.rd3 .nc-s{margin:var(--s2) 0 0;font-size:var(--t12);color:var(--ink-3)}
.rd3 .nc-empty{margin:0;font-size:var(--t13);color:var(--ink-3)}
.rd3 .nc-svg{display:block;width:100%;height:auto;overflow:visible}
.rd3 .nc-g{stroke:rgba(255,255,255,.05);stroke-width:1}
.rd3 .nc-b{stroke:rgba(255,255,255,.14);stroke-width:1}
.rd3 .nc-l{stroke:rgba(255,255,255,.6);stroke-width:1.4;stroke-dasharray:5 4;stroke-linecap:round}
.rd3 .nc-chip rect{fill:var(--core);stroke:rgba(255,255,255,.3)}.rd3 .nc-chip text{fill:var(--ink);font:600 10px "Geist Mono",monospace}
.rd3 .nc-bar{fill:rgba(255,255,255,.22);transform-box:fill-box;transform-origin:bottom;animation:ncgrow .7s var(--ease) both;animation-delay:calc(var(--i,0) * 28ms)}
.rd3 .nc-col.hit .nc-bar,.rd3 .nc-spk .nc-bar.hit{fill:var(--hit)}
.rd3 .nc-col.miss .nc-bar,.rd3 .nc-spk .nc-bar.miss{fill:url(#nc-hatch)}
.rd3 .nc-hb{fill:rgba(232,119,111,.22)}.rd3 .nc-hl{fill:rgba(232,119,111,.55)}
.rd3 .nc-a0{stop-color:var(--acc);stop-opacity:.35}.rd3 .nc-a1{stop-color:var(--acc);stop-opacity:0}
.rd3 .nc-na{fill:rgba(255,255,255,.18)}
.rd3 .nc-v{font:600 10.5px "Geist Mono",monospace;fill:var(--ink-3)}.rd3 .nc-col.hit .nc-v{fill:var(--ink)}
.rd3 .nc-x{font:500 9.5px "Geist Mono",monospace;fill:var(--ink-3)}.rd3 .nc-col.now .nc-x{fill:var(--ink)}
.rd3 .nc-hit{fill:transparent;cursor:pointer}.rd3 .nc-col:hover .nc-hit,.rd3 .nc-pt:hover .nc-hit{fill:rgba(255,255,255,.03)}
.rd3 .nc-ar{fill:url(#nc-area)}.rd3 .nc-ln{fill:none;stroke:var(--acc);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.rd3 .nc-pt circle{fill:var(--core);stroke:var(--acc);stroke-width:1.6}
/* progress rows: label | track | hit/n | % (one row, one baseline; the name column flexible, the rest sized to content) */
.rd3 .nc-pr{display:grid;gap:var(--s2)}
.rd3 .nc-pr-r{display:grid;grid-template-columns:minmax(44px,auto) minmax(0,1fr) auto 40px;align-items:center;column-gap:var(--s3);min-height:28px;cursor:pointer}
.rd3 .nc-pr-l{font-size:var(--t12);color:var(--ink-2);white-space:nowrap}
.rd3 .nc-pr-t{display:block;height:8px;border-radius:8px;background:rgba(255,255,255,.07);overflow:hidden}
.rd3 .nc-pr-t i{display:block;height:100%;border-radius:8px;background:var(--acc);transform:scaleX(var(--w));transform-origin:left;animation:ncwide .8s var(--ease) both;animation-delay:calc(var(--i,0) * 60ms)}
.rd3 .nc-pr-v{font-size:var(--t13);font-weight:600;color:var(--ink);text-align:center;white-space:nowrap}
.rd3 .nc-pr-p{font-size:var(--t11);color:var(--ink-3);text-align:center}
/* ring */
.rd3 .nc-ring{padding:var(--s2);display:grid;justify-items:center;gap:2px;cursor:pointer}
.rd3 .nc-rt{fill:none;stroke:rgba(255,255,255,.08);stroke-width:7}
.rd3 .nc-rv{fill:none;stroke:var(--acc);stroke-width:7;stroke-linecap:round;stroke-dasharray:var(--c);stroke-dashoffset:calc(var(--c) * (1 - var(--p)));transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset .9s var(--ease)}
.rd3 .nc-rn{font:600 17px "Geist Mono",monospace;fill:var(--ink)}.rd3 .nc-rl{font:500 9.5px Geist,system-ui,sans-serif;fill:var(--ink-3)}
/* diverging and rank rows */
.rd3 .nc-dv,.rd3 .nc-rk-g{display:grid;gap:var(--s2)}
.rd3 .nc-dv-r,.rd3 .nc-rk-r{display:grid;grid-template-columns:minmax(44px,auto) minmax(0,1fr) 52px;align-items:center;column-gap:var(--s3);min-height:26px;cursor:pointer}
.rd3 .nc-dv-l,.rd3 .nc-rk-l{font-size:var(--t12);color:var(--ink-2);white-space:nowrap}
.rd3 .nc-dv-t{position:relative;display:block;height:8px;border-radius:8px;background:rgba(255,255,255,.07)}
.rd3 .nc-dv-t::before{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:rgba(255,255,255,.3)}
.rd3 .nc-dv-t i{position:absolute;top:0;bottom:0;left:50%;width:50%;border-radius:0 8px 8px 0;background:var(--hit);transform:scaleX(calc(var(--w) * 2));transform-origin:left;animation:ncwide .8s var(--ease) both}
.rd3 .nc-dv-t i.neg{left:auto;right:50%;border-radius:8px 0 0 8px;background:url(#nc-hatch) var(--miss);transform-origin:right}
.rd3 .nc-dv-v{font-size:var(--t13);font-weight:600;text-align:center}.rd3 .nc-dv-v.up{color:var(--hit)}.rd3 .nc-dv-v.down{color:var(--miss)}
.rd3 .nc-rk-t{display:block;height:8px;border-radius:8px;background:rgba(255,255,255,.07);overflow:hidden}
.rd3 .nc-rk-t i{display:block;height:100%;border-radius:8px;background:rgba(255,255,255,.3);transform:scaleX(var(--w));transform-origin:left;animation:ncwide .8s var(--ease) both;animation-delay:calc(var(--i,0) * 60ms)}
.rd3 .nc-rk-r.soft .nc-rk-t i{background:var(--hit)}.rd3 .nc-rk-r.tough .nc-rk-t i{background:var(--miss)}
.rd3 .nc-rk-v{font-size:var(--t13);font-weight:600;text-align:center;color:var(--ink-2)}.rd3 .nc-rk-r.soft .nc-rk-v{color:var(--hit)}.rd3 .nc-rk-r.tough .nc-rk-v{color:var(--miss)}
/* the tooltip */
.rd3 .nc-tip{position:fixed;z-index:60;max-width:min(320px,calc(100vw - 16px));padding:6px 10px;border-radius:9px;background:rgba(20,24,29,.98);box-shadow:inset 0 0 0 1px var(--hair-2),0 12px 30px -12px rgba(0,0,0,.8);color:var(--ink);font-size:var(--t12);line-height:1.4;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease)}
.rd3 .nc-tip.on{opacity:1;transform:none}
/* the card's hit-rate strip (ring + progress rows) above the Last 10 chart */
.rd3 .pd-hr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s3);align-items:center;margin:var(--s3) 0 0}
.rd3 .pd-hr .nc-prog{padding:var(--s3)}
/* the existing charts take the same cues: the table sparkline's misses are hatched, bars rounded, the line in ink */
.rd3 .spk b{border-radius:2px 2px 0 0}
.rd3 .spk b:not(.hit):not(.na){background:repeating-linear-gradient(135deg,rgba(232,119,111,.5) 0 1.5px,rgba(232,119,111,.14) 1.5px 4px)}
.rd3 .pd-chart path.under{fill:url(#nc-hatch)}
.rd3 .pd-legend .lg-u{background:repeating-linear-gradient(135deg,rgba(232,119,111,.55) 0 1.5px,rgba(232,119,111,.18) 1.5px 4px)!important}
.rd3 .lad-strip .step{border-radius:var(--r-s)}
.rd3 .pd .dl-bar,.rd3 .pd .dl-bar i,.rd3 .trk,.rd3 .trk2,.rd3 .hh-b i{border-radius:8px}
@keyframes ncgrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes ncwide{from{transform:scaleX(0)}to{transform:scaleX(var(--w,1))}}
@media (max-width:767px){.rd3 .pd-hr{grid-template-columns:1fr}.rd3 .pd-hr .nc-ring{display:none}}   /* phones: the progress card's headline carries the number */
@media (prefers-reduced-motion:reduce){.rd3 .nc-bar,.rd3 .nc-pr-t i,.rd3 .nc-rk-t i,.rd3 .nc-dv-t i{animation:none}.rd3 .nc-rv{transition:none}.rd3 .nc-tip{transition:none}}

/* a visually hidden heading (the Board section) */
.rd3 .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
