:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#17252b;background:#f4f7f6;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header{height:76px;background:#fff;border-bottom:1px solid #dfe7e4;display:flex;justify-content:space-between;align-items:center;padding:0 5vw}header>div{display:flex;align-items:center;gap:14px}.mark{background:#195e50;color:#fff;border-radius:10px;padding:8px 12px;font-weight:800}.tag{font-size:12px;color:#52736a;background:#edf5f1;padding:5px 9px;border-radius:20px}main{max-width:1160px;margin:auto;padding:40px 24px}.intro{padding:12px 0 20px}.eyebrow{font-size:11px;letter-spacing:2px;color:#337563;font-weight:700}h1{font-size:clamp(26px,4vw,38px);letter-spacing:-1px;margin:12px 0 14px}h2{font-size:18px;margin:0}.muted{color:#6a7b78;font-size:14px;line-height:1.7}.stats{display:flex;gap:14px 28px;flex-wrap:wrap;padding:17px 0 24px;font-size:13px;color:#556c63}.stats span:first-child{font-weight:650}.panel{background:#fff;border:1px solid #dfe7e4;border-radius:15px;padding:26px;box-shadow:0 2px 5px #18342803}.section-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:20px}.drop{border:1.5px dashed #a7c1b7;background:#f9fcfa;border-radius:10px;min-height:155px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;cursor:pointer;padding:20px;text-align:center}.upload-icon{color:#317962;font-size:28px}.drop input{width:100%;max-width:330px;margin-top:5px}.form-row{display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:end;margin-top:22px}label{font-size:13px;color:#435d54;display:block}input:not([type=file]),select{display:block;width:100%;margin-top:8px;border:1px solid #ccd9d3;border-radius:7px;padding:11px 12px;color:#203b30;background:#fff;font:inherit}button,.button{background:#1c6753;color:#fff;border:0;border-radius:7px;padding:12px 17px;font:inherit;font-size:14px;cursor:pointer;text-decoration:none;display:inline-block;white-space:nowrap}button:hover,.button:hover{background:#15503f}button:disabled{opacity:.5;cursor:wait}.quiet{background:#eef3f0;color:#355d4e}.quiet:hover{background:#dfeae4}.error{color:#a43b32;line-height:1.6;font-size:14px}.tips{margin-top:18px;padding-top:16px;border-top:1px solid #edf0ee;font-size:13px;color:#6a7b78;line-height:1.8}.tips summary{cursor:pointer;color:#486b5e}.jobs{margin-top:34px}.job{background:#fff;border:1px solid #dfe7e4;border-radius:12px;margin-bottom:14px;padding:22px}.job-head{display:flex;justify-content:space-between;gap:15px}.job h3{font-size:17px;margin:0 0 7px}.job-sub{font-size:12px;color:#788a82}.badge{font-size:12px;border-radius:20px;padding:5px 10px;height:fit-content;background:#edf2f0;color:#4a665b}.badge.completed{background:#e5f4e9;color:#236b3f}.badge.failed,.badge.interrupted{background:#fbeee8;color:#9c4c36}.job-message{font-size:13px;color:#5b7066;margin:15px 0 10px}.job-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.job-actions button,.job-actions a{font-size:12px;padding:9px 12px}.job-detail{font-size:12px;color:#75877d;line-height:1.8}.empty{padding:50px;text-align:center;border:1px dashed #ccdcd3;border-radius:12px;color:#7b8c82}progress{width:100%;height:7px;accent-color:#2b8a67;border:0;border-radius:8px;margin:7px 0}#upload-progress{font-size:13px;margin-top:18px}footer{font-size:12px;color:#7d8e85;margin:24px 0}.login{max-width:540px;margin:7vh auto;padding:40px}.login form{margin-top:28px}.login button{width:100%;margin-top:18px}dialog{width:min(950px,95vw);max-height:85vh;border:1px solid #cbdacf;border-radius:12px;padding:25px}dialog::backdrop{background:#10251f88}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.6;background:#14241d;color:#dcece1;padding:18px;border-radius:8px;max-height:65vh;overflow:auto}[hidden]{display:none!important}@media(max-width:760px){header{padding:0 20px}.tag{display:none}main{padding:25px 16px}.panel{padding:20px}.form-row{grid-template-columns:1fr}.section-title{align-items:flex-start;flex-direction:column}.job-head{align-items:flex-start}.stats{gap:12px 18px}.login{padding:25px}.drop{min-height:130px}}
