/* Draft Duel — dark, high contrast, big numbers, thumb-friendly.
   Cues from Sleeper: heavy weights, tight tracking, color as identity. */
:root{
  --bg:#0a0c10; --bg2:#11141b; --card:#161a23; --card2:#1d222d;
  --line:#252b38; --txt:#f2f5fa; --dim:#8b95a8; --dim2:#5d6679;
  --a:#22d3ee; --b:#f472b6; --win:#34d399; --lose:#f87171; --live:#ef4444;
  --r:16px; --tab:64px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);
  font:15px/1.45 -apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Roboto,sans-serif;
  overscroll-behavior-y:none}
body{padding-bottom:calc(var(--tab) + env(safe-area-inset-bottom));
  padding-top:env(safe-area-inset-top)}
button,input{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
.hide{display:none!important}

/* ---------- login ---------- */
#login{position:fixed;inset:0;background:var(--bg);display:flex;
  flex-direction:column;align-items:center;justify-content:center;z-index:100;padding:24px}
.logo{font-size:34px;font-weight:900;letter-spacing:-1.2px;margin-bottom:4px}
.logo span{background:linear-gradient(92deg,var(--a),var(--b));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:var(--dim);margin-bottom:34px;font-size:14px}
.pindots{display:flex;gap:14px;margin-bottom:30px}
.pindot{width:15px;height:15px;border-radius:50%;background:var(--card2);
  border:2px solid var(--line);transition:.18s}
.pindot.on{background:var(--a);border-color:var(--a);transform:scale(1.18)}
.pad{display:grid;grid-template-columns:repeat(3,78px);gap:14px}
.pad button{height:78px;border-radius:50%;background:var(--card);font-size:27px;
  font-weight:600;transition:.1s;border:1px solid var(--line)}
.pad button:active{background:var(--a);color:#000;transform:scale(.93)}
.pad .wide{grid-column:span 1;font-size:15px;color:var(--dim)}
.err{color:var(--lose);height:20px;margin-top:18px;font-size:14px;font-weight:600}

/* ---------- chrome ---------- */
header{position:sticky;top:0;z-index:40;background:rgba(10,12,16,.93);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--line);
  padding:13px 16px;display:flex;align-items:center;gap:10px}
header h1{margin:0;font-size:18px;font-weight:800;letter-spacing:-.4px;flex:1}
.pill{font-size:11px;font-weight:800;padding:4px 9px;border-radius:99px;
  background:var(--card2);color:var(--dim);text-transform:uppercase;letter-spacing:.6px}
.pill.live{background:rgba(239,68,68,.16);color:#fca5a5}
.pill.test{background:rgba(251,191,36,.16);color:#fcd34d}
.dot{width:7px;height:7px;border-radius:50%;background:var(--live);
  display:inline-block;margin-right:5px;animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
main{padding:14px 14px 34px;max-width:620px;margin:0 auto}

nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tab) + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);background:rgba(13,16,22,.97);
  backdrop-filter:blur(14px);border-top:1px solid var(--line);
  display:flex;z-index:50}
nav button{flex:1;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:3px;color:var(--dim2);font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:.5px;position:relative}
nav button .ic{font-size:21px;line-height:1}
nav button.on{color:var(--a)}
nav .badge{position:absolute;top:8px;right:50%;margin-right:-22px;min-width:17px;
  height:17px;border-radius:99px;background:var(--live);color:#fff;font-size:10px;
  display:flex;align-items:center;justify-content:center;padding:0 4px}

/* ---------- matchup ---------- */
.score{display:flex;align-items:stretch;background:var(--card);
  border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.side{flex:1;padding:16px 13px;position:relative}
.side.r{text-align:right}
.side::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--c)}
.side.r::after{left:auto}
.tname{font-size:12px;font-weight:800;color:var(--dim);text-transform:uppercase;
  letter-spacing:.7px;margin-bottom:5px;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.pts{font-size:41px;font-weight:900;letter-spacing:-2px;line-height:1}
.proj{font-size:11px;color:var(--dim2);margin-top:4px}
.vs{display:flex;align-items:center;padding:0 9px;color:var(--dim2);
  font-weight:900;font-size:12px}
.wpbar{height:5px;background:var(--card2);border-radius:99px;overflow:hidden;
  margin:11px 0 3px;display:flex}
.wpbar i{display:block;transition:width .7s cubic-bezier(.4,0,.2,1)}
.wplab{display:flex;justify-content:space-between;font-size:10px;
  color:var(--dim2);font-weight:700;margin-bottom:14px}

.lineups{display:flex;gap:6px}
.col{flex:1;min-width:0}
.slotrow{display:flex;align-items:center;gap:5px;padding:8px 7px;
  background:var(--card);border-radius:11px;margin-bottom:6px;
  border:1px solid transparent;transition:.15s}
.slotrow:active{background:var(--card2)}
.slotrow.cap{border-color:rgba(251,191,36,.45)}
.slotrow.playing{border-color:rgba(239,68,68,.3)}
.slot{font-size:9px;font-weight:900;color:var(--dim2);width:26px;flex-shrink:0;
  letter-spacing:.3px}
.pinfo{flex:1;min-width:0;overflow:hidden}
.pname{font-size:13px;font-weight:700;display:flex;align-items:center;gap:4px;
  min-width:0}
.pname>.nmtxt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.pmeta{font-size:10px;color:var(--dim2);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.ppts{font-size:15px;font-weight:900;min-width:36px;text-align:right;flex-shrink:0}
.ppts.z{color:var(--dim2)}
.capbadge{font-size:9px;background:rgba(251,191,36,.2);color:#fcd34d;
  padding:1px 4px;border-radius:4px;font-weight:900}
.inj{font-size:9px;color:var(--lose);font-weight:800}

/* ---------- draft ---------- */
.banner{border-radius:var(--r);padding:17px;text-align:center;margin-bottom:13px;
  background:var(--card);border:1px solid var(--line);transition:.3s}
.banner.you{background:linear-gradient(135deg,rgba(34,211,238,.17),rgba(34,211,238,.04));
  border-color:var(--a)}
.banner h2{margin:0;font-size:25px;font-weight:900;letter-spacing:-.8px}
.banner p{margin:5px 0 0;color:var(--dim);font-size:13px}
.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:9px;margin-bottom:9px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
  mask-image:linear-gradient(90deg,#000 94%,transparent);
  -webkit-mask-image:linear-gradient(90deg,#000 94%,transparent);
  padding-right:10px}
.tabs::-webkit-scrollbar{display:none}
.tabs button{padding:9px 11px;border-radius:99px;background:var(--card);
  font-size:12px;font-weight:800;color:var(--dim);white-space:nowrap;
  border:1px solid var(--line);min-height:40px;flex:0 0 auto}
.tabs button.on{background:var(--a);color:#000;border-color:var(--a)}
.search{width:100%;padding:12px 14px;border-radius:12px;background:var(--card);
  border:1px solid var(--line);margin-bottom:10px;outline:none;color:var(--txt);
  font-size:15px;-webkit-appearance:none}
.search::placeholder{color:var(--dim2)}
select.search{background:var(--card) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%238b95a8' stroke-width='2' fill='none'/></svg>") no-repeat right 14px center}
.search:focus{border-color:var(--a)}
.prow{display:flex;align-items:center;gap:10px;padding:11px;background:var(--card);
  border-radius:12px;margin-bottom:6px;border:1px solid transparent}
.prow:active{background:var(--card2);border-color:var(--a)}
.pos{font-size:10px;font-weight:900;width:31px;height:31px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pos.QB{background:rgba(244,114,182,.19);color:#f9a8d4}
.pos.RB{background:rgba(52,211,153,.19);color:#6ee7b7}
.pos.WR{background:rgba(34,211,238,.19);color:#67e8f9}
.pos.TE{background:rgba(251,191,36,.19);color:#fcd34d}
.pos.DEF{background:rgba(167,139,250,.19);color:#c4b5fd}
.qbtn{font-size:19px;color:var(--dim2);min-width:44px;height:44px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center}
.qbtn.on{color:#fcd34d}
.log{max-height:190px;overflow-y:auto}
.logrow{display:flex;gap:8px;padding:7px 10px;font-size:12px;
  border-bottom:1px solid var(--line);align-items:center}
.logno{color:var(--dim2);font-weight:800;font-size:10px;width:26px}

/* ---------- sheets / misc ---------- */
.sheet{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:90;display:flex;
  align-items:flex-end;animation:fade .18s}
.sheet>div{background:var(--bg2);width:100%;border-radius:22px 22px 0 0;padding:22px;
  padding-bottom:calc(22px + env(safe-area-inset-bottom));animation:up .26s cubic-bezier(.2,.9,.3,1)}
@keyframes up{from{transform:translateY(100%)}}
@keyframes fade{from{opacity:0}}
.btn{width:100%;padding:15px;border-radius:13px;background:var(--a);color:#000;
  font-weight:900;font-size:16px;margin-top:9px}
.btn.g{background:var(--card2);color:var(--txt)}
.btn.d{background:var(--lose);color:#fff}
.btn:disabled{opacity:.4}
.card{background:var(--card);border-radius:var(--r);padding:15px;margin-bottom:11px;
  border:1px solid var(--line)}
.card h3{margin:0 0 11px;font-size:13px;font-weight:800;color:var(--dim);
  text-transform:uppercase;letter-spacing:.7px}
.sk{background:linear-gradient(90deg,var(--card) 25%,var(--card2) 50%,var(--card) 75%);
  background-size:200% 100%;animation:sh 1.3s infinite;border-radius:11px}
@keyframes sh{to{background-position:-200% 0}}
.empty{text-align:center;color:var(--dim2);padding:34px 18px;font-size:14px}
.toast{position:fixed;bottom:calc(var(--tab) + 18px);left:50%;
  transform:translateX(-50%);background:var(--card2);padding:11px 19px;
  border-radius:99px;font-size:13px;font-weight:700;z-index:95;
  border:1px solid var(--line);animation:fade .2s;max-width:88%;text-align:center}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:99}
.confetti i{position:absolute;width:9px;height:14px;animation:fall linear forwards}
@keyframes fall{to{transform:translateY(102vh) rotate(760deg);opacity:0}}

/* ================= v2 ================= */
#who{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;
  align-items:center;justify-content:center;z-index:100;padding:24px}
.whocards{display:flex;flex-direction:column;gap:14px;width:100%;max-width:330px;margin-top:26px}
.whocard{display:flex;align-items:center;gap:15px;padding:20px;border-radius:19px;
  background:var(--card);border:2px solid var(--line);transition:.15s;width:100%}
.whocard:active{transform:scale(.97)}
.whocard .av{font-size:38px}
.whocard .nm{font-size:21px;font-weight:900;text-align:left}
.sh{margin:0 0 4px;font-size:22px;font-weight:900}
.sp{color:var(--dim);margin:0 0 18px;font-size:13px}
.lbl{margin:16px 0 8px;font-size:12px;color:var(--dim);font-weight:800;
  text-transform:uppercase;letter-spacing:.6px}
.swatch{display:flex;gap:9px;flex-wrap:wrap}
.swatch button{width:44px;height:44px;border-radius:13px;font-size:22px;
  background:var(--card);border:2px solid transparent;display:flex;
  align-items:center;justify-content:center}
.swatch button.on{border-color:#fff}
.rules{display:flex;flex-direction:column;gap:13px;font-size:14px;color:var(--dim);
  max-height:62vh;overflow-y:auto}
.rules b{color:var(--txt)} .gold{color:#fcd34d}
.upd{text-align:center;color:var(--dim2);font-size:11px;margin-top:14px}

/* pending action cards */
.pcard{display:flex;align-items:center;gap:12px;padding:14px;border-radius:15px;
  margin-bottom:9px;background:linear-gradient(135deg,rgba(34,211,238,.18),rgba(34,211,238,.05));
  border:1px solid var(--a)}
.pcard.hot{background:linear-gradient(135deg,rgba(239,68,68,.2),rgba(239,68,68,.05));
  border-color:var(--live);animation:pulsebg 2.2s infinite}
@keyframes pulsebg{50%{filter:brightness(1.22)}}
.pcard .t{font-weight:900;font-size:15px}
.pcard .d{font-size:12px;color:var(--dim)}
.pcard .go{font-size:12px;font-weight:900;color:var(--a);white-space:nowrap}

/* score pops + feed */
.pop{position:absolute;right:8px;top:-4px;font-weight:900;font-size:13px;
  animation:pop 1.9s ease-out forwards;pointer-events:none}
@keyframes pop{0%{opacity:0;transform:translateY(6px)}18%{opacity:1}
  100%{opacity:0;transform:translateY(-26px)}}
.slotrow{position:relative}
.slotrow.flash{animation:fl .9s}
@keyframes fl{0%,100%{background:var(--card)}35%{background:rgba(52,211,153,.24)}}
.rz{color:var(--live);animation:pulse 1.1s infinite;font-size:11px}
.feedrow{display:flex;gap:9px;padding:9px 11px;border-bottom:1px solid var(--line);
  font-size:13px;align-items:center}
.feedrow .dl{font-weight:900;min-width:46px;text-align:right}
.lock{font-size:10px;color:var(--dim2)}

/* TD takeover */
.takeover{position:fixed;inset:0;z-index:98;display:flex;flex-direction:column;
  align-items:center;justify-content:center;animation:fade .2s}
.takeover .big{font-size:76px;font-weight:900;letter-spacing:-3px;animation:zoom .5s}
.takeover .nm2{font-size:25px;font-weight:900;margin-top:6px}
@keyframes zoom{from{transform:scale(.5);opacity:0}}
.taunt{position:fixed;inset:0;z-index:97;display:flex;align-items:center;
  justify-content:center;font-size:110px;animation:fade .2s;pointer-events:none}

/* reactions */
.reactbar{display:flex;gap:7px;justify-content:center;margin:10px 0 4px}
.reactbar button{font-size:21px;padding:6px 9px;border-radius:11px;background:var(--card)}
.reactbar button:active{transform:scale(1.25)}
.floatr{position:fixed;font-size:46px;z-index:96;animation:floatup 2.4s ease-out forwards;
  pointer-events:none}
@keyframes floatup{0%{opacity:0;transform:translateY(0) scale(.5)}
  20%{opacity:1;transform:scale(1.1)}100%{opacity:0;transform:translateY(-190px) scale(1)}}

/* moves */
.seg{display:flex;gap:6px;margin-bottom:12px;background:var(--card);padding:4px;
  border-radius:13px}
.seg button{flex:1;padding:9px;border-radius:10px;font-size:12px;font-weight:800;
  color:var(--dim)}
.seg button.on{background:var(--a);color:#000}
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:99px;
  background:var(--card2);font-size:12px;font-weight:800}
.tradecol{flex:1;min-width:0}
.tradecol h4{margin:0 0 7px;font-size:11px;color:var(--dim);text-transform:uppercase;
  letter-spacing:.6px}
.tsel{display:flex;align-items:center;gap:8px;padding:9px;border-radius:11px;
  background:var(--card);margin-bottom:5px;font-size:13px;border:1px solid transparent}
.tsel.on{border-color:var(--a);background:var(--card2)}
.badgechip{display:inline-block;padding:5px 10px;border-radius:99px;background:var(--card2);
  font-size:12px;font-weight:700;margin:0 5px 5px 0}


/* ---- QA fixes 2026-09-14 ---- */
.prow .add{font-size:20px;color:var(--a);min-width:44px;height:44px;display:flex;
  align-items:center;justify-content:center;flex-shrink:0;font-weight:900}
.tsel .box{width:22px;height:22px;border-radius:7px;border:2px solid var(--line);
  flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px}
.tsel.on .box{background:var(--a);border-color:var(--a);color:#000}
.tsel{min-height:46px}
.finalcard{border-radius:var(--r);padding:18px;text-align:center;margin-bottom:11px;
  border:1px solid var(--line)}
.finalcard.w{background:linear-gradient(135deg,rgba(52,211,153,.22),rgba(52,211,153,.05));
  border-color:var(--win)}
.finalcard.l{background:linear-gradient(135deg,rgba(248,113,113,.18),rgba(248,113,113,.04));
  border-color:var(--lose)}
.finalcard .wl{font-size:52px;font-weight:900;letter-spacing:-2px;line-height:1}
.finalcard .sc{font-size:15px;font-weight:800;margin-top:6px}
.finalcard .sub{font-size:12px;color:var(--dim);margin-top:5px}
