[hidden]{display:none!important}
:root{--bg:#0e141d;--card:#1a2331;--card2:#222d3d;--line:#2c3848;--txt:#e9eef5;--mut:#8e9bb0;--green:#22c55e;--blue:#5aa2f5;--red:#ef4444;--grey:#6b7686;--gold:#f5b83d;--r:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--txt);font:16px/1.4 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Inter,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--blue)}
.muted{color:var(--mut)} .small{font-size:13px} .center{text-align:center}
.pos,.green{color:var(--green)} .neg,.red{color:var(--red)} .zero{color:var(--mut)} .blue{color:var(--blue)} .live{color:#ff6b35} .warn{color:var(--gold)}
.wrap{max-width:720px;margin:0 auto;padding:12px 14px 120px}
.wrap.narrow{max-width:520px}
.brand{font-weight:800;letter-spacing:-.02em}
.brand.big{font-size:32px;margin:28px 0 6px}
.lede{color:#c5cfdc;font-size:17px;margin:0 0 18px}
.card{background:var(--card);border-radius:var(--r);padding:14px;margin:0 0 12px}
.card h2{margin:0 0 10px;font-size:20px} .card h3{margin:0 0 8px;font-size:16px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.err{background:#3a1717;color:#ffb4b4;padding:10px 12px;border-radius:10px;margin:0 0 12px}
.hint{color:var(--mut);font-size:13px;margin:6px 0 12px}
/* forms */
.form label{display:block;font-weight:600;font-size:14px;margin:0 0 12px;color:#cfd8e4}
input,select{width:100%;margin-top:6px;min-height:48px;padding:10px 12px;font-size:17px;color:var(--txt);background:var(--card2);border:1px solid var(--line);border-radius:10px;-webkit-appearance:none;appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,#8e9bb0 50%),linear-gradient(135deg,#8e9bb0 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 15px) 22px;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px}
input:focus,select:focus{outline:2px solid var(--blue);border-color:transparent}
.check{display:flex!important;align-items:center;gap:10px;min-height:44px}
.check input{width:24px;height:24px;min-height:0;margin:0;-webkit-appearance:checkbox;appearance:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:12px;border:1px solid var(--line);background:var(--card2);color:var(--txt);font-size:16px;font-weight:700;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.btn.primary{background:var(--green);border-color:var(--green);color:#06210f}
.btn.ghost{background:transparent}
.btn.wide,.form .btn.primary{width:100%}
.btn:disabled{opacity:.6}
.link{background:none;border:0;color:var(--blue);font-size:14px;min-height:44px;padding:0 6px;cursor:pointer}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.signrow{display:flex;gap:8px;margin-top:6px}
.signrow input{margin-top:0}
.sign{flex:0 0 52px;min-height:48px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--txt);font-size:22px;font-weight:800}
.seg{display:flex;gap:6px;margin:0 0 12px;flex-wrap:wrap}
.seg button{flex:1 1 0;min-width:0;min-height:44px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--txt);font-size:15px;font-weight:700;padding:0 6px}
.seg button.on{background:var(--blue);border-color:var(--blue);color:#05182e}
.legcard{padding-top:14px}
.leghead{display:flex;justify-content:space-between;align-items:center;margin:-6px 0 6px}
.presults{display:flex;flex-direction:column;gap:4px;margin:-6px 0 10px}
.pitem{text-align:left;min-height:48px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--txt);font-size:15px}
.pchosen{margin:-6px 0 10px;font-size:14px}
.copyrow{display:flex;gap:8px;margin:0 0 8px}.copyrow input{margin:0;font-size:14px}
/* phone board */
.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top) + 10px) 14px 10px;background:rgba(14,20,29,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.tb-left{display:flex;align-items:baseline;gap:8px;min-width:0}
.tb-left .brand{font-size:15px;white-space:nowrap}
.bname{color:#c5cfdc;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-right{font-size:13px;white-space:nowrap;display:flex;align-items:center;gap:6px}
.back{font-size:30px;line-height:1;text-decoration:none;color:var(--txt);min-width:32px;min-height:44px;display:inline-flex;align-items:center}
.scorestrip{display:flex;gap:8px;overflow-x:auto;padding:10px 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.scorestrip::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;background:var(--card);border-radius:10px;padding:7px 10px;font-size:13px;white-space:nowrap}
.chip b{font-weight:700;margin-right:4px}
.tabs{display:flex;gap:6px;margin:0 0 12px}
.tab{flex:1;min-height:44px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--mut);font-weight:700;font-size:15px}
.tab.on{background:var(--card2);color:var(--txt)}
.datebar{display:flex;align-items:center;gap:6px;margin:0 0 12px}
.dbtn{width:52px;min-height:44px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--txt);font-size:24px;font-weight:700;line-height:1;cursor:pointer}
.dbtn:disabled{opacity:.3;cursor:default}
.dlabel{flex:1;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line);font-weight:700;font-size:15px;color:var(--txt)}
.member .mhead,.tvcol .mhead{display:flex;justify-content:space-between;align-items:baseline}
.mname{font-size:22px;font-weight:800;display:flex;align-items:center;gap:8px}
.munits{font-size:22px;font-weight:800}
.sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
.mname .sw{margin-right:0}
.bet{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
.bhead{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#b9c4d3;font-size:14px;margin-bottom:6px}
.tag{font-size:12px;font-weight:800;padding:3px 8px;border-radius:6px;background:var(--card2);white-space:nowrap}
.tag.pos{background:rgba(34,197,94,.15)} .tag.neg{background:rgba(239,68,68,.15)} .tag.live{background:rgba(255,107,53,.15)}
.leg{padding:6px 0}
.lrow{display:flex;align-items:center;gap:8px;font-weight:600}
.lbl{min-width:0}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:0 0 10px;background:var(--grey)}
.dot.green{background:var(--green)} .dot.blue{background:var(--blue)} .dot.red{background:var(--red)} .dot.grey{background:var(--grey)}
.dot.pulse{animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.35}}
.prog{display:flex;align-items:center;gap:10px;margin:5px 0 0 18px}
.bar{flex:1;height:7px;background:#2b3646;border-radius:4px;overflow:hidden}
.fill{height:100%;border-radius:4px;background:var(--grey)}
.fill.green{background:var(--green)} .fill.blue{background:var(--blue)} .fill.red{background:var(--red)}
.val{font-weight:700;font-size:14px;min-width:64px;text-align:right;color:var(--mut)}
.val.green{color:var(--green)} .val.blue{color:var(--blue)} .val.red{color:var(--red)}
.ltxt{margin:3px 0 0 18px;font-size:13px;color:var(--mut)}
.ltxt.blue{color:var(--blue)} .ltxt.green{color:var(--green)} .ltxt.red{color:var(--red)}
.empty{margin:12px 0 0}
.lbt{width:100%;border-collapse:collapse;font-size:15px}
.lbt th{font-size:11px;text-transform:uppercase;color:var(--mut);text-align:left;font-weight:600;padding:4px 6px}
.lbt td{padding:9px 6px;border-top:1px solid var(--line)}
.lbt .r{text-align:right}
.actionbar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:8px;padding:10px 14px calc(env(safe-area-inset-bottom) + 10px);background:rgba(14,20,29,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);z-index:6}
.actionbar .btn{flex:1;white-space:nowrap;padding-left:8px;padding-right:8px;text-align:center}.actionbar .btn.primary{flex:1.6}
.legal{max-width:720px;margin:0 auto;padding:10px 16px 40px;color:var(--mut);font-size:12.5px}
.phone .legal{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
.legal a{color:#c5cfdc}
/* TV */
body.tv{overflow:hidden;font-size:clamp(12px,1.2vw,44px)}
.tvroot{height:100vh;display:flex;flex-direction:column;padding:1.6em 1.6em .8em;gap:.8em}
.tvhead{display:flex;justify-content:space-between;align-items:center}
.tvhead .brand{font-size:1.6em;margin-right:.6em}
.tvhead .bname{font-size:1.15em;margin-right:.4em}
.tvhead .muted{font-size:1em}
.tvscores{display:flex;background:var(--card);border-radius:.6em;padding:.55em 1em;white-space:nowrap;overflow:hidden;font-size:.9em}
.tvscores:empty{display:none}
.tvtrack{display:flex;flex:none;width:max-content;will-change:transform}
.tvseq{display:flex;flex:none;gap:2.2em;padding-right:2.2em}
.tvscores.marquee .tvtrack{animation:tvmarq 40s linear infinite}
.tvscores.marquee:hover .tvtrack{animation-play-state:paused}
@keyframes tvmarq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.tvscores.swipe{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.tvscores.swipe::-webkit-scrollbar{display:none}
@media (prefers-reduced-motion: reduce){ .tvscores.marquee .tvtrack{animation:none} }
.tvscores .chip{background:none;padding:0;font-size:1em;border-radius:0}
.tvgrid{flex:1;display:grid;grid-template-columns:1fr 16em;gap:1em;min-height:0}
.tvcols{display:grid;gap:1em;min-height:0}
.tvcol,.tvrail{background:var(--card);border-radius:.8em;padding:1em 1.1em;overflow:hidden;min-height:0}
.tvcol{scrollbar-width:none}.tvcol::-webkit-scrollbar{display:none}
.leg.compact .lrow{gap:.5em}.leg.compact .lbl{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leg.compact .val{min-width:0}
.tvcol .leg.compact{padding:.15em 0}
.tvcol .mname{font-size:1.45em}.tvcol .munits{font-size:1.45em}
.tvcol .small{font-size:.8em}
.tvcol .bet{margin-top:.8em;padding-top:.7em}
.tvcol .bhead{font-size:.85em;margin-bottom:.35em}
.tvcol .tag{font-size:.75em}
.tvcol .leg{padding:.3em 0}
.tvcol .lrow{font-size:.95em}
.tvcol .dot{width:.6em;height:.6em;flex-basis:.6em}
.tvcol .prog{margin:.3em 0 0 1.1em;gap:.6em}
.tvcol .bar{height:.45em}
.tvcol .val{font-size:.85em;min-width:4em}
.tvcol .ltxt{font-size:.78em;margin-left:1.4em}
.tvrail h3{font-size:.85em;margin:0 0 .3em;color:var(--mut);letter-spacing:.06em;text-transform:uppercase}
.tvrail h3+div{margin-bottom:1.1em}
.tvrail .lbt{font-size:.95em}.tvrail .lbt th{font-size:.65em;padding:.2em .3em}.tvrail .lbt td{padding:.45em .3em;border-top:0}
.tvrail tr.lead td{background:#0e141d}
.legend{font-size:.75em;color:var(--mut);display:flex;flex-wrap:wrap;gap:.4em .9em;margin-top:auto}
.legend .dot{width:.7em;height:.7em;margin-right:.3em;vertical-align:-.05em}
.tvrail{display:flex;flex-direction:column}
.tvfoot{text-align:center;color:var(--mut);font-size:.75em}
@media (min-width:900px){ .phone .wrap{max-width:760px} }

.ltag{font-size:.7em;font-weight:700;color:var(--mut);border:1px solid var(--line);border-radius:5px;padding:0 .35em;margin-left:.3em;vertical-align:.1em}
.needsfix{outline:2px solid var(--gold)} .impwarn{flex:1;margin:0 8px}
/* batch import review */
.rv{border:2px solid transparent;transition:border-color .15s}
.rv.rv-y{border-color:var(--green);background:#15291f}
.rv.rv-n{border-color:var(--red);background:#2a1719;opacity:.75}
.rv-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.rv-legs{margin:8px 0;padding-left:22px}.rv-legs li{margin:3px 0}
.rv-meta{display:flex;gap:16px;flex-wrap:wrap;margin:6px 0}
.rv-boost{color:var(--gold);font-size:14px;margin:4px 0}
.rv-btns{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:10px}
.rv-btns button{min-height:52px;border-radius:12px;border:2px solid var(--line);background:var(--card2);color:var(--txt);font-size:17px;font-weight:800;padding:0 14px}
.rv-btns .rv-ok.on{background:var(--green);border-color:var(--green);color:#06210f}
.rv-btns .rv-no.on{background:var(--red);border-color:var(--red);color:#fff}
.rv-btns button:disabled{opacity:.45}
.rv-edit{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.rv-leg{border-bottom:1px dashed var(--line);margin-bottom:10px}
#rvgo:disabled{opacity:.5}

/* board bet cards: type badge, odds, stake pill, status accent */
.bet{border-left:3px solid var(--grey);padding-left:10px;border-radius:2px}
.bet.st-live{border-left-color:#ff6b35} .bet.st-won,.bet.st-won_adj{border-left-color:var(--green)} .bet.st-lost{border-left-color:var(--red)} .bet.st-push{border-left-color:var(--mut)}
.bleft{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}
.btype{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:6px;background:var(--card2);color:#cfd8e4}
.bet.st-won .btype,.bet.st-won_adj .btype{background:rgba(34,197,94,.15);color:var(--green)} .bet.st-lost .btype{background:rgba(239,68,68,.15);color:var(--red)} .bet.st-live .btype{background:rgba(255,107,53,.15);color:#ff6b35}
.bmeta{color:var(--mut);font-size:13px}
.bodds{font-weight:800;color:var(--gold);font-size:15px}
.bstake{font-weight:800;font-size:12px;padding:2px 8px;border-radius:999px;background:var(--card2);border:1px solid var(--line);color:var(--txt)}
.bboost{font-size:13px;margin:0 0 4px}
.tvcol .bet{padding-left:.6em} .tvcol .btype,.tvcol .bstake{font-size:.7em} .tvcol .bodds{font-size:.9em} .tvcol .bmeta{font-size:.75em} .tvcol .bboost{font-size:.78em}
@media (pointer:coarse){#imppaste{display:none} #importcard .row2{grid-template-columns:1fr}}

/* sport tabs */
.sporttabs{position:relative;padding:8px 14px 0;z-index:20}
.stabrow{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.stabrow::-webkit-scrollbar{display:none}
.stab{flex:0 0 auto;display:flex;align-items:center;gap:6px;background:var(--card);color:inherit;border:1px solid transparent;border-radius:999px;padding:7px 12px;font-weight:800;font-size:13px;letter-spacing:.03em;cursor:pointer}
.stab.hasbet{border-color:#ff8a3d55}
.stab.on{background:#ff8a3d;color:#111}
.stab .dot{width:7px;height:7px;flex:0 0 7px;min-width:7px;margin:0}
.scount{font-weight:600;font-size:11px;opacity:.75}
.spanel{position:absolute;left:14px;right:14px;top:calc(100% + 6px);background:var(--card);border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 12px 30px #000a;max-height:60vh;overflow-y:auto;padding:6px 0}
.srow{display:flex;justify-content:space-between;gap:10px;padding:9px 14px;font-size:14px;border-bottom:1px solid #ffffff0d}
.srow:last-of-type{border-bottom:0}
.srow.bet{background:#ff8a3d1f;box-shadow:inset 3px 0 0 #ff8a3d}
.smatch{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sbet{margin-right:4px}
.rk{font-size:10px;opacity:.7;margin-right:2px}
.sst{white-space:nowrap;font-size:12px;opacity:.85}
.sst.live{color:#ff5a36;font-weight:700;opacity:1}
.sst.final{opacity:.6}
.spanel .btn{display:block;margin:8px auto 4px}
.tvscores .chip.hasbet{color:#ffb27a}
.tvscores .chip .smatch,.tvscores .chip .sst{margin-right:.5em}
.spanel>p{padding:8px 14px;margin:0}
.spanel .btn{font-size:13px;padding:7px 14px;min-height:0}
.sday{font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:8px 2px 2px;border-bottom:1px solid rgba(255,255,255,.08)}
.stitle{font-weight:700;font-size:.95rem;color:var(--gold);margin:2px 0 8px}
.spanel{padding:10px 0 8px}
.spanel .stitle{padding:4px 16px 6px;margin:0}
.spanel .sday{padding:10px 16px 4px}
.srow{padding:9px 16px}
@media (min-width:700px){.spanel{left:50%;right:auto;transform:translateX(-50%);width:min(560px,calc(100vw - 28px))}}
.sporttabs{max-width:760px;margin:0 auto}
.stab{flex:1 0 auto;justify-content:center;padding:9px 14px;font-size:14px}
.sechead{margin:22px 4px 8px;font-size:14px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;font-weight:700}

.pc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.pc-top h3{margin:0}
.pc-tog{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.pc-tog button{min-width:52px;min-height:34px;border:0;background:transparent;color:var(--mut);font-weight:700;font-size:14px}
.pc-tog button.on{background:var(--card2);color:var(--txt)}
.pc-sum{display:flex;align-items:baseline;gap:10px;margin:0 2px 10px}.pc-tot{font-size:24px;font-weight:800}
.pc-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.pc-dow{margin-bottom:4px}.pc-dow span{text-align:center;font-size:11px;color:var(--mut);font-weight:700}
.pc-cell{min-height:48px;border-radius:8px;border:1px solid var(--line);padding:3px 2px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-decoration:none;color:var(--txt);overflow:hidden}
.pc-empty{border:0}.pc-future{opacity:.35}.pc-today{border-color:var(--txt)}
.pc-d{font-size:11px;font-weight:600;color:var(--mut);align-self:flex-start;padding-left:2px}
.pc-v{font-style:normal;font-size:clamp(9px,2.6vw,11px);max-width:100%;font-weight:800;white-space:nowrap;letter-spacing:-.02em}
.pc-v.pos,.pc-tot.pos{color:#22c55e}.pc-v.neg,.pc-tot.neg{color:#ef4444}.pc-v.flat{color:var(--mut)}
.pc-has.pos{background:rgba(34,197,94,.12)}.pc-has.neg{background:rgba(239,68,68,.12)}

.ltxt.ppst{color:#f97316;font-weight:700;letter-spacing:.02em}
.dot.orange{background:#f97316}
.leg.voided{opacity:.55}
.leg.voided s{text-decoration-thickness:2px}
.vtag{font-size:10px;font-weight:800;padding:1px 5px;border-radius:4px;background:#64748b;color:#fff;letter-spacing:.04em}

.sst.pp{color:#ff8a3d;font-weight:800}

/* gear menu: owner-only bet options (bottom sheet on phones, centered modal on desktop) */
.bet{position:relative}
.bactions{display:flex;justify-content:flex-end;margin:-2px -4px 0 0}
.gearbtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--mut);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,color .15s}
.gearbtn:hover,.gearbtn:focus-visible{background:var(--card2);border-color:var(--line);color:var(--txt);outline:0}
.gearbtn:active{transform:scale(.94)}
body.noscroll{overflow:hidden}
.gsheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:rgba(4,8,14,0);transition:background .18s}
.gsheet.open{background:rgba(4,8,14,.62)}
.gpanel{width:100%;max-height:88vh;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;padding:6px 16px calc(env(safe-area-inset-bottom) + 16px);box-shadow:0 -12px 40px #000a;transform:translateY(100%);transition:transform .2s ease-out;-webkit-overflow-scrolling:touch}
.gsheet.open .gpanel{transform:none}
.ggrab{width:38px;height:5px;border-radius:3px;background:#3a475a;margin:4px auto 6px}
.ghead{display:flex;align-items:center;justify-content:space-between;margin:0 0 4px}
.gtitle{font-size:13px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.gx{width:40px;height:40px;border-radius:50%;border:0;background:var(--card2);color:var(--txt);font-size:16px;cursor:pointer}
.gbet.bet{margin:4px 0 10px;border-top:0;padding-top:4px;background:var(--card2);border-radius:10px;padding:10px 12px 8px}
.gbet .bboost{margin:2px 0 0}
.gsub{font-size:12px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;margin:12px 0 2px}
.gleg{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:4px 0}
.gleg:last-of-type{border-bottom:0}
.gleg .leg{flex:1;min-width:0}
.glact{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.godds{font-weight:800;color:var(--gold);font-size:14px}
.gpill{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--card2);color:var(--blue);font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap}
.gpill[data-v="0"]{color:var(--txt)}
.gpill:disabled{opacity:.5}
.gmenu{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.gitem{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--card2);color:var(--txt);font-size:16px;font-weight:700;text-align:left;cursor:pointer}
.gitem span{width:22px;text-align:center}
.gitem i{margin-left:auto;font-style:normal;color:var(--mut);font-size:20px}
.gitem.gdel{color:#ff8a8a;border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08)}
.gform label{display:block;font-weight:600;font-size:13px;color:#cfd8e4;margin:0 0 10px}
.gform .row2{gap:10px}
.gform input{min-height:44px;font-size:16px}
.gform .sign{flex-basis:44px;min-height:44px;font-size:20px}
.gform .hint{margin:-4px 0 6px}
.gform .link{padding:0;min-height:36px;margin:-4px 0 4px}
.glegodds{display:flex!important;align-items:center;gap:10px}
.glegodds>span:first-child{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.glegodds .signrow{flex:0 0 150px;margin-top:0}
.gbtns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.btn.danger{background:var(--red);border-color:var(--red);color:#fff}
.gdanger{border:1px solid rgba(239,68,68,.45);background:rgba(239,68,68,.08);border-radius:12px;padding:12px 14px;margin-top:8px}
.gdanger p{margin:0}
@media (min-width:700px){
  .gsheet{align-items:center}
  .gpanel{width:min(480px,calc(100vw - 32px));border-radius:16px;border-bottom:1px solid var(--line);padding-bottom:18px;transform:translateY(12px) scale(.98);opacity:0;transition:transform .18s,opacity .18s}
  .gsheet.open .gpanel{transform:none;opacity:1}
  .ggrab{display:none}
}

/* Phase 1: My Bets + Stats */
.menav a.tab{display:flex;align-items:center;justify-content:center;text-decoration:none}
.sumrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
.sum{background:var(--card);border-radius:12px;padding:10px 12px;min-width:0}
.sum .k{font-size:11px;color:var(--mut);font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sum .v{font-size:20px;font-weight:800;margin-top:2px;white-space:nowrap}
.sumline{margin:-4px 2px 12px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;align-items:center}
.chiplbl{font-size:12px;color:var(--mut)}
.chip2{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:rgba(90,162,245,.12);color:#9cc6fb;border:1px solid rgba(90,162,245,.3);white-space:nowrap;text-decoration:none}
.chip2.priv{background:var(--card2);color:var(--mut);border-color:var(--line)}
.seg.sm button{min-height:38px;font-size:13px}
.stseg .stmode{flex:0 0 64px}
.call{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;margin:0 0 8px;font-size:14px}
.call.good{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3)}
.call.bad{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.3)}
.call b{font-size:15px}
.st{width:100%;border-collapse:collapse;font-size:14px}
.st th{font-size:10.5px;text-transform:uppercase;color:var(--mut);text-align:right;font-weight:700;padding:4px 4px;letter-spacing:.04em}
.st th:first-child,.st td:first-child{text-align:left}
.st td{padding:8px 4px;border-top:1px solid var(--line);text-align:right;white-space:nowrap;vertical-align:top}
.st td:first-child{font-weight:700;white-space:normal}
.st td small{display:block;font-size:10.5px;color:var(--mut);font-weight:600}
.st tr.thin td{opacity:.45}
.thinlbl{display:block;font-size:10.5px;font-weight:600;color:var(--mut)}
.homeme{margin:0 0 12px}

/* Stats: tappable need explanation */
.needi{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin:-2px 0 0 2px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--card2);color:var(--mut);font:700 11px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer;vertical-align:middle;-webkit-tap-highlight-color:transparent;text-transform:none;letter-spacing:0}
.needi[aria-expanded="true"],.needi:focus-visible{background:var(--blue);border-color:var(--blue);color:#05182e;outline:0}
.needi:active{transform:scale(.92)}
.needpop{font-size:13px;line-height:1.4;color:var(--txt);background:var(--card2);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:10px;padding:10px 12px;margin:0 0 10px}
.st th .needi{position:relative;top:-1px}
/* Phase 2: share picker, join / account gates, edit tags, owner review */
a.gitem{text-decoration:none}
.sharecard{padding-bottom:6px}
.sharehead{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 4px}
.sharerow{display:flex!important;align-items:center;gap:10px;min-height:48px;margin:0!important;border-top:1px solid var(--line);font-weight:600}
.sharerow:first-of-type{border-top:0}
.sharerow .sharename{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sharerow.priv{color:var(--mut);font-weight:400;gap:8px}
.sharerow .ltag{margin-left:0}
.gate{text-align:center;padding:22px 18px}
.gate-ic{font-size:40px;line-height:1;margin:0 0 8px}
.gate h2{font-size:22px}
.gate p{color:#c5cfdc}
.gate .form{text-align:left;margin-top:8px}
.claimbox{text-align:left;background:var(--card2);border-radius:12px;padding:12px;margin:6px 0 12px}
.claimbox .check{font-weight:600;min-height:40px}
.claimbox .check input{width:20px;height:20px}
.etags{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 0}
.etag{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--card2);color:var(--mut);border:1px solid var(--line);white-space:nowrap}
.etag.pend,.tag.pend,.chip2.pend{background:rgba(245,184,61,.14);color:var(--gold);border-color:rgba(245,184,61,.4)}
.revbanner{margin:0 0 12px;justify-content:space-between;border-color:rgba(245,184,61,.5);color:var(--gold);background:rgba(245,184,61,.1)}
.revbtn{margin:0 0 12px}
.mrow{display:flex;justify-content:space-between;align-items:center;min-height:44px;border-top:1px solid var(--line);font-weight:600}
.mrow:first-of-type{border-top:0}
.myb{justify-content:flex-start;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.rq-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.rq-col{background:var(--card2);border-radius:12px;padding:10px;border:1px solid var(--line);min-width:0}
.rq-col.new{border-color:rgba(34,197,94,.5);background:rgba(34,197,94,.07)}
.rq-k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);font-weight:700}
.rq-col.new .rq-k{color:var(--green)}
.rq-odds{font-size:24px;font-weight:800;margin-top:2px}
.rq-u{font-weight:700;font-size:14px}
.rq-legs{margin:8px 0 0;padding-left:18px;font-size:13px}
.rq-legs li{margin:0 0 4px}
.rq-img{display:block;text-decoration:none;margin:0 0 12px;text-align:center}
.rq-img img{display:block;width:100%;max-height:340px;object-fit:cover;object-position:top;border-radius:12px;border:1px solid var(--line);margin-bottom:4px}
#slipprev{text-align:center}
#slipprev img{max-width:100%;max-height:260px;border-radius:12px;border:1px solid var(--line);display:block;margin:0 auto 4px}
.slipwho{padding-left:18px;margin:0 0 12px;color:#c5cfdc}
.slipwho li{margin:0 0 4px}
.rq .mhead{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rq-chg{font-size:13px;color:var(--gold);margin:-2px 0 8px}
.rq-col .chg{color:var(--green)}
/* bet-type row: never clip labels (5 buttons once BTTS shows for soccer): shrink, then wrap */
.seg button{min-width:min-content}
.kindseg:has(button[data-k="btts"]:not([hidden])) button,.mloptseg button{font-size:13px;padding:0 4px}
/* six league buttons: 3 per row on phones (no clipping), one row when there's room */
.lgseg button{flex:1 1 calc(33.33% - 6px);font-size:14px}
@media (min-width:520px){ .lgseg button{flex:1 1 0} }
.sharerow.off{opacity:.45}
.latelock{margin:8px 0 4px;color:var(--warn,#b45309)}
.unitlock{display:block;font-weight:400}
.notice{background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.45);border-radius:10px;padding:10px 12px;margin:8px 0;font-size:14px}
/* league picker: 7 groups (4 per row on phones) + a sub-row for NCAAB (M/W) and Soccer leagues */
.lgpick .lgseg button{flex:1 1 calc(25% - 6px);font-size:14px;padding:0 4px}
.lgpick .lgseg .caret{font-size:10px;opacity:.75}
.lgpick .lgsub{margin-top:-4px;padding:8px;border-radius:12px;background:var(--card2);border:1px solid var(--line)}
.lgpick .lgsub button{flex:1 1 calc(25% - 6px);min-height:38px;font-size:13px;background:var(--card);white-space:nowrap}
.lgpick .lgsub button.on{background:var(--blue);border-color:var(--blue);color:#05182e}
@media (min-width:520px){ .lgpick .lgseg button{flex:1 1 0} }
/* Phase 3: contest rules, weekly leaderboard, seasons */
.tabs .rulechip{flex:0 0 auto;min-height:44px;padding:0 12px;border-radius:10px;border:1px solid rgba(245,184,61,.4);background:rgba(245,184,61,.1);color:var(--gold);font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap}
.rulelist{margin:4px 0 8px;padding-left:20px;line-height:1.45}
.rulelist li{margin:4px 0}
.lbseg{margin-bottom:10px}
.wkbar .dlabel{font-size:14px}
.wkstat{font-size:14px;color:var(--mut);margin:0 0 6px}
.wkstat.won{color:var(--gold);font-weight:600}
.wkstat.won b{color:var(--txt)}
.lbt tr.lead td{background:rgba(245,184,61,.07)}
.lbt tr.unq td{color:var(--mut)}
.troph{font-size:13px;white-space:nowrap}
.pwrow{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px;border-top:1px solid var(--line);font-size:14px}
.pwrow:first-of-type{border-top:0}
.pwrow>span:last-child{text-align:right}
.pwk{font-weight:700;white-space:nowrap;padding:0}
.rules .two{display:flex;gap:10px}
.rules .two label{flex:1;min-width:0}
.flabel{font-weight:600;font-size:14px;color:#cfd8e4;margin:0 0 6px}
.sportchecks{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.form label.ck{display:inline-flex;align-items:center;gap:6px;margin:0;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--card2);font-size:14px}
.form label.ck input{width:18px;height:18px;min-height:0;margin:0;padding:0;-webkit-appearance:checkbox;appearance:checkbox;accent-color:var(--blue)}
.form label.wideck{display:flex;margin:0 0 8px}
.tvrail .wklbl{font-size:.75em;color:var(--mut);margin:-.2em 0 .4em}
.tvcol .etags{margin-top:.3em}
.tvrail #lbw{margin-bottom:1.1em}
/* TV link opened on a phone: leaderboard first, member columns stacked */
@media (max-width:700px){
  body.tv{overflow:auto;font-size:14px}
  .tvroot{height:auto;min-height:100vh;padding:14px 12px 10px}
  .tvhead{align-items:flex-start;gap:8px}
  .tvhead .brand{display:block;font-size:1.3em}
  .tvgrid{display:flex;flex-direction:column}
  .tvrail{order:-1}
  .tvrail .legend{margin-top:.4em}
  .tvcols{grid-template-columns:1fr !important}
  .tvcol{max-height:none;overflow:visible}
}

.recapimg{display:block;width:100%;border-radius:12px;margin:4px 0 12px;border:1px solid var(--line)}
.recapbtns{display:grid;gap:8px}
.recapbtns .btn{text-align:center}
