*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f6f7f9;color:#1a1a1a;min-height:100vh}main{max-width:720px;margin:0 auto;padding:3rem 1.5rem 4rem}h1{font-size:1.9rem;margin:0 0 .5rem;letter-spacing:-.01em}p.lede{color:#555;margin:0 0 2rem;line-height:1.55}.card{background:#fff;border:1px solid #e4e7eb;border-radius:10px;padding:1.5rem;box-shadow:0 1px 2px rgba(0,0,0,.03)}.drop{border:2px dashed #cfd4da;border-radius:10px;padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:border-color .12s ease,background .12s ease}.drop.drag,.drop:hover{border-color:#2C3E50;background:#f2f6fa}.drop input[type=file]{display:none}.drop .hint{color:#777;font-size:.9rem;margin-top:.35rem}.row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;font-size:.9rem}button{background:#2C3E50;color:#fff;border:0;border-radius:6px;padding:.6rem 1.2rem;font-size:.95rem;cursor:pointer}button:disabled{background:#9aa0a6;cursor:not-allowed}.progress{margin-top:1rem;height:6px;background:#e4e7eb;border-radius:3px;overflow:hidden}.progress>div{height:100%;background:#3498DB;transition:width .12s ease}.status{margin-top:1rem;color:#555;font-size:.9rem;min-height:1.2em}.error{color:#c0392b}.footer{color:#8a8f96;font-size:.8rem;text-align:center;margin-top:2rem}code{background:#edf0f2;padding:.1em .3em;border-radius:3px;font-size:.9em}