*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:#f5f6f8;-webkit-font-smoothing:antialiased}.login-bg{height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 10% -10%,rgba(37,99,235,.18),transparent 60%),radial-gradient(900px 500px at 110% 110%,rgba(22,163,74,.14),transparent 55%),#f7f8fa;padding:24px}.login-card{width:100%;max-width:380px;background:#fff;border-radius:16px;padding:36px 32px 28px;box-shadow:0 12px 40px #0f172a1a}.login-logo{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#2563eb,#1e40af);display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:700;margin-bottom:18px}.login-title{font-size:22px;font-weight:700;color:#0f172a;margin:0 0 4px}.login-sub{font-size:13px;color:#8a909c;margin:0 0 26px}.stu-card{cursor:pointer;border:1px solid #e8eaef;border-radius:10px;padding:14px 6px;text-align:center;font-size:14px;background:#fff;transition:all .15s;-webkit-user-select:none;user-select:none}.stu-card:hover{border-color:#2563eb;color:#2563eb;box-shadow:0 4px 14px #2563eb1f;transform:translateY(-1px)}.stu-card:active{transform:scale(.97)}.pub-wrap{min-height:100vh;background:#0d1117;color:#e6edf3;padding-bottom:40px}.pub-head{max-width:780px;margin:0 auto;padding:28px 20px 14px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.pub-title{font-size:22px;font-weight:700;letter-spacing:.5px}.pub-title em{font-style:normal;color:#4f8cff;margin-left:6px}.pub-meta{font-size:12px;color:#8b949e}.pub-body{max-width:780px;margin:0 auto;padding:0 16px}.pub-row{display:flex;align-items:center;gap:16px;background:#161b22;border:1px solid #21262d;border-radius:12px;padding:14px 18px;margin-bottom:8px}.pub-rank{width:36px;text-align:center;font-weight:700;font-size:16px;color:#8b949e;font-variant-numeric:tabular-nums}.pub-name{flex:1;font-size:16px;font-weight:500}.pub-score{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums}.pub-row.r1{border-color:#f5c45180;background:linear-gradient(90deg,#f5c4511a,#161b22 55%)}.pub-row.r1 .pub-rank,.pub-row.r1 .pub-score{color:#f5c451}.pub-row.r2 .pub-rank,.pub-row.r3 .pub-rank{color:#c9d1dc}.pub-foot{text-align:center;font-size:11px;color:#6e7681;margin-top:24px}
