:root{--blue:#1646c8;--ink:#111a2d;--line:#dce5f4}*{box-sizing:border-box}body{margin:0;background:#f5f8fd;color:var(--ink);font:15px Arial,"PingFang SC","Microsoft YaHei",sans-serif}a{color:var(--blue);text-decoration:none}.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#e6efff,#f8faff 48%)}.login-card{width:min(440px,100%);padding:40px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 28px 80px #173d9120}.back{display:block;margin-bottom:38px;color:#68758a}.logo{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;background:var(--blue);color:white;font-weight:800}.eyebrow{color:var(--blue);font-size:12px;font-weight:700;letter-spacing:.12em}.login-card h1{font-size:34px;margin:8px 0}.muted{color:#68758a}.notice{margin-top:28px;padding:20px;border-radius:14px;background:#edf3ff;color:#3f4e69}.notice p{margin:8px 0 0;line-height:1.7}label{display:grid;gap:8px;margin-top:18px;font-weight:600}input,select{width:100%;padding:13px;border:1px solid var(--line);border-radius:10px;background:white;font:inherit}button,.download{display:inline-block;margin-top:24px;padding:13px 20px;border:0;border-radius:10px;background:var(--blue);color:white;font-weight:700}.error{color:#c33232}.top{height:70px;padding:0 max(24px,calc((100vw - 1120px)/2));display:flex;justify-content:space-between;align-items:center;background:white;border-bottom:1px solid var(--line)}.dashboard{max-width:1120px;margin:auto;padding:56px 24px}.heading{display:flex;justify-content:space-between;align-items:end}.heading h1{font-size:40px;margin:8px 0}.filter{max-width:230px}.summary{margin:28px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px 28px;padding:25px;border:1px solid var(--line);border-radius:16px;background:#fff}.summary span{color:#718097}.summary strong{font-size:26px}.table{overflow:auto;border:1px solid var(--line);border-radius:16px;background:white}table{width:100%;border-collapse:collapse}th,td{padding:17px 20px;border-bottom:1px solid var(--line);text-align:left}th{color:#67758c;font-size:13px}.empty{text-align:center;color:#8b96a8;padding:55px}@media(max-width:600px){.login-card{padding:28px}.top{font-size:13px}.heading{align-items:flex-start;flex-direction:column}.summary{grid-template-columns:1fr}.dashboard{padding-top:35px}}
