*{box-sizing:border-box}body{color:#24283c;background:#f5f6fa;margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}a{color:inherit}.app-layout{min-height:100vh}.sidebar{border-right:1px solid #eeedf4;height:100vh;top:0;overflow:hidden;position:sticky!important}.brand{white-space:nowrap;align-items:center;gap:12px;height:96px;padding:0 24px;font-size:19px;font-weight:750;display:flex}.brand small{color:#a1a6b6;letter-spacing:1.2px;margin-top:4px;font-size:11px;font-weight:500;display:block}.brand-icon{color:#fff;background:#7650df;border-radius:14px;flex-shrink:0;place-items:center;width:43px;height:43px;font-size:24px;display:inline-grid}.menu-caption{color:#b0b5c3;letter-spacing:2px;padding:24px 28px 12px;font-size:11px}.sidebar .ant-menu{padding:0 12px;border-inline-end:0!important}.sidebar .ant-menu-item{height:46px;line-height:46px;margin-bottom:9px!important}.sidebar-note{color:#a5aaba;white-space:nowrap;font-size:12px;line-height:1.9;position:absolute;bottom:28px;left:28px}.sidebar-note span{color:#bec2ce;font-size:11px}.app-header{background:#fff;border-bottom:1px solid #eeedf4;justify-content:space-between;align-items:center;gap:10px;height:72px;padding:0 32px;line-height:normal;display:flex}.header-title{font-size:15px;font-weight:600}.admin-name{color:#8a90a1;font-size:13px}.read-only-tag{color:#967ac7;background:#f3effb;border:0;font-size:11px}.page-content{background:#f5f6fa;min-width:0;padding:30px 32px 48px}.page{max-width:1440px;margin:auto}.page-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px;display:flex}.page-heading h1{letter-spacing:-.4px;margin:0 0 8px;font-size:25px;font-weight:750}.page-heading p{color:#8b91a2;margin:0;font-size:13px;line-height:1.7}.scope-controls{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.scope-controls .environment-select{width:156px}.coverage-note{background:#f1eef9;border-color:#e8e4f5;margin-bottom:20px}.coverage-note .ant-alert-title{font-size:12px}.coverage-note .ant-alert-description{color:#8a83a2;font-size:11px}.request-error{margin-bottom:18px}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card .ant-card-body{align-items:center;gap:16px;padding:22px;display:flex}.stat-icon{color:#8c65d9;background:#f0eafa;border-radius:16px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:23px;display:grid}.stat-icon-1,.stat-icon-5{color:#55ac93;background:#e9f6f1}.stat-icon-2,.stat-icon-4{color:#d4a24e;background:#fff4e6}.stat-icon-3{color:#7094d9;background:#ebf0fc}.stat-label{color:#9096a6;margin-bottom:7px;font-size:12px;display:block}.stat-content .ant-statistic-content{color:#303448;font-size:26px;font-weight:650;line-height:1.2}.section-card{margin-bottom:22px;box-shadow:0 3px 18px #30385f03}.section-card .ant-card-head{border-bottom:1px solid #f0f1f5;min-height:65px;font-size:15px}.section-card .ant-card-body{padding:22px}.trend-chart{width:100%;height:290px}.muted{color:#969cab}.small{font-size:12px}.game-name{font-weight:600;display:block}.game-name small{color:#b0a6bf;margin-top:4px;font-size:10px;font-weight:400;display:block}.battle-breakdown{grid-template-columns:1fr 1fr;gap:16px;margin-top:22px;display:grid}.battle-breakdown>div{background:#f8f7fc;border-radius:12px;align-items:center;gap:18px;padding:14px 18px;font-size:12px;display:flex}.battle-breakdown strong{color:#7650df;font-size:19px}.battle-breakdown small{font-size:11px;font-weight:400}.table-filters{grid-template-columns:minmax(170px,1.4fr) minmax(110px,1fr) repeat(3,minmax(100px,.8fr)) auto;gap:12px;margin-bottom:22px;display:grid}.table-filters .ant-select{width:100%}.player{align-items:center;gap:10px;display:flex}.player-avatar{color:#9877cf;background:#f0eafa;flex-shrink:0;font-size:14px}.player strong{font-size:12px;font-weight:550;display:block}.player-id{margin-top:4px;font-size:10px;display:block!important}.score-duration{color:#7650df;font-weight:650}.rank-badge{color:#9a9faf;align-items:center;gap:5px;font-size:13px;font-weight:700;display:inline-flex}.rank-1{color:#c9983c}.rank-2{color:#8999b9}.rank-3{color:#c3937e}.ranking-filters{justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px;display:flex}.ranking-filters .ant-input-search{max-width:280px}.detail-player{margin-bottom:14px}.detail-heading{margin:26px 0 15px;font-size:15px}.detail-player .ant-card-head{min-height:64px}.drawer-loading{place-items:center;min-height:200px;display:grid}.ant-drawer-content-wrapper{max-width:100vw}.full-loading{place-items:center;min-height:100vh;padding:24px;display:grid}.login-page{grid-template-columns:1fr 420px;align-items:center;gap:100px;max-width:1100px;min-height:100vh;margin:auto;padding:60px 40px;display:grid}.login-intro>.brand-icon{text-align:center;margin-bottom:26px;line-height:43px;display:block}.login-intro h1{letter-spacing:-1px;color:#38314f;margin:22px 0;font-size:42px;line-height:1.5}.login-intro p{color:#9b95aa;font-size:15px;line-height:1.9}.login-card{box-shadow:0 18px 80px #68548b0c;border-radius:22px!important}.login-card .ant-card-body{padding:34px}.login-card .ant-form{margin-top:28px}.login-note{color:#b3aabd;text-align:center;margin:22px 0 0;font-size:11px}.login-dots{gap:12px;margin-top:40px;display:flex}.login-dots span{background:#d0bfeb;border-radius:5px;width:12px;height:12px}.login-dots span:nth-child(2){background:#e5cb94}.login-dots span:nth-child(3){background:#a9d8cd}.login-dots span:nth-child(4){background:#bdcdee}.menu-toggle{display:none}@media (width>=1450px){.stats-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.stat-card .ant-card-body{flex-direction:column;align-items:flex-start;gap:16px}}@media (width<=1100px){.table-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.battle-breakdown>div{flex-wrap:wrap;gap:10px}}@media (width<=991px){.sidebar{z-index:20;box-shadow:12px 0 50px #30244c14;position:fixed!important}.app-header{height:64px;padding:0 18px}.menu-toggle{display:inline-flex}.page-content{padding:24px 18px}.login-page{grid-template-columns:1fr 380px;gap:40px;padding:40px 24px}.login-intro h1{font-size:34px}}@media (width<=700px){.login-page{max-width:430px;padding:40px 20px;display:block}.login-intro{margin-bottom:26px}.login-intro h1{margin:12px 0;font-size:27px;line-height:1.4}.login-intro h1 br,.login-intro p,.login-dots{display:none}.login-intro>.brand-icon{float:left;margin:0 15px 0 0}.login-card .ant-card-body{padding:26px}.page-heading{margin-bottom:18px}.page-heading h1{font-size:22px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat-card .ant-card-body{gap:10px;padding:16px}.stat-icon{border-radius:11px;width:34px;height:34px;font-size:17px}.stat-content .ant-statistic-content{font-size:22px}.stat-label{font-size:11px}.scope-controls{align-items:flex-start}.scope-controls>.ant-space{flex:1;min-width:0}.section-card .ant-card-body{padding:16px}.ranking-filters{flex-direction:column;align-items:flex-start;gap:14px}.ranking-filters .ant-input-search{max-width:none}.battle-breakdown{grid-template-columns:1fr}.table-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.trend-chart{height:260px}.admin-name{display:none}.scope-controls .ant-picker{max-width:100%}.coverage-note .ant-alert-description{line-height:1.8}}@media (width<=380px){.page-content{padding:20px 12px}.app-header{padding:0 12px}.page-heading>.ant-tag,.read-only-tag{display:none}.stat-card .ant-card-body{gap:8px;padding:13px}.stat-icon{width:29px;height:29px;font-size:16px}.stat-content .ant-statistic-content{font-size:20px}.ant-card-head{padding:0 16px!important}.scope-controls .ant-picker{width:218px}.scope-controls{gap:8px}.header-title{font-size:13px}}.sidebar-mask{display:none}@media (width<=991px){.sidebar-mask{z-index:19;background:#29213738;border:0;display:block;position:fixed;inset:0}}@media (width<=700px){.scope-controls{grid-template-columns:minmax(0,1fr) auto;display:grid}.scope-controls>.ant-space{display:contents}.scope-controls .ant-space-item{min-width:0}.scope-controls .ant-space-item:has(.ant-picker){grid-column:1/-1}.scope-controls .ant-picker{width:100%;max-width:100%}.scope-controls .environment-select{width:100%}}
