:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#161b22;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}.page{max-width:1180px;margin:0 auto;padding:34px}.hero{margin-bottom:22px}.eyebrow{color:#ff5a3d;font-weight:800;letter-spacing:.08em}.hero h1{font-size:42px;margin:8px 0}.hero p{color:#647084}.badge{display:inline-flex;margin-top:12px;padding:8px 12px;border-radius:999px;background:#eef2ff;color:#334155;font-weight:700}.badge.warn{background:#fff7ed;color:#b45309}.badge.ok{background:#ecfdf5;color:#047857}.card{background:#fff;border:1px solid #e5eaf2;border-radius:20px;padding:24px;margin:18px 0;box-shadow:0 18px 50px rgba(22,27,34,.06)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.uploadBox{border:1.5px dashed #b8c2d8;border-radius:18px;min-height:190px;padding:22px;display:flex;flex-direction:column;gap:10px;justify-content:center;background:#fbfdff;cursor:pointer}.uploadBox input{margin-top:12px}.step{width:32px;height:32px;border-radius:9px;background:#121826;color:white;display:grid;place-items:center;font-weight:800}.controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:22px}.controls label{font-size:14px;font-weight:700;color:#334155;display:flex;flex-direction:column;gap:8px}.controls input,.controls select{height:42px;border:1px solid #d6deeb;border-radius:12px;padding:0 12px;background:white}.controls .check{flex-direction:row;align-items:center;gap:10px}.controls .check input{height:auto}button{margin-top:22px;border:0;border-radius:14px;background:#ff5a3d;color:white;height:48px;padding:0 28px;font-weight:900;font-size:16px;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.hint{color:#8a94a6;font-size:13px}.progress{height:12px;background:#edf2f7;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#ff5a3d,#ff9f43);transition:width .25s}.statusCard video{width:100%;max-height:520px;margin-top:18px;border-radius:16px;background:#111}.statusCard a{display:inline-block;margin-top:14px;color:#ff5a3d;font-weight:800}.jobs{display:grid;gap:10px}.job{border:1px solid #edf1f7;border-radius:14px;padding:12px;color:#475569}.job strong{color:#111827}@media(max-width:900px){.grid,.controls{grid-template-columns:1fr}.page{padding:18px}.hero h1{font-size:32px}}