[ 'name' => ['type' => 'text', 'label' => 'Client Name', 'required' => true, 'placeholder' => 'Enter client name'], 'company' => ['type' => 'text', 'label' => 'Company Name', 'required' => false, 'placeholder' => 'Enter company name'], 'email' => ['type' => 'email', 'label' => 'Email Address', 'required' => true, 'placeholder' => 'client@example.com'], 'site_address' => ['type' => 'text', 'label' => 'Site Address', 'required' => true, 'placeholder' => 'Enter site address'], 'state_postcode' => ['type' => 'text', 'label' => 'State & Postcode', 'required' => true, 'placeholder' => 'State, Postcode'], ], 'Sample Information' => [ 'lab_no' => ['type' => 'text', 'label' => 'Lab Number', 'required' => true, 'placeholder' => 'Lab reference number'], 'batch_no' => ['type' => 'text', 'label' => 'Batch Number', 'required' => false, 'placeholder' => 'Batch reference'], 'sample_id' => ['type' => 'text', 'label' => 'Sample ID', 'required' => true, 'placeholder' => 'Sample identifier'], 'site_id' => ['type' => 'text', 'label' => 'Site ID', 'required' => true, 'placeholder' => 'Site identifier'], 'crop_type' => ['type' => 'text', 'label' => 'Crop Type', 'required' => true, 'placeholder' => 'Type of crop'], 'soil_type' => ['type' => 'select', 'label' => 'Soil Type', 'required' => true, 'options' => ['Sandy', 'Loamy', 'Clay', 'Silt', 'Peat', 'Chalk']], 'date_sampled' => ['type' => 'date', 'label' => 'Date Sampled', 'required' => true], ], 'Physical Properties' => [ 'texture' => ['type' => 'text', 'label' => 'Texture', 'required' => false, 'placeholder' => 'Soil texture description'], 'gravel' => ['type' => 'number', 'label' => 'Gravel (%)', 'required' => false, 'step' => '0.1', 'min' => '0', 'max' => '100'], 'colour' => ['type' => 'text', 'label' => 'Colour', 'required' => false, 'placeholder' => 'Soil colour'], 'ocarbon' => ['type' => 'number', 'label' => 'Organic Carbon (%)', 'required' => false, 'step' => '0.01', 'min' => '0'], 'omatter' => ['type' => 'number', 'label' => 'Organic Matter (%)', 'required' => false, 'step' => '0.01', 'min' => '0'], ], 'Chemical Properties' => [ 'ph_cacl2' => ['type' => 'number', 'label' => 'pH (CaCl₂)', 'required' => false, 'step' => '0.1', 'min' => '0', 'max' => '14'], 'ph_h2o' => ['type' => 'number', 'label' => 'pH (H₂O)', 'required' => false, 'step' => '0.1', 'min' => '0', 'max' => '14'], 'paramag' => ['type' => 'number', 'label' => 'Paramagnetic', 'required' => false, 'step' => '0.01'], 'ec' => ['type' => 'number', 'label' => 'EC (dS/m)', 'required' => false, 'step' => '0.01', 'min' => '0'], ], 'Nutrient Analysis' => [ 'NO3_N' => ['type' => 'number', 'label' => 'NO₃-N (mg/kg)', 'required' => false, 'step' => '0.1', 'min' => '0'], 'NH3_N' => ['type' => 'number', 'label' => 'NH₃-N (mg/kg)', 'required' => false, 'step' => '0.1', 'min' => '0'], 'p_mehlick' => ['type' => 'number', 'label' => 'P Mehlich (mg/kg)', 'required' => false, 'step' => '0.1', 'min' => '0'], 'p_bray2' => ['type' => 'number', 'label' => 'P Bray-2 (mg/kg)', 'required' => false, 'step' => '0.1', 'min' => '0'], 'p_morgan' => ['type' => 'number', 'label' => 'P Morgan (mg/kg)', 'required' => false, 'step' => '0.1', 'min' => '0'], 'k_morgan' => ['type' => 'number', 'label' => 'K Morgan (mg/kg)', 'required' => false, 'step' => '0.1', 'min' => '0'], 'ca_morgan' => ['type' => 'number', 'label' => 'Ca Morgan (mg/kg)', 'required' => false, 'step' => '0.1', 'min' => '0'], 'mg_morgan' => ['type' => 'number', 'label' => 'Mg Morgan (mg/kg)', 'required' => false, 'step' => '0.1', 'min' => '0'], 'na_morgan' => ['type' => 'number', 'label' => 'Na Morgan (mg/kg)', 'required' => false, 'step' => '0.1', 'min' => '0'], 's_morgan' => ['type' => 'number', 'label' => 'S Morgan (mg/kg)', 'required' => false, 'step' => '0.1', 'min' => '0'], ], 'Micronutrients' => [ 'b_cacl2' => ['type' => 'number', 'label' => 'B (CaCl₂) (mg/kg)', 'required' => false, 'step' => '0.01', 'min' => '0'], 'mn_dtpa' => ['type' => 'number', 'label' => 'Mn (DTPA) (mg/kg)', 'required' => false, 'step' => '0.01', 'min' => '0'], 'zn_dtpa' => ['type' => 'number', 'label' => 'Zn (DTPA) (mg/kg)', 'required' => false, 'step' => '0.01', 'min' => '0'], 'fe_dtpa' => ['type' => 'number', 'label' => 'Fe (DTPA) (mg/kg)', 'required' => false, 'step' => '0.01', 'min' => '0'], 'cu_dtpa' => ['type' => 'number', 'label' => 'Cu (DTPA) (mg/kg)', 'required' => false, 'step' => '0.01', 'min' => '0'], 'al' => ['type' => 'number', 'label' => 'Al (mg/kg)', 'required' => false, 'step' => '0.01', 'min' => '0'], 'se' => ['type' => 'number', 'label' => 'Se (mg/kg)', 'required' => false, 'step' => '0.01', 'min' => '0'], ], 'Base Saturation' => [ 'tec' => ['type' => 'number', 'label' => 'TEC', 'required' => false, 'step' => '0.01'], 'cec' => ['type' => 'number', 'label' => 'CEC', 'required' => false, 'step' => '0.01'], 'ca_mehlick3' => ['type' => 'number', 'label' => 'Ca Mehlich-3', 'required' => false, 'step' => '0.01'], 'mg_mehlick3' => ['type' => 'number', 'label' => 'Mg Mehlich-3', 'required' => false, 'step' => '0.01'], 'k_mehlick3' => ['type' => 'number', 'label' => 'K Mehlich-3', 'required' => false, 'step' => '0.01'], 'na_mehlick3' => ['type' => 'number', 'label' => 'Na Mehlich-3', 'required' => false, 'step' => '0.01'], 'al_mehlick3' => ['type' => 'number', 'label' => 'Al Mehlich-3', 'required' => false, 'step' => '0.01'], ], ]; ?> $fields): ?>