:root{--bg:#0B0E12;--nav:#0E1217;--s1:#12171D;--s2:#1A2129;--line:#26303A;--line2:#1E262E;--tx:#EDF1F4;--tx2:#B4BEC8;--mut:#98A4B0;--lab:#8A96A3;--acc:#C8F04A;--win:#46D9A6;--loss:#F2894E;--info:#6CB6FF}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--tx);font-family:'IBM Plex Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--acc);text-decoration:none}a:hover{color:#E2FF8A}
button{font:inherit;color:inherit}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
.disp{font-family:'Barlow Condensed',sans-serif;letter-spacing:.01em;font-weight:700;text-transform:uppercase}
.wrap{max-width:1440px;margin:0 auto;padding:0 48px}
/* nav */
.nav{background:var(--nav);border-bottom:1px solid var(--line)}
.nav .wrap{height:72px;display:flex;align-items:center;gap:32px}
.logo{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:30px;color:var(--tx)}
.logo span{color:var(--acc)}
.navlinks{display:flex;gap:6px;flex:1;overflow-x:auto}
.navlinks a{padding:12px 14px;border-radius:8px;color:var(--tx2);font-weight:500;font-size:15px;white-space:nowrap}
.navlinks a.on{background:var(--s2);color:var(--tx);font-weight:600}
.sync{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mut);white-space:nowrap}
.dot{width:8px;height:8px;border-radius:50%;background:var(--win);display:inline-block}
.dot.off{background:#6B7785}
/* hero */
.hero{padding:44px 0 28px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.kicker{font-size:13px;letter-spacing:.12em;color:var(--acc)}
h1{margin:8px 0 0;font-size:72px;line-height:.95}
.lede{margin:10px 0 0;font-size:17px;color:var(--mut);max-width:720px}
.badge{padding:6px 10px;border-radius:6px;font-size:12px;font-weight:600;letter-spacing:.06em;border:1px solid var(--line);color:var(--tx2)}
.badge.paper{border-color:var(--info);color:var(--info)}
.badge.live{background:var(--win);border-color:var(--win);color:var(--bg)}
/* tiles */
.tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;padding-bottom:32px}
.tile{padding:20px 22px;background:var(--s1);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:6px}
.tile .k{font-size:13px;color:var(--mut)}
.tile .v{font-family:'IBM Plex Mono',monospace;font-size:34px;font-weight:600}
.tile .s{font-size:13px;color:var(--mut)}
.pos{color:var(--win)}.neg{color:var(--loss)}.acc{color:var(--acc)}
/* cards / tables */
.grid2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;align-items:start}
.card{background:var(--s1);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.card-h{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.card-h h2{margin:0;font-size:28px}
.card-h .sub{font-size:13px;color:var(--mut)}
.row{display:grid;gap:12px;padding:15px 24px;align-items:center;border-bottom:1px solid var(--line2);font-size:15px;color:var(--tx)}
.row.head{padding:12px 24px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:var(--lab)}
.picks .row{grid-template-columns:78px 60px minmax(0,1.3fr) minmax(0,1.5fr) 118px 70px 56px 92px}
.sp{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;color:var(--acc)}
.t2{color:var(--tx2)}.mut{color:var(--mut)}
.b{font-weight:600}
.pill{justify-self:start;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.06em;border:1px solid currentColor}
.st-PICK{color:var(--tx2)}.st-PLACED{color:var(--info)}.st-WON{color:var(--win)}.st-LOST{color:var(--loss)}.st-VOID{color:var(--mut)}
.foot{padding:16px 24px;font-size:13px;color:var(--mut)}
.empty{padding:48px 24px;text-align:center;color:var(--mut);font-size:16px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{min-height:36px;padding:0 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--tx2)}
.chip.on{background:var(--acc);border-color:var(--acc);color:var(--bg)}
/* right rail */
.rail{display:flex;flex-direction:column;gap:24px}
.oitem{padding:14px 24px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line2)}
.oitem .sp{width:48px}
.oitem .mid{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.oitem .r{text-align:right;font-size:13px}
.sport-link{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--s2);border-radius:10px;color:var(--tx);margin:0 24px 10px}
.sport-link:first-of-type{margin-top:16px}
.mode{padding:3px 8px;border-radius:6px;font-size:11px;font-weight:600;letter-spacing:.06em;background:var(--line);color:var(--tx2)}
.mode.LIVE{background:var(--win);color:var(--bg)}.mode.PAPER{background:transparent;border:1px solid var(--info);color:var(--info)}
footer{margin-top:48px;border-top:1px solid var(--line)}
footer .wrap{padding-top:24px;padding-bottom:24px;display:flex;justify-content:space-between;gap:16px;font-size:13px;color:var(--lab);flex-wrap:wrap}
/* sport page */
.tabs{display:flex;gap:10px;padding-top:28px;flex-wrap:wrap}
.tab{min-height:48px;padding:0 20px;display:flex;align-items:center;gap:10px;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;border:1px solid var(--line);background:var(--s1);color:#D5DCE2}
.tab.on{background:var(--tx);border-color:var(--tx);color:var(--bg)}
.findbar{padding:20px 24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.findbar .grow{flex:1;min-width:240px}
.btn-find{min-height:56px;padding:0 32px;border:none;border-radius:10px;background:var(--acc);color:var(--bg);font-family:'Barlow Condensed',sans-serif;font-size:22px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.stats{display:flex;gap:14px;flex-wrap:wrap}
.stat{padding:14px 20px;background:var(--s1);border:1px solid var(--line);border-radius:12px;min-width:120px}
.stat .k{font-size:12px;color:var(--mut)}.stat .v{font-family:'IBM Plex Mono',monospace;font-size:26px;font-weight:600}
.games{display:flex;flex-direction:column;gap:14px;padding:24px 0 16px}
.game{background:var(--s1);border:1px solid var(--line);border-radius:14px}
.game.open{border-color:var(--acc)}
.grow-row{padding:18px 24px;display:grid;grid-template-columns:96px minmax(0,1.3fr) 130px minmax(0,1.2fr) 190px;gap:20px;align-items:center}
.matchup{font-size:30px}
.matchup .at{color:#6B7785}
.preview{padding:8px 12px;background:var(--s2);border-radius:8px;display:inline-flex;gap:10px;align-items:baseline}
.preview.skip{background:transparent;border:1px solid #36414D;color:var(--mut);font-size:14px}
.btn-view{min-height:44px;padding:0 16px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;border:1px solid #36414D;background:transparent;color:var(--tx)}
.game.open .btn-view{background:var(--acc);border-color:var(--acc);color:var(--bg)}
.analysis{border-top:1px solid var(--line);padding:24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:24px}
.best{padding:24px;background:var(--acc);color:var(--bg);border-radius:14px;display:flex;flex-direction:column;gap:14px}
.best .top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.best .lbl{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.12em}
.best .tag{padding:4px 10px;border-radius:999px;background:var(--bg);color:var(--acc);font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.06em}
.best .big{font-size:52px;line-height:1}
.best .nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.best .nums>div{padding:10px 12px;background:rgba(11,14,18,.08);border-radius:8px}
.best .nums .k{font-size:11px;font-weight:600}.best .nums .v{font-family:'IBM Plex Mono',monospace;font-size:20px;font-weight:600}
.best.manual{background:var(--s2);color:var(--tx);border:1px solid var(--line)}
.best.manual .tag{background:var(--line);color:var(--tx2)}
.best.manual .nums>div{background:var(--s1)}
.nobet{padding:24px;border:1px dashed #4A5663;border-radius:14px;display:flex;flex-direction:column;gap:10px}
.sec{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;color:var(--lab)}
.fchip{padding:7px 12px;background:var(--s2);border:1px solid var(--line);border-radius:999px;font-size:13px;color:#D5DCE2}
.olist .row{grid-template-columns:minmax(0,1.6fr) 110px 110px 70px 56px;padding:12px 14px;border:none;border-radius:8px;background:var(--s2);margin-bottom:8px}
.olist .row.head{background:transparent;margin:0}
.olist.out .row{background:transparent;border:1px solid var(--line)}
.olist.out .row.head{border:none}
.menu{padding:12px 14px;background:var(--nav);border-radius:8px;font-size:13px;color:var(--mut)}
/* results */
.rtab .row{grid-template-columns:minmax(0,1fr) 100px 80px 90px}
.recent .row{grid-template-columns:72px minmax(0,1.4fr) 120px 110px 70px 90px}
.res{justify-self:start;padding:4px 12px;border-radius:6px;font-weight:600;color:var(--bg)}
.res.W{background:var(--win)}.res.L{background:var(--loss)}
@media (max-width:1100px){
 .wrap{padding:0 16px}
 h1{font-size:48px}
 .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
 .grid2,.analysis{grid-template-columns:1fr}
 .picks .row{grid-template-columns:64px 1fr 96px;row-gap:4px}
 .picks .row>.c-sp,.picks .row>.c-game,.picks .row>.c-ours,.picks .row>.c-conf{display:none}
 .picks .row.head{display:none}
 .grow-row{grid-template-columns:1fr auto;row-gap:10px}
 .grow-row .c-time,.grow-row .c-graded{display:none}
 .olist .row{grid-template-columns:1fr 90px 60px}
 .olist .row>.c-mkt,.olist .row>.c-conf{display:none}
 .rtab .row{grid-template-columns:1fr 90px 80px}
 .recent .row{grid-template-columns:56px 1fr 60px 76px}.recent .row>.c-mkt,.recent .row>.c-price{display:none}
 .best .big{font-size:38px}
 .sync{display:none}
}
.dayhead{margin-top:14px;padding:6px 2px;font-size:13px;letter-spacing:.12em;color:var(--acc);text-align:left;background:none;border:none}
.startedbtn{min-height:44px;cursor:pointer;color:var(--mut)}
.tier{padding:3px 8px;border-radius:6px;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.06em;align-self:center}
.t-AUTO{background:var(--acc);color:var(--bg)}
.t-PREMIUM{border:1px solid var(--acc);color:var(--acc)}
.t-STRONG{border:1px solid var(--info);color:var(--info)}
.t-LEAN{border:1px solid #4A5663;color:var(--mut)}
.preview{flex-wrap:wrap}
.t-QUEUED{border:1px dashed var(--acc);color:var(--acc)}
.t-ERROR{border:1px solid var(--warn,#E0A640);color:var(--warn,#E0A640)}
.t-NOT_PRICED{border:1px dashed #4A5663;color:var(--mut)}
.t-PASS{border:1px solid #3A424C;color:var(--mut)}
.errbar{border-left:3px solid var(--warn,#E0A640);padding-left:12px;margin-top:10px}

/* THE DIAL — the Kalshi price as a percentage, labelled as the market's number. The ring
   colour is our conviction; the ring carries no number of ours. A row with no price gets
   the `none` variant: an em-dash, never a zero. */
.dwrap{display:flex;gap:16px;align-items:center;margin:14px 0 10px}
.dial{position:relative;width:80px;height:80px;flex:0 0 80px;text-align:center}
.dial svg{position:absolute;inset:0}
.dring{fill:none;stroke:var(--line);stroke-width:7}
.dval{fill:none;stroke:var(--mut);stroke-width:7;stroke-linecap:round}
.dval.t-s-PREMIUM{stroke:var(--acc)}
.dval.t-s-STRONG{stroke:var(--info)}
.dval.t-s-LEAN{stroke:#4A5663}
.dial .dnum{position:relative;top:27px;font-family:'IBM Plex Mono',monospace;font-size:19px;font-weight:700}
.dial .dlab{position:absolute;top:84px;left:-22px;width:124px;font-size:10.5px;letter-spacing:.05em;color:var(--lab);text-transform:uppercase}
.dial.none .dnum{color:var(--mut)}
.dial.none .dlab{color:var(--mut)}
.dside{display:flex;flex-direction:column;gap:7px;padding-top:2px}
.gatep{font-size:13px;color:var(--warn,#E0A640)}
.autonote{border-left:3px solid var(--line);padding-left:12px;font-size:13px;color:var(--mut)}
.hrow{display:grid;grid-template-columns:104px 70px 70px 90px 90px 1fr;gap:12px;padding:11px 14px;
border-bottom:1px solid var(--line);align-items:center;font-size:13.5px}
.hrow.head{color:var(--lab);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase}
.hquiet{color:var(--mut)}
.herr{color:var(--warn,#E0A640)}
@media(max-width:820px){.hrow{grid-template-columns:96px 60px 1fr}.hrow>.h-hide{display:none}
.dwrap{flex-direction:column;align-items:flex-start}.dial .dlab{position:static;width:auto;left:0;margin-top:30px}}

/* THE PLACEMENT WORKLIST — first thing on the page, because it is a worklist this week and
   not a dashboard. A started pick is visually dead: it cannot be placed any more. */
.wl{padding:18px 0 6px}
.wl-status{background:var(--s2);border:1px solid var(--line);border-left:3px solid var(--acc);
border-radius:6px;padding:10px 14px;font-size:13px;margin-bottom:12px}
.wl-stale{border-left-color:var(--warn,#E0A640)}
.wl-err{background:var(--s2);border:1px solid var(--warn,#E0A640);border-left:3px solid var(--warn,#E0A640);
border-radius:6px;padding:11px 14px;font-size:13.5px;margin-bottom:12px}
.wl-err ul{margin:6px 0 0;padding-left:20px}
.wl-h{display:flex;align-items:baseline;gap:10px;margin:4px 0 10px}
.wl-h h2{font-size:26px;margin:0}
.wl-h2{margin-top:22px}
.wl-n{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--lab);
border:1px solid var(--line);border-radius:999px;padding:1px 9px}
.wl-i{display:grid;grid-template-columns:54px minmax(0,1fr) 74px 168px;gap:14px;align-items:center;
background:var(--s2);border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:8px}
.wl-i.dead{opacity:.52;border-style:dashed;background:transparent}
.wl-sp{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--lab)}
.wl-side{font-size:18px;font-weight:700;line-height:1.2}
.wl-game{font-size:12.5px;color:var(--mut);margin-top:2px}
.wl-why{font-size:12.5px;margin-top:5px}
.wl-px{font-family:'IBM Plex Mono',monospace;font-size:20px;font-weight:700;text-align:right}
.wl-tier{text-align:right}
@media(max-width:760px){.wl-i{grid-template-columns:44px minmax(0,1fr) 60px;}.wl-tier{grid-column:2/4;text-align:left}}

/* THE GAME'S OWN FACTS on a NO CALL card. Same surface vocabulary as .olist so it reads as
   part of the analysis and never as a second pick list: no tier colour, no dial, no price. */
.facts{display:flex;flex-direction:column;gap:12px}
.fgrp{background:var(--s2);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.fgk{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:var(--lab);padding:9px 14px;border-bottom:1px solid var(--line)}
.frow{display:grid;grid-template-columns:120px minmax(0,1fr) 92px;gap:12px;padding:10px 14px;align-items:start;font-size:13px;border-bottom:1px solid var(--line2)}
.frow:last-child{border-bottom:none}
.fteam{color:#D5DCE2;font-weight:600}
.fclaim{color:var(--tx);line-height:1.5}
.fas{color:var(--lab);font-size:11px;text-align:right}
@media (max-width:760px){
  .frow{grid-template-columns:1fr;gap:4px}
  .fas{text-align:left}
}

/* AN EARLY ITEM IN THE PLACEMENT WORKLIST. Amber, not red: it is a real pick he may place,
   it is simply not the row of record yet. It must never be mistaken for a final one. */
.wl-prov{margin-top:5px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.04em;
  color:#F0B429;background:rgba(240,180,41,.09);border:1px solid rgba(240,180,41,.3);
  border-radius:6px;padding:4px 8px;display:inline-block;line-height:1.45}
