:root { --ink:#1c1f24; --muted:#667085; --line:#e3e6eb; --bg:#f5f6f8; --card:#fff; --accent:#1f6feb; --ok:#18794e; --bad:#c62828; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.6 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif; }
main { max-width:760px; margin:0 auto; padding:20px 16px 60px; }
h1 { font-size:24px; margin:8px 0 0; }
h2 { font-size:18px; margin:0 0 6px; display:flex; align-items:center; gap:8px; }
.muted { color:var(--muted); margin:4px 0 10px; font-size:14px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:18px; margin-top:16px; }
.step { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--accent); color:#fff; font-size:14px; }
label { display:block; margin:10px 0; font-size:14px; }
input:not([type=file]) { display:block; width:100%; margin-top:4px; padding:10px; border:1px solid var(--line); border-radius:8px; font-size:16px; }
button { background:var(--accent); color:#fff; border:0; border-radius:8px; padding:11px 22px; font-size:16px; cursor:pointer; }
button:disabled { background:#b8c2d1; cursor:not-allowed; }
.error { color:var(--bad); min-height:1.4em; margin:8px 0 0; }
.notice { font-weight:600; margin:12px 0 0; }
.thumbs { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.thumbs img { width:84px; height:84px; object-fit:cover; border-radius:8px; border:1px solid var(--line); }
.stages { list-style:none; padding:0; margin:14px 0 0; }
.stages li { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-top:1px solid var(--line); font-size:15px; }
.stages .state { color:var(--muted); text-align:right; }
.stages li.done .state { color:var(--ok); }
.stages li.failed .state { color:var(--bad); }
.results { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; }
.results figure { margin:0; }
.results img { width:100%; border-radius:8px; border:1px solid var(--line); display:block; }
.results figcaption { font-size:13px; color:var(--muted); margin-top:4px; }
.table-wrap { overflow-x:auto; }
table { border-collapse:collapse; font-size:13px; white-space:nowrap; }
th, td { border:1px solid var(--line); padding:6px 8px; text-align:left; }
th { background:#f0f2f5; }
