.match-hud{position:absolute;inset:0 0 auto;display:grid;gap:5px;padding:calc(env(safe-area-inset-top) + 8px) 12px 20px;background:linear-gradient(#102b35ef,#102b3570,transparent);font:11px monospace;pointer-events:none}.match-hud>div{display:flex;justify-content:space-between;align-items:center;pointer-events:auto}.match-hud strong{font-size:17px}.match-hud span{line-height:1.35}.feedback{top:25%;bottom:auto}.feedback strong{font-size:18px}.feedback span{font-size:11px}.pitch-controls{bottom:max(12px,env(safe-area-inset-bottom))}#match-menu select{font-size:16px}#match-menu button{margin:8px 0}#match-final{max-height:90dvh;overflow:auto}#line-score{width:100%;font:12px monospace;border-collapse:collapse}#line-score td,#line-score th{padding:8px;border-bottom:1px solid #55706d}dialog{touch-action:pan-y;user-select:text;-webkit-user-select:text}#match-final a{display:block;padding:16px;color:#c7e88c}@media(orientation:landscape){.match-hud{width:48%;font-size:9px}.match-hud strong{font-size:14px}.feedback{left:50%;right:6%;top:15%;width:auto}.feedback strong{font-size:14px}#accuracy{right:30%}.pitch-controls #arsenal{max-width:200px}.pitch-controls #instruction{max-width:200px;margin-left:auto;font-size:9px}}
#sync-state{font-size:9px;color:#d2e9b7}#sync-retry,#sync-reload{font-size:10px;min-height:36px;padding:6px 8px;pointer-events:auto}#player-stats p{font:11px/1.7 monospace;border-bottom:1px solid #45645b;padding-bottom:10px}#final-bp{color:#cae6a0;font-weight:bold}#postgame-objectives{font-size:11px;line-height:1.7}

.club-game-badge{position:absolute;right:12px;top:60px;filter:drop-shadow(0 2px 2px #0008)}#aim-control{border-color:var(--club-secondary,#e0e4a0)}

.feedback [data-contact="red"]{color:#ff777b}.feedback [data-contact="green"]{color:#78e59b}.feedback [data-contact="blue"]{color:#70c5ff}.feedback[data-timing="red"] #match-timing{color:#ff777b}.feedback[data-timing="yellow"] #match-timing{color:#ffda64}.feedback[data-timing="gray"] #match-timing{color:#c2c7ce}.feedback[data-timing="green"] #match-timing{color:#78e59b}.feedback[data-timing="blue"] #match-timing{color:#70c5ff}#match-contact{font-weight:bold;font-size:15px}#match-detail{color:#e9eedf}

.match-hud{background:none;gap:2px;z-index:4;padding-bottom:0}.match-hud>strong,.match-hud>#match-count,.match-hud>#match-players,.match-hud>#match-energy,.club-game-badge{display:none}.match-hud>div:first-child{justify-content:flex-end}.match-hud>div:first-child>a{margin-right:auto;font-size:9px}#sync-state{position:absolute;top:calc(env(safe-area-inset-top) + 155px);left:12px;font-size:8px;opacity:.8}.scoreboard{position:absolute;top:calc(env(safe-area-inset-top) + 45px);left:12px;width:min(65vw,300px);display:grid;grid-template-columns:30px 1fr;background:#102d32ed;border:1px solid #819c78;box-shadow:4px 4px #091c2580;font:11px monospace;color:#eef4d8;pointer-events:none}.scoreboard-inning{grid-row:1/3;display:grid;place-items:center;background:#c4d79d;color:#142f31;font-weight:bold}.score-team{display:grid;grid-template-columns:1fr 22px;padding:5px 8px;gap:2px;border-bottom:1px solid #66827644}.score-team b{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:11px}.score-team strong{grid-row:1/3;grid-column:2;align-self:center;font-size:21px}.score-team small{font-size:9px;color:#bfceb9}.scoreboard-count{grid-column:1/-1;padding:5px;text-align:center;letter-spacing:2px}.pitcher-energy{position:absolute;top:calc(env(safe-area-inset-top) + 175px);left:12px;display:flex;align-items:center;gap:8px;font:8px monospace;color:#d8e6cd}.pitcher-energy meter{appearance:none;width:95px;height:6px;background:#213c3e;border:0;border-radius:2px}.pitcher-energy meter::-webkit-meter-bar{background:#213c3e;border:0;height:6px}.pitcher-energy[data-color=green] meter::-webkit-meter-optimum-value{background:#91d898}.pitcher-energy[data-color=yellow] meter::-webkit-meter-optimum-value{background:#f0cb69}.pitcher-energy[data-color=red] meter::-webkit-meter-optimum-value{background:#fa7874}.base-hud{position:absolute;right:12px;top:calc(env(safe-area-inset-top) + 56px);width:94px;height:100px}.base-path{position:absolute;inset:22px 22px 26px;transform:rotate(45deg);border:1px solid #d8e3b88c}.base-runner{position:absolute;padding:3px 2px!important;min-height:30px!important;width:48px;border:1px solid #c3d89a!important;background:#12353cf2!important;color:#eef3cd!important;display:grid;font:9px monospace;gap:3px}.base-runner:disabled{opacity:1}.base-0{right:-5px;top:36px}.base-1{left:23px;top:0}.base-2{left:-5px;top:36px}.base-runner span{font-size:8px}.base-runner:not(:disabled){box-shadow:0 0 0 2px #b5db9944}.feedback{top:28%;pointer-events:none}.feedback strong:empty{display:none}#match-menu{background:linear-gradient(150deg,#294747,#102831);border:2px solid #8ba87b;border-radius:8px;box-shadow:8px 8px #081f27;color:#e6eed4;padding:22px;max-width:560px;max-height:88dvh;overflow:auto}#match-menu::backdrop{background:#051821bd;backdrop-filter:blur(5px)}#match-menu h1{font-size:23px;text-transform:uppercase;letter-spacing:2px}#match-menu p{font:12px/1.6 Arial;color:#b9cebb}#match-menu label{display:block;font:10px monospace;text-transform:uppercase;letter-spacing:1px;margin:14px 0 6px}#match-menu select{width:100%;border:1px solid #718e74;background:#17333b;color:#edf1db;padding:10px;border-radius:4px}#match-menu button{background:#c9dd9e;color:#173235;border:0;border-bottom:3px solid #849b6e;border-radius:4px;padding:12px;font:bold 12px Arial;min-height:44px}#match-menu #forfeit-game{background:#694039;color:#f1d2bd;border-color:#402c2d}#match-menu a{display:inline-block;padding:14px;color:#d2e6a3}#match-menu #match-resume{background:#e9cc84}.pitcher-energy[hidden],.base-hud[hidden],.base-runner[hidden]{display:none}@media(orientation:landscape){.scoreboard{top:38px;width:235px}.pitcher-energy{top:165px}.base-hud{top:50px}.feedback{top:12%}#sync-state{top:145px}}

#advance-choice{position:fixed;top:auto;bottom:20px;max-width:380px;width:calc(100% - 56px);background:#163740ee;color:#edf2d9;border:2px solid #bed395;border-radius:7px;padding:16px}#advance-choice::backdrop{background:#071e281c}#advance-choice h2{margin:0;font:20px monospace}#advance-choice p{font:12px/1.5 Arial}#advance-choice progress{width:100%;height:5px;accent-color:#bedd96}#advance-choice>div{display:flex;gap:10px;margin-top:14px}#advance-choice button{flex:1;padding:12px;background:#cbdca5;color:#19363b;border:0;border-bottom:3px solid #708b63;border-radius:4px;font-weight:bold}

#advance-choice::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}.base-hud:after{content:"TAP TO STEAL";position:absolute;bottom:0;left:8px;font:7px monospace;color:#eef2d0;letter-spacing:.3px}

#match-final{width:min(620px,calc(100% - 24px));max-width:620px;max-height:92dvh;padding:28px 20px;background:radial-gradient(ellipse at top,#365c4b,#102a34 65%);border:1px solid #bdd89e;border-radius:16px;color:#edf0d9;text-align:center;overflow-x:hidden;box-sizing:border-box;font-family:Arial,sans-serif;isolation:isolate}#match-final::backdrop{background:#041621da;backdrop-filter:blur(7px)}#match-final[data-result=loss]{background:radial-gradient(ellipse at top,#454457,#122936 65%);border-color:#8c9cae}.result-stage{height:84px;position:relative;overflow:hidden}.result-emblem{display:inline-grid;place-items:center;width:76px;height:76px;border:2px solid #ebcf88;transform:rotate(-8deg);color:#edcd7f;font:48px Georgia;box-shadow:5px 5px #092731;animation:result-pop .65s cubic-bezier(.2,.8,.3,1.3) both}.result-kicker{font:10px monospace;letter-spacing:3px;color:#cedbb6;margin:20px 0 8px}#final-title{font:900 italic clamp(30px,7vw,52px)/1.1 Arial;letter-spacing:-1px;color:#e5d18d;margin:8px 0;animation:result-pop .65s .1s both}#match-final[data-result=loss] #final-title{color:#ccd5e2;animation:result-loss .7s both}#final-score{font:bold 18px/1.6 monospace;overflow-wrap:anywhere}.postgame-star{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:end;gap:16px;text-align:left;background:linear-gradient(115deg,#54785966,#142d36);border:1px solid #799778;border-radius:10px;overflow:hidden;margin:24px 0}.postgame-star>img{width:110px;height:170px;object-fit:contain;object-position:bottom;background:radial-gradient(ellipse,#b3cc8760,transparent 70%)}.postgame-star>div{padding:18px 12px 18px 0;min-width:0}.postgame-star h2{font:bold 22px/1.2 Arial;margin:8px 0}.postgame-star small{font:9px monospace;letter-spacing:1px;color:#dfce96}.postgame-star span{font:11px Arial;color:#b7cdbd}.star-numbers{display:flex;gap:18px;margin-top:18px}.star-numbers div{display:grid;gap:4px}.star-numbers b{font:24px monospace}.reward-banner{padding:18px;border:1px solid #b0cc83;border-radius:8px;background:#8faf6230;font:900 25px Arial;color:#def0b0;animation:result-pop .6s .3s both}.reward-banner small{display:block;font:11px/1.5 monospace;margin-top:8px;color:#c0d2ad}.postgame-details{text-align:left;border-top:1px solid #5b7966;margin-top:24px}.postgame-details>summary{padding:18px 0;cursor:pointer;font:13px Arial}.score-scroll{overflow:auto}#line-score{white-space:nowrap}.stat-row{padding:12px 0;border-bottom:1px solid #54726555;display:grid;gap:5px}.stat-row strong{font:13px Arial}.stat-row span{font:11px/1.5 monospace;color:#bbd0c2}#player-stats h2{font:18px Arial;margin:22px 0 4px}.postgame-actions{display:flex;gap:10px;justify-content:center}#match-final .postgame-actions a{background:#d8e7ab;color:#15343a;border-radius:6px;flex:1;font-weight:bold}#postgame-objectives{color:#b5cab8;font:11px/1.7 Arial}.result-stage i{position:absolute;left:calc(var(--i)*5.5%);top:-12px;width:5px;height:10px;background:#d8c581;animation:result-confetti 1.8s calc(var(--i)*.035s) both}.result-stage i:nth-child(2n){background:#9dcaaf}#match-final[data-result=loss] .result-stage i{display:none}#match-final[data-result=loss] .result-emblem{color:#adb9cf;border-color:#8799b4;animation:result-loss .7s both}@keyframes result-pop{from{opacity:0;transform:translateY(18px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes result-loss{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes result-confetti{from{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(120px) rotate(250deg);opacity:0}}@media(prefers-reduced-motion:reduce){#match-final *,#match-final[data-result=loss] #final-title{animation:none!important}.result-stage i{display:none}}
