:root { --bg:#0b1020; --panel:#121833; --text:#e9eef6; --muted:#93a1c5; --accent:#4b7bec; --border:#27335c; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family: system-ui, -apple-system, Segoe UI, Roboto, PingFang TC, Noto Sans TC, "Helvetica Neue", Arial; }
main { max-width: 980px; margin: 40px auto; padding: 0 16px; }
h1 { margin: 0 0 16px; font-size: 28px; }
form, section { background: var(--panel); border:1px solid var(--border); padding:16px; border-radius: 14px; margin-bottom: 18px; }
.field { margin-bottom: 12px; }
.field.row { display:flex; gap:10px; align-items:center; flex-wrap: wrap; }
label { display:block; font-weight:700; margin-bottom:6px; }
input[type=file] { width:100%; padding:10px; border:1px solid var(--border); border-radius:10px; background:#0e1430; color:var(--text); }
button { background:var(--accent); color:white; border:none; padding:10px 14px; border-radius:10px; font-weight:700; cursor:pointer; }
button[disabled] { opacity: .5; cursor: not-allowed; }
.muted { color: var(--muted); font-size: 13px; }
.progress { height: 12px; background:#0e1430; border:1px solid var(--border); border-radius:999px; overflow:hidden; }
.bar { height:100%; width:0; background: linear-gradient(90deg, var(--accent), #7aa9ff); transition:width .2s ease; }
.log { min-height: 160px; white-space: pre-wrap; }
