*{box-sizing:border-box}
html,body{height:100%}
body.page{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,'Noto Sans SC','PingFang SC','Microsoft Yahei',sans-serif;background:linear-gradient(180deg,#e8f1ff 0%,#f6f8ff 60%,#ffffff 100%)}
.hero{text-align:center;padding:40px 20px}
.hero h1{margin:0;font-size:28px;color:#0c1a33}
.hero p{margin:8px 0 0;color:#5f6b7a}
.card{max-width:820px;margin:0 auto 28px;background:#fff;border-radius:16px;box-shadow:0 8px 30px rgba(17,38,74,.08);padding:16px;border:1px solid rgba(31,122,236,.08)}
.result-card{margin-top:0}
.section{border:1px solid #eef2f7;border-radius:12px;padding:16px;margin:14px 0}
.section-title{font-size:16px;font-weight:600;color:#22304a;margin-bottom:8px}
.dropzone{border:2px dashed #d6e3ff;border-radius:12px;padding:16px;background:#f7fbff}
.dz-content{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dz-text{color:#3c4b63}
.form-row{display:flex;gap:12px}
.form-grid{display:grid;grid-template-columns:160px 1fr;gap:12px;align-items:center}
input[type=file],input[type=number]{width:100%;padding:10px;border:1px solid #d9dee7;border-radius:10px;background:#fff}
.tip{font-size:12px;color:#7a8699;margin-top:8px}
.actions{display:flex;justify-content:flex-end;margin-top:16px}
.btn{display:inline-block;padding:10px 16px;border:none;border-radius:10px;cursor:pointer;transition:.2s;background:#e6eef7;color:#0c1a33;text-decoration:none}
.btn.primary{background:#1f7aec;color:#fff}
.btn.success{background:#2ecc71;color:#fff}
.btn:disabled{opacity:.6;cursor:not-allowed}
.log{max-width:820px;margin:0 auto 30px;border:1px solid #eef2f7;border-radius:12px;min-height:120px;padding:12px;white-space:pre-line;background:#fafafa;color:#2a3a4f}
.footer{margin-top:10px}
.footer-bottom{max-width:820px;margin:0 auto 30px;text-align:center;color:#7a8699;font-size:12px}
.footer-bottom a{color:#1f7aec;text-decoration:none}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.stat{border:1px solid #eef2f7;border-radius:10px;padding:10px;background:#fbfdff}
.stat-label{font-size:12px;color:#7a8699}
.stat-value{font-size:14px;color:#2a3a4f;margin-top:4px}
.table-wrap{overflow-x:auto;border:1px solid #eef2f7;border-radius:10px}
table{width:100%;border-collapse:collapse}
thead th{background:#f5f9ff;color:#22304a;font-weight:600}
th,td{padding:10px;border-bottom:1px solid #eef2f7;text-align:left}
tbody tr:nth-child(even){background:#fcfdff}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}.dz-content{flex-direction:column;align-items:flex-start}.actions{justify-content:center}}