:root{font:15px/1.6 system-ui,"Microsoft YaHei",sans-serif;color:#203248;background:#f2f5f9}*{box-sizing:border-box}body{margin:0}header{background:#15283f;color:white;display:flex;align-items:center;gap:20px;padding:24px max(24px,calc((100vw - 1150px)/2))}header div{flex:1}small{letter-spacing:.15em;color:#b7c9e0}h1{font-size:24px;margin:4px 0}h2{margin:0 0 20px;font-size:20px}main{max-width:1150px;margin:28px auto;padding:0 20px}section{background:white;border:1px solid #dce3ec;border-radius:12px;padding:26px;margin:20px 0}nav,.actions{display:flex;gap:12px;flex-wrap:wrap}form{display:flex;align-items:end;gap:14px;flex-wrap:wrap}label{display:flex;flex-direction:column;gap:6px;min-width:210px}input{font:inherit;padding:10px 12px;border:1px solid #b7c4d5;border-radius:6px}button{font:inherit;background:#2964a0;color:#fff;border:0;border-radius:6px;padding:11px 20px;cursor:pointer}button:disabled{opacity:.45;cursor:default}button:hover:enabled{background:#164d85}pre{background:#f6f8fb;padding:18px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:440px;overflow:auto;border-radius:8px}p{color:#65758b}.actions{margin-top:18px}output{white-space:pre-wrap}[hidden]{display:none!important}
:root .table-wrap{overflow:auto;margin:20px 0}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid #dce3ec;padding:10px;text-align:left}td:first-child{font-family:monospace}td button{padding:6px 12px;white-space:nowrap}
:root select{font:inherit;padding:10px 12px;border:1px solid #b7c4d5;border-radius:6px;background:white}details{margin-top:20px}summary{cursor:pointer;margin-bottom:12px}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.stat-card{padding:14px 16px;border-radius:8px;background:#f3f7fc;border:1px solid #e0e8f3}.stat-card span{display:block;font-size:13px;color:#65758b}.stat-card strong{font-size:25px;color:#183e6c}.stat-chart{display:flex;gap:8px;height:165px;min-width:450px}.stat-day{flex:1;text-align:center;min-width:30px}.stat-bars{display:flex;align-items:end;justify-content:center;gap:3px;height:140px;border-bottom:1px solid #dce3ec}.stat-bars span{width:30%;min-height:1px;border-radius:3px 3px 0 0}.stat-bars .activePlayers{background:#3675bd}.stat-bars .newPlayers{background:#36a185}.stat-day small{letter-spacing:0;color:#65758b;font-size:10px}#stat-trend{overflow:auto}th{white-space:nowrap}#report-note{background:#f7f9fc;padding:12px;border-radius:6px}
