<?php $root=__DIR__;$lock="$root/storage/installed.lock";$base=rtrim(str_replace('\\','/',dirname($_SERVER['SCRIPT_NAME'])),'/').'/public';$err=[];$done=false;if($_SERVER['REQUEST_METHOD']==='POST'&&!is_file($lock)){try{$p=$_POST['password']??'';if(strlen($p)<12)throw new Exception('Admin password must be at least 12 characters.');file_put_contents("$root/config.php","<?php return ['database_path'=>__DIR__.'/database/afgtracv5.sqlite','base_url'=>".var_export($base,true)."];");$db=new PDO("sqlite:$root/database/afgtracv5.sqlite");$db->exec(file_get_contents("$root/database/schema.sql"));$db->exec(file_get_contents("$root/database/countries.sql"));$db->prepare("INSERT INTO users(username,display_name,email_address,password_hash,role,force_password_change) VALUES(?,?,?,?, 'admin',0)")->execute([$_POST['username'],$_POST['display_name'],$_POST['email'],password_hash($p,PASSWORD_DEFAULT)]);file_put_contents($lock,gmdate('c'));$done=true;}catch(Throwable $e){$err[]=$e->getMessage();}}?><!doctype html><html><body style="font:16px Arial;max-width:650px;margin:40px auto"><h1>AFGTracv5 Installer</h1><?php foreach($err as $e):?><p><?=htmlspecialchars($e)?></p><?php endforeach;?><?php if($done||is_file($lock)):?><a href="<?=htmlspecialchars($base)?>/login.php">Open Login</a><?php else:?><form method="post"><p><input name="username" placeholder="Admin username" required></p><p><input name="display_name" placeholder="Display name" required></p><p><input type="email" name="email" placeholder="Email" required></p><p><input type="password" name="password" minlength="12" placeholder="Admin password (12+ chars)" required></p><button>Install</button></form><?php endif;?></body></html>