*{box-sizing:border-box}body{margin:0;color:#20324b;background:#f4f6fa;font:14px system-ui,'Microsoft YaHei',sans-serif}a{color:inherit;text-decoration:none}button,.button{cursor:pointer;display:inline-block;padding:10px 16px;border:1px solid #d9e1ec;border-radius:8px;background:white;color:#29415f;font:inherit}button:hover,.button:hover{filter:brightness(.97)}.primary{background:#1769ed;color:white;border-color:#1769ed}.hidden{display:none!important}aside{width:238px;background:#112944;color:#a8bbd3;position:fixed;inset:0 auto 0 0;padding:32px 22px}.brand{color:white;font-size:38px;font-weight:800;letter-spacing:2px}.brand span{display:block;font-size:11px;letter-spacing:2px;margin-top:6px}aside p{font-size:12px;margin:20px 0 35px}nav a{display:block;padding:14px 12px;border-radius:8px;margin:7px 0}nav a.active{background:#22476f;color:white}aside footer{position:absolute;bottom:28px;font-size:12px;line-height:2}aside footer a{color:#7eb2ff}main{margin-left:238px;padding:25px 36px;max-width:1700px}header{display:flex;justify-content:space-between;align-items:center;padding-bottom:22px;border-bottom:1px solid #dfe6ee;font-size:12px;color:#718399}header button{margin-left:15px}.heading{display:flex;align-items:center;justify-content:space-between;margin:32px 0 25px}.eyebrow{color:#7488a2;font-size:10px;letter-spacing:2px}h1{font-size:28px;margin:9px 0}p{color:#788aa0;line-height:1.8}.panel{background:white;border:1px solid #e1e7f0;border-radius:12px;padding:24px;margin-bottom:20px;overflow:auto}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stat strong{display:block;font-size:35px;margin:14px 0}.stat small{color:#91a0b2}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.row input{flex:1;min-width:160px}input,select,textarea{font:inherit;padding:10px;border:1px solid #d4dfea;border-radius:7px;background:white;color:#283c56;max-width:100%}label{display:block;color:#63768e;font-size:13px}label input,label select,label textarea{display:block;width:100%;margin:8px 0 18px}textarea{min-height:95px;resize:vertical}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.wide{grid-column:1/-1}table{width:100%;border-collapse:collapse;white-space:nowrap}td,th{text-align:left;padding:15px 10px;border-bottom:1px solid #eaf0f5}th{font-weight:500;font-size:12px;color:#8496aa;background:#f7f9fc}td small{display:block;color:#8698ad;margin-top:5px}.badge{background:#edf3fa;padding:5px 9px;border-radius:6px;font-size:12px}.badge.warn{color:#b56922;background:#fff1df}.empty{text-align:center;padding:45px;color:#8999ac}.notice{background:#edf4ff;color:#557496;padding:15px;border-radius:8px;line-height:1.9;margin:15px 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.groupnum{font-size:35px;margin:12px 0}.groupnum small{font-size:13px;color:#96a3b5}.auth{min-height:100vh;display:grid;place-items:center;background:#112944}.auth form{width:min(460px,92vw);padding:35px}.auth button{width:100%;margin-bottom:15px}.auth small{color:#8a98a8}.auth p[role=alert]{color:#bb442d}.toast{position:fixed;right:25px;bottom:25px;background:#163956;color:white;padding:17px 25px;border-radius:10px;z-index:10;max-width:90vw}.error{color:#b94c31}.check{width:auto!important;display:inline!important;margin:0!important}.bar{background:#eaf1fa;height:7px;border-radius:5px;overflow:hidden}.bar div{background:#2d7bee;height:100%}dialog{border:0;border-radius:10px}h3{margin-top:0}code{font-size:12px}@media(max-width:850px){aside{position:static;width:100%;padding:20px}aside footer,aside p{display:none}nav{display:flex;overflow:auto}nav a{white-space:nowrap}.brand{font-size:23px}main{margin:0;padding:20px}.stats{grid-template-columns:1fr 1fr}.grid,.formgrid{grid-template-columns:1fr}.heading{gap:15px}header{gap:15px}h1{font-size:23px}}
progress{width:100%;height:8px;border:0;accent-color:#2d7bee}
aside{overflow-y:auto}aside footer{position:static;margin-top:28px}nav a{padding:10px 12px;margin:4px 0}.preview{white-space:pre-wrap;overflow-wrap:anywhere}
