:root{--bg:#f7f7f8;--card:#fff;--panel:#eef1f5;--text:#171717;--muted:#667085;--border:#d0d5dd;--accent:#182033;--danger:#b42318;--setter:#e9eef9;--middle:#edf7ef;--outside:#fff4e5;--opp:#f7edf8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.app{max-width:760px;margin:auto;padding:9px 9px 28px}button,select,input{font:inherit}button{touch-action:manipulation}label{font-size:12px;font-weight:800}select,input{width:100%;min-height:44px;border:1px solid var(--border);border-radius:10px;background:#fff;padding:0 9px;font-size:16px}.top{display:grid;grid-template-columns:1fr 96px;gap:7px;align-items:end}.tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;background:var(--panel);padding:4px;border-radius:12px;margin:9px 0}.tab{min-height:44px;border:0;border-radius:9px;background:transparent;font-size:10px;font-weight:900}.tab.on,.btn.primary,.chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.hide{display:none!important}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:11px;margin-bottom:8px}.panel{background:var(--panel);border-radius:14px;padding:11px;margin-bottom:8px}.btn{min-height:44px;border:1px solid var(--border);border-radius:10px;background:#fff;font-weight:850;padding:0 10px}.btn.full{width:100%}.btn.danger{color:var(--danger);border-color:#e9aaa4}.two,.three,.five{display:grid;gap:5px}.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,1fr)}.five{grid-template-columns:repeat(5,1fr)}.hint{font-size:11px;color:var(--muted)}h2{font-size:18px;margin:0 0 4px}h3{font-size:18px;margin:2px 0}.gamehead,.boxhead,.rallymeta,.rotHead{display:flex;justify-content:space-between;align-items:center;gap:7px}.livepill{font-size:9px;font-weight:900}.scoreboard{display:grid;grid-template-columns:1fr 76px 1fr;gap:6px;align-items:center}.score{text-align:center}.score b{display:block;font-size:42px;line-height:1;margin:5px 0 7px}.serve{text-align:center}.serve small,.serve strong{display:block}.serve .btn{width:100%;padding:0 2px;font-size:10px;margin-top:4px}.rallymeta strong,.rallymeta span{display:block}.rallymeta small{font-size:9px;color:var(--muted)}.boxhead span{display:block;font-size:10px;color:var(--muted)}.chips{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:7px 0}.chip{min-height:40px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:10px;font-weight:850;padding:0 3px}.five .btn{font-size:9px;padding:0 2px}.rallybuttons .btn{min-height:58px;font-size:12px}.sub{background:#fff7db;border:1px solid #e2c85b;border-radius:12px;padding:10px;margin-bottom:8px}.net{text-align:center;font-size:10px;font-weight:900}.court{position:relative;height:300px;border:2px solid var(--border);border-radius:12px;background:var(--panel);overflow:hidden}.court.mini{height:215px}.court:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--border)}.court:after{content:"";position:absolute;top:0;bottom:0;left:33.33%;width:33.33%;border-left:1px dashed var(--border);border-right:1px dashed var(--border);opacity:.5}.player{position:absolute;width:66px;min-height:49px;transform:translate(-50%,-50%);border:2px solid var(--border);border-radius:12px;text-align:center;padding:4px;background:#fff}.player.S{background:var(--setter)}.player.M{background:var(--middle)}.player.OH{background:var(--outside)}.player.OPP{background:var(--opp)}.player b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player small{font-size:8px;color:var(--muted)}details{background:#fff;border:1px solid var(--border);border-radius:12px;padding:9px;margin-bottom:8px}summary{font-weight:850}.playrow{display:grid;grid-template-columns:66px 1fr auto;gap:6px;align-items:center;font-size:10px;margin-top:5px}.bar{height:7px;border-radius:99px;background:var(--panel);overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}.actions{display:flex;gap:6px;flex-wrap:wrap}.rotHead{text-align:center}.rotHead small,.rotHead span{font-size:10px;color:var(--muted)}.setCard{background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px;margin-bottom:8px}.benchBox{background:var(--panel);border-radius:10px;padding:7px}.statgrid{display:grid;grid-template-columns:minmax(64px,1fr) repeat(5,40px);border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}.sh,.sn,.sv{min-height:40px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center}.sh{min-height:31px;font-size:8px;font-weight:900}.sn{justify-content:flex-start;padding-left:5px;font-size:9px;font-weight:850}.sv{border-left:1px solid var(--border);font-size:11px;font-weight:900}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:8px 0}.sum{text-align:center;background:var(--panel);border-radius:10px;padding:7px}.sum b{font-size:21px}.pills{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.pill{background:var(--panel);border-radius:99px;padding:3px 7px;font-size:9px}.filters{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:7px}.filters .btn{font-size:10px}@media(max-width:390px){.app{padding-left:6px;padding-right:6px}.scoreboard{grid-template-columns:1fr 70px 1fr}.five .btn{font-size:8px}.player{width:58px}.court{height:278px}.court.mini{height:200px}.statgrid{grid-template-columns:minmax(56px,1fr) repeat(5,38px)}}

.brand{display:flex;align-items:center;justify-content:center;gap:7px;padding:2px 0 7px;line-height:1}
.brandBall{font-size:25px;filter:saturate(.85)}
.brandWords{display:flex;align-items:baseline;gap:7px}
.crush{color:#7b2cbf;font-family:"Marker Felt","Bradley Hand","Comic Sans MS",cursive;font-size:31px;font-weight:900;font-style:italic;letter-spacing:-1.2px;transform:rotate(-2deg);display:inline-block;text-shadow:0 1px 0 rgba(123,44,191,.12)}
.volleyball{font-size:15px;text-transform:uppercase;letter-spacing:2.2px;font-weight:900;color:var(--text)}
.backupCard{margin-top:8px}
.backupBtns{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:7px}
.backupBtns .btn{font-size:10px;padding:0 5px}
.backupStatus{font-size:10px;color:var(--muted);margin-top:7px;line-height:1.35}
.backupWarn{background:#fff7db;border:1px solid #e2c85b;border-radius:12px;padding:10px;margin:8px 0;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.backupWarn strong,.backupWarn span{display:block}
.backupWarn span{font-size:10px;color:var(--muted);margin-top:2px}
.backupWarn .btn{font-size:10px;padding:0 8px}
@media(max-width:390px){
  .brand{padding-bottom:5px}.brandBall{font-size:22px}.crush{font-size:28px}.volleyball{font-size:13px;letter-spacing:1.7px}
  .backupBtns{grid-template-columns:1fr}.backupWarn{grid-template-columns:1fr}.backupWarn .btn{width:100%}
}
