:root{--bg:#0d1726;--bg-top:#18294a;--panel:#16233a;--panel-2:#1f3050;--line:#2c4068;--text:#f3efe4;--muted:#93a3c2;--amber:#ffb627;--hit:#3ecf72;--xbh:#2fb5e8;--hr:#ffcf3f;--walk:#a98cf5;--k:#e5484d;--out:#5b6b88;--grass:#2e7a3c;--grass-2:#286b35;--dirt:#b98450;--chalk:#f4f1e8}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0}body{background:radial-gradient(ellipse at top, var(--bg-top) 0%, var(--bg) 65%) fixed;background-color:var(--bg);color:var(--text);font-family:Rubik,system-ui,sans-serif;font-size:15px}button{font:inherit;color:inherit}#app{max-width:460px;padding:max(10px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));flex-direction:column;gap:10px;margin:0 auto;display:flex}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10.5px}.muted{color:var(--muted)}.scoreboard{border:2px solid var(--line);background:#0a1220;border-radius:12px;padding:8px 10px}.sb-title{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.logo{color:var(--amber);letter-spacing:1px;font-family:Graduate,serif;font-size:17px}.story{color:var(--muted);text-align:right;font-size:12.5px}.sb-row{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:6px;display:grid}.sb-cell{text-align:center;background:#121d31;border-radius:8px;padding:4px 6px}.sb-cell b{color:var(--amber);font-family:Graduate,serif;font-size:22px;line-height:1.2;display:block}.sb-cell b.done{color:var(--hit)}.outs{letter-spacing:3px}.field-wrap{background:#0b2412;border-radius:14px;position:relative;overflow:hidden}#field{aspect-ratio:1/.78;touch-action:manipulation;width:100%;display:block}.banner{white-space:nowrap;pointer-events:none;background:#0a1220d1;border-radius:10px;padding:6px 16px;font-family:Graduate,serif;font-size:30px;animation:.25s ease-out pop;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.banner.hr{color:var(--hr);font-size:34px}.banner.hit{color:var(--hit)}.banner.out{color:var(--muted)}.banner.k{color:var(--k)}.banner.walk{color:var(--walk)}.hidden{display:none!important}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}}.matchup{grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;display:grid}.vs{color:var(--muted);font-size:12px}.player{background:var(--panel);border-radius:10px;min-height:72px;padding:7px 9px}.player .name{font-size:14.5px;font-weight:700}.player .meta{color:var(--muted);margin:1px 0 5px;font-size:11.5px}.ratings{flex-wrap:wrap;gap:4px;display:flex}.rating{background:var(--panel-2);border-radius:5px;padding:2px 5px;font-size:11px}.rating b{font-size:12px}.rating.hi b{color:var(--hit)}.rating.lo b{color:var(--k)}.odds{background:var(--panel);border-radius:10px;padding:8px 9px}.odds-bar{background:#0a1220;border-radius:7px;height:14px;display:flex;overflow:hidden}.odds-bar span{height:100%;transition:width .25s}.odds-legend{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px 6px;margin-top:7px;display:grid}.leg{white-space:nowrap;grid-template-columns:auto 1fr;align-content:start;align-items:center;column-gap:5px;font-size:12px;display:grid}.leg .d{grid-column:2;line-height:1.1}.leg i{border-radius:3px;flex:none;width:9px;height:9px}.leg b{font-variant-numeric:tabular-nums}.leg .d{font-size:10.5px}.leg .d.up{color:var(--hit)}.leg .d.down,.leg .d.up.bad{color:var(--k)}.leg .d.down.bad{color:var(--hit)}.odds-sum{color:var(--muted);justify-content:space-between;margin-top:6px;font-size:12px;display:flex}.odds-sum b{color:var(--text)}.seg{background:var(--panel);border-radius:10px;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;display:grid}.seg button{cursor:pointer;background:0 0;border:0;border-radius:8px;padding:9px 4px;font-size:13.5px;font-weight:500}.seg button.on{background:var(--panel-2);box-shadow:inset 0 0 0 2px var(--amber);color:var(--amber)}.hint{color:var(--muted);text-align:center;min-height:1.3em;margin-top:5px;font-size:12px}.play{letter-spacing:1px;background:var(--amber);color:#2a1a00;cursor:pointer;border:0;border-radius:12px;padding:14px;font-family:Graduate,serif;font-size:21px;box-shadow:0 4px #b37a10}.play:active{transform:translateY(2px);box-shadow:0 2px #b37a10}.play:disabled{opacity:.55}.last{min-height:44px}.last-text{font-size:14.5px}.checks{color:var(--muted);margin:4px 0 0;padding:0;font-size:12px;list-style:none}.checks .ok{color:var(--hit)}.checks .no{color:var(--k)}.ondeck{background:var(--panel);border-radius:10px;padding:7px 9px}#ondeck{flex-direction:column;gap:3px;margin-top:4px;font-size:13px;display:flex}#ondeck .row{justify-content:space-between;gap:8px;display:flex}#ondeck .row span:last-child{color:var(--muted);font-size:12px}.foot{align-items:center;gap:14px;font-size:13px;display:flex}.foot #seed{margin-left:auto;font-size:11px}.link{color:var(--amber);cursor:pointer;background:0 0;border:0;padding:4px 0;text-decoration:underline}.overlay{z-index:10;background:#040810b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:2px solid var(--line);border-radius:14px;width:100%;max-width:420px;max-height:85vh;padding:16px;overflow:auto}.modal h2{margin:0 0 8px;font-family:Graduate,serif;font-size:24px}.modal h2.win{color:var(--hit)}.modal h2.lose{color:var(--k)}.modal p{margin:6px 0;line-height:1.4}.modal ul{padding-left:18px;line-height:1.45}.modal .buttons{gap:8px;margin-top:12px;display:flex}.modal .buttons button{background:var(--panel-2);cursor:pointer;border:0;border-radius:10px;flex:1;padding:11px;font-weight:700}.modal .buttons button.primary{background:var(--amber);color:#2a1a00}.modal .log,.modal .roster,.modal .earn{padding:0;list-style:none}.log{margin:0;font-size:13px}.log li{border-bottom:1px solid var(--line);padding:5px 0}.log .inn{color:var(--amber);padding-top:10px;font-weight:700}.sb-side{align-items:baseline;gap:10px;display:flex}.money{color:var(--hit);font-family:Graduate,serif;font-size:17px}.strikes{letter-spacing:2px;font-size:14px}.strikes .on{color:var(--k)}.strikes .off{color:#34466b}.story{color:var(--muted);margin-top:2px;font-size:12.5px}.sb-cell b small{color:var(--muted);font-size:13px}.field-btn{color:var(--amber);box-shadow:inset 0 0 0 1.5px var(--amber);cursor:pointer;background:#0a1220d9;border:0;border-radius:9px;padding:7px 11px;font-size:13px;font-weight:700;position:absolute;bottom:8px;right:8px}.player .ph{background:var(--panel-2);color:var(--amber);box-shadow:inset 0 0 0 1.5px var(--amber);cursor:pointer;border:0;border-radius:7px;margin-top:6px;padding:5px 9px;font-size:12px;font-weight:700}.player .subbed{color:var(--amber);font-size:11px}.modal.wide{max-width:460px;max-height:92vh}.modal h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:14px 0 6px;font-size:13px}.row-btn{text-align:left;background:var(--panel-2);cursor:pointer;border:0;border-radius:10px;width:100%;margin:6px 0;padding:9px 10px;display:block}.row-btn:disabled{opacity:.45;cursor:default}.row-btn .top{justify-content:space-between;gap:8px;font-weight:700;display:flex}.row-btn .sub{color:var(--muted);margin-top:3px;font-size:12px}.row-btn.cmp{box-shadow:inset 0 0 0 1px var(--line);cursor:default;background:0 0}.good{color:var(--hit)}.bad{color:var(--k)}.team{text-align:left;background:var(--panel-2);cursor:pointer;border:0;border-radius:12px;width:100%;margin:8px 0;padding:12px;display:block}.team .tname{color:var(--amber);font-family:Graduate,serif;font-size:18px}.team .tstyle{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.team p{margin:6px 0 4px;font-size:13px}.team .avg{color:var(--muted);font-size:12px}.linescore{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:8px 0}.linescore th,.linescore td{text-align:center;border-bottom:1px solid var(--line);padding:5px 4px}.linescore th{color:var(--muted);font-size:12px;font-weight:500}.linescore td:first-child,.linescore th:first-child{text-align:left}.earn{margin:6px 0;padding:0;list-style:none}.earn li{justify-content:space-between;padding:3px 0;display:flex}.earn li b{color:var(--hit)}.earn li.total{border-top:1px solid var(--line);margin-top:4px;padding-top:6px;font-weight:700}.shop-head{justify-content:space-between;align-items:baseline;display:flex}.shop-head .money{font-size:22px}.items{grid-template-columns:1fr 1fr;gap:8px;display:grid}.item{background:var(--panel-2);border-radius:10px;flex-direction:column;gap:4px;min-height:120px;padding:9px;display:flex}.item.sold{opacity:.4}.item .kind{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:10.5px}.item .iname{font-size:14px;font-weight:700}.item .idesc{color:var(--muted);flex:1;font-size:12px}.item .ratings{margin:2px 0}.item button{background:var(--amber);color:#2a1a00;cursor:pointer;border:0;border-radius:8px;padding:7px;font-weight:700}.item button:disabled{color:var(--muted);cursor:default;background:#3a4766}.item.pending{box-shadow:inset 0 0 0 2px var(--amber)}.shop-tools{gap:8px;margin-top:8px;display:flex}.shop-tools button{background:var(--panel-2);cursor:pointer;border:0;border-radius:9px;flex:1;padding:8px;font-weight:500}.shop-tools button:disabled{opacity:.45}.prompt{border:1px solid var(--amber);color:var(--amber);background:#2b2410;border-radius:9px;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;font-size:13px;display:flex}.prompt button{color:var(--text);cursor:pointer;background:0 0;border:0;text-decoration:underline}.roster{margin:0;padding:0;list-style:none}.roster li{background:var(--panel-2);cursor:pointer;border-radius:9px;grid-template-columns:22px 1fr auto;align-items:center;gap:6px;margin:4px 0;padding:7px 8px;display:grid}.roster li.sel{box-shadow:inset 0 0 0 2px var(--amber)}.roster li.target{box-shadow:inset 0 0 0 1.5px var(--hit)}.roster li.next .num{color:var(--amber)}.roster .num{color:var(--muted);font-family:Graduate,serif}.roster .rn{font-size:13.5px;font-weight:700}.roster .rr{color:var(--muted);font-size:11.5px}.roster .rel{color:var(--k);cursor:pointer;background:0 0;border:0;font-size:12px;text-decoration:underline}.roster .ob{color:var(--muted);text-align:right;font-size:12px}.hintline{color:var(--muted);margin:4px 0 0;font-size:12px}.stats{grid-template-columns:1fr 1fr;gap:6px;margin:10px 0;display:grid}.stats div{background:var(--panel-2);border-radius:9px;padding:8px}.stats b{color:var(--amber);font-family:Graduate,serif;font-size:20px;display:block}.odds-notes{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.35}.odds-notes:empty{display:none}.odds-notes span{margin-right:8px;display:inline-block}.hand{background:var(--panel);border-radius:10px;padding:7px 9px}.hand-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.active{color:var(--amber);text-align:right;font-size:11.5px}.cards{grid-template-columns:repeat(var(--n,4), minmax(0, 1fr));gap:6px;margin-top:6px;display:grid}.card{color:#2a1a00;text-align:center;cursor:pointer;background:#f2ead6;border:0;border-radius:9px;flex-direction:column;justify-content:space-between;align-items:center;gap:3px;min-height:76px;padding:7px 5px 6px;transition:transform .12s;display:flex;box-shadow:0 2px #b9a77c}.card .cn{font-size:11.5px;font-weight:700;line-height:1.15}.card .cs{color:#6b5420;font-size:11px;font-weight:500}.card .ct{text-transform:uppercase;letter-spacing:.06em;color:#8a7444;font-size:9.5px}.card.inning{background:#e7f0ff;box-shadow:0 2px #93a6cc}.card.inning .cs{color:#2f4f86}.card.on{box-shadow:0 0 0 3px var(--amber), 0 6px 0 #b37a10;transform:translateY(-5px)}.card.blocked{opacity:.45}.cards .empty{color:var(--muted);grid-column:1/-1;padding:6px 0;font-size:12.5px}.seg.tactic{margin-top:6px}.seg.tactic button:disabled,.seg button:disabled{opacity:.35;cursor:default}.steals{gap:6px;margin-top:6px;display:flex}.steals:empty{display:none}.steals button{background:var(--panel-2);color:var(--walk);box-shadow:inset 0 0 0 1.5px var(--walk);cursor:pointer;border:0;border-radius:9px;flex:1;padding:8px 6px;font-size:13px;font-weight:700}.steals button:disabled{opacity:.45}.rating.up{box-shadow:inset 0 0 0 1px var(--hit)}.rating.down{box-shadow:inset 0 0 0 1px var(--k)}.player .tired{color:var(--k)}.staff{margin:0;padding:0;list-style:none}.staff li{background:var(--panel-2);border-radius:9px;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;margin:4px 0;padding:8px 9px;display:grid}.staff li .sn{font-size:13.5px;font-weight:700}.staff li .st{color:var(--muted);grid-column:1;font-size:12px}.staff li button{color:var(--k);cursor:pointer;background:0 0;border:0;grid-area:1/2/span 2;font-size:12px;text-decoration:underline}.staff li button:disabled{color:var(--muted);cursor:default;text-decoration:none}.staff li.empty{color:var(--muted);font-size:12.5px;display:block}.item.coach{box-shadow:inset 0 0 0 1.5px var(--amber)}.item.card-item{box-shadow:inset 0 0 0 1.5px #c8b98a}.odds-legend.two{grid-template-columns:repeat(2,minmax(0,1fr))}.boss-tag{color:#2a0a0a;background:var(--k);border-radius:5px;margin-top:5px;margin-right:4px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-block}.boss-card{border:1.5px solid var(--k);background:#2a1418;border-radius:11px;margin:8px 0;padding:10px}.boss-card .bname{color:var(--text);margin-bottom:5px;font-family:Graduate,serif;font-size:18px}.brule{flex-direction:column;gap:2px;margin-top:8px;font-size:13px;display:flex}.brule b{color:var(--k);font-size:14px}.brule .tip{color:var(--muted);font-size:12px}.banner.rally{color:#2a1a00;background:var(--amber);letter-spacing:1px;font-size:32px}.field-wrap.shake{animation:.5s ease-out shake}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-6px,3px)}30%{transform:translate(5px,-4px)}45%{transform:translate(-4px,2px)}60%{transform:translate(3px,-2px)}80%{transform:translate(-1px,1px)}}.sb-cell b.pop{animation:.6s ease-out runpop}@keyframes runpop{0%{transform:scale(1)}35%{color:var(--hit);transform:scale(1.45)}to{transform:scale(1)}}.confetti{pointer-events:none;z-index:30;position:fixed;inset:0;overflow:hidden}.confetti i{border-radius:2px;width:8px;height:12px;animation:linear forwards fall;position:absolute;top:-12px}@keyframes fall{to{transform:translate(var(--drift), 105vh) rotate(720deg)}}.toggles{flex-direction:column;gap:10px;margin:12px 0 4px;display:flex}.toggles label{align-items:center;gap:10px;font-size:15px;display:flex}.toggles input{width:20px;height:20px;accent-color:var(--amber)}.play:not(:disabled){animation:2.4s ease-in-out infinite breathe}@keyframes breathe{50%{box-shadow:0 4px #b37a10,0 0 18px #ffb62759}}.play{bottom:max(10px, env(safe-area-inset-bottom));z-index:5;position:sticky}.scoreboard{padding:6px 10px}.sb-cell{padding:2px 6px}.sb-cell b{font-size:20px}@media (width>=720px){#app{grid-template:"sb matchup""field odds""field hand""field approach""field play""last play"1fr"ondeck.""foot."/minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:10px 16px;max-width:1080px;display:grid}.scoreboard{grid-area:sb}.field-wrap{grid-area:field}.matchup{grid-area:matchup}.odds{grid-area:odds}.hand{grid-area:hand}.approach{grid-area:approach}.play{grid-area:play;position:static}.last{grid-area:last}.ondeck{grid-area:ondeck}.foot{grid-area:foot}.modal{max-width:520px}.modal.wide{max-width:680px}.items{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=720px) and (height<=860px){#field{aspect-ratio:1/.7}.matchup .player{min-height:0}}.team.small{padding:9px 12px}.team.small .tname{font-size:15px}.team:disabled{opacity:.6;cursor:default}.credit{color:var(--muted);margin-top:14px;font-size:11px}.search{border:1.5px solid var(--line);width:100%;color:var(--text);font:inherit;background:#0a1220;border-radius:10px;margin-top:10px;padding:10px 12px;font-size:16px}.search:focus{border-color:var(--amber);outline:none}.chips{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.chips button{background:var(--panel-2);cursor:pointer;border:0;border-radius:999px;padding:6px 11px;font-size:12.5px}.chips button.on{background:var(--amber);color:#2a1a00;font-weight:700}.results{max-height:46vh;margin:0 -4px;padding:0 4px;overflow:auto}.draft-picks li{grid-template-columns:22px 1fr auto}.draft-picks .cost{color:var(--amber);align-items:center;gap:6px;font-family:Graduate,serif;display:flex}.draft-picks .empty-slot{box-shadow:inset 0 0 0 1px var(--line);cursor:default;background:0 0;padding:5px 8px}.hof{color:#2a1a00;background:var(--hr);vertical-align:1px;border-radius:4px;padding:1px 4px;font-size:10px;font-weight:700}.money.bad{color:var(--k)}@media (width>=720px){.modal.wide:has(.draft-picks){grid-template-columns:1fr 1fr;align-content:start;column-gap:18px;max-width:980px;display:grid}.modal.wide:has(.draft-picks)>*{grid-column:1/-1}.modal.wide:has(.draft-picks)>.draft-picks{grid-area:3/1/span 4;align-self:start}:is(.modal.wide:has(.draft-picks)>.search,.modal.wide:has(.draft-picks)>.chips,.modal.wide:has(.draft-picks)>.results){grid-column:2}.modal.wide:has(.draft-picks) .results{max-height:52vh}}.pl-head{align-items:center;gap:7px;display:flex}.face{object-fit:cover;object-position:50% 20%;background:var(--panel-2);width:34px;height:34px;box-shadow:0 0 0 1.5px var(--line);cursor:pointer;border-radius:50%;flex:none}.face.none{color:var(--muted);justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.face.sm{vertical-align:middle;width:28px;height:28px;margin-right:6px;font-size:10.5px}.traits{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.trait{color:var(--amber);background:#2b2410;border-radius:5px;margin-right:3px;padding:1px 6px;font-size:10.5px;font-weight:700;box-shadow:inset 0 0 0 1px #6b5420}.pack{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.card.pick{min-height:150px}.card .ctext{color:#4a3a18;font-size:10.5px;line-height:1.25}.card.inning .ctext{color:#2f4f86}table.lines{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12.5px}table.lines th,table.lines td{border-bottom:1px solid var(--line);text-align:right;padding:4px 3px}table.lines th:first-child,table.lines td:first-child{text-align:left}table.lines th{color:var(--muted);font-weight:500}.sheet{text-align:center}.sheet .big{object-fit:cover;object-position:50% 15%;width:150px;height:190px;box-shadow:0 0 0 2px var(--line);border-radius:12px}.sheet .ratings{justify-content:center;margin:8px 0}.sheet .staff{text-align:left}.chem{color:var(--hit);margin:6px 0;font-size:12.5px;line-height:1.5}.chem b{color:var(--text)}.office-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.office-row .st{color:var(--muted);font-size:12px;display:block}.stepper{align-items:center;gap:10px;display:flex}.stepper b{text-align:center;min-width:28px;color:var(--amber);font-family:Graduate,serif}.stepper button{background:var(--panel-2);cursor:pointer;border:0;border-radius:9px;width:34px;height:34px;font-size:18px}.stepper button:disabled{opacity:.35}.switch{flex:none;width:50px;height:30px;position:relative}.switch input{opacity:0;width:0;height:0}.switch span{background:var(--panel-2);cursor:pointer;border-radius:15px;transition:all .2s;position:absolute;inset:0}.switch span:after{content:"";background:var(--muted);border-radius:50%;width:24px;height:24px;transition:all .2s;position:absolute;top:3px;left:3px}.switch input:checked+span{background:var(--amber)}.switch input:checked+span:after{background:#2a1a00;transform:translate(20px)}.save-roster{gap:8px;margin-top:10px;display:flex}.save-roster .search{margin-top:0}.save-roster button{background:var(--panel-2);cursor:pointer;white-space:nowrap;border:0;border-radius:10px;padding:0 14px;font-weight:700}.save-roster button:disabled{opacity:.45}.roster-btns{grid-area:1/2/span 2;gap:10px;display:flex}.roster-btns button{color:var(--amber);cursor:pointer;background:0 0;border:0;font-weight:700;text-decoration:underline}.roster-btns button.rel{color:var(--k);font-weight:400}
