<?php

// Auth feature strings (login, password change, 2FA challenge + setup, auth brand panel).
// Shared actions/status live in common.php (R16). en = natural English, same terse register.
return [
    // ── Login ────────────────────────────────────────────────────────────
    'control_plane' => 'Control Plane',
    'login_heading' => 'Sign in',
    'login_subtitle' => 'Access to the Clusev panel.',
    'email' => 'Email',
    'password' => 'Password',
    'toggle_password' => 'Show password',
    'hide_password' => 'Hide password',
    'remember_me' => 'Stay signed in',
    'login_submit' => 'Sign in',
    'checking' => 'Checking…',
    'secured' => 'Secured',
    'security_note' => 'Connection over SSH · 2FA recommended · every action lands in the audit log.',

    // ── Password change ──────────────────────────────────────────────────
    'security' => 'Security',
    'password_change_heading' => 'Change password',
    'password_change_subtitle' => 'Set your own password (min. 6 characters).',
    'current_password' => 'Current password',
    'new_password' => 'New password',
    'confirm_new_password' => 'Confirm new password',
    'save_and_continue' => 'Save & continue',
    'saving' => 'Saving…',
    'skip_for_now' => 'Skip for now',
    'default_pw_warning' => 'Initial password still in use. For security, you should change it.',
    'default_pw_change' => 'Change',

    // ── Two-factor (shared label) ────────────────────────────────────────
    'two_factor' => 'Two-factor',

    // ── 2FA challenge ────────────────────────────────────────────────────
    'challenge_heading' => 'Verification',
    'challenge_subtitle' => '6-digit code from your authenticator app.',
    'code' => 'Code',
    'challenge_use_backup' => 'Use backup code',
    'backup_heading' => 'Backup codes',
    'backup_subtitle' => 'Enter a backup code to continue.',
    'back_to_options' => 'Back to sign-in options',
    'back_to_login' => 'Back to sign in',

    // ── 2FA setup ────────────────────────────────────────────────────────
    'setup_heading' => 'Set up',
    'setup_subtitle' => 'Scan the code with an authenticator app (Aegis, Google Authenticator, …) and confirm with a code.',
    'qr_alt' => '2FA QR code',
    'secret_manual' => 'Secret (manual)',
    'confirmation_code' => 'Confirmation code',
    'activate' => 'Activate',

    // ── Brand panel (auth layout) ────────────────────────────────────────
    'brand_headline_lead' => 'One console for your',
    'brand_headline_accent' => 'entire fleet',
    'brand_tagline' => 'Agentless over SSH. Metrics, services, files and a gapless audit log — securely controlled from one panel.',
    'terminal_title' => 'clusev · security model',
    'terminal_ssh' => 'agentless · exec + SFTP over phpseclib',
    'terminal_key' => 'host keys pinned via TOFU',
    'terminal_2fa' => 'optional, but recommended',
    'terminal_log' => 'every action in the audit log',
    'terminal_core' => 'Open Core · AGPL-licensed',
    'footer_copyright' => '© :year Clusev · Fleet Control',
    'footer_operational' => 'operational',

    // ── Page titles ──────────────────────────────────────────────────────
    'title_login' => 'Sign in — Clusev',
    'title_password_change' => 'Change password — Clusev',
    'title_challenge' => 'Verification — Clusev',
    'title_backup' => 'Backup code — Clusev',
    'title_setup' => 'Set up 2FA — Clusev',

    // ── Validation / error messages ──────────────────────────────────────
    'too_many_attempts' => 'Too many attempts. Please try again in :seconds seconds.',
    'invalid_credentials' => 'These credentials are incorrect.',
    'session_expired' => 'Session expired. Please sign in again.',
    'invalid_code' => 'Invalid code.',
    'code_mismatch' => 'Code does not match — check your authenticator app’s time.',

    // ── Validation attribute names ───────────────────────────────────────
    'attr_current_password' => 'current password',
    'attr_new_password' => 'new password',

    // ── 2FA backup (recovery) codes ──────────────────────────────────────
    'challenge_key_subtitle' => 'Confirm with your security key or a backup code.',
    'challenge_backup_label' => 'Backup code',
    'challenge_backup_placeholder' => 'xxxxxxxxxx-xxxxxxxxxx',
    'recovery_heading' => 'Backup codes',
    'recovery_subtitle' => 'Use these one-time codes to sign in when you do not have your authenticator.',
    'recovery_warning' => 'Save these codes somewhere safe now — each works exactly once. Download them while they are shown.',
    'recovery_download' => 'Download as file',
    'recovery_regenerate' => 'Regenerate',
    'recovery_regenerated' => 'New backup codes generated.',
    'recovery_manage' => 'Manage backup codes',
    'recovery_hidden_notice' => 'For security, backup codes are shown only once, at creation. Generate a new set to see them — the old ones stop working.',

    // ── Forgot / reset password ──────────────────────────────────────────
    'title_forgot' => 'Forgot password — Clusev',
    'forgot_link' => 'Forgot password?',
    'forgot_heading' => 'Reset password',
    'forgot_subtitle' => 'Reset your password with your 2FA code or a backup code.',
    'forgot_subtitle_mail' => 'We will send you a reset link (valid for 15 minutes).',
    'forgot_code' => '2FA code or backup code',
    'forgot_code_hint' => 'Your 6-digit authenticator code or one of your backup codes.',
    'forgot_submit' => 'Reset password',
    'forgot_send_email' => 'Send reset link',
    'forgot_use_code_toggle' => 'No email access? Reset with a 2FA code',
    'reset_invalid' => 'Invalid email or code.',
    'reset_done' => 'Password changed. Please sign in again.',
    'reset_link_sent' => 'If the email exists, a reset link has been sent.',
    'reset_token_invalid' => 'Reset link is invalid or expired.',

    // ── WebAuthn / security keys ─────────────────────────────────────────
    'webauthn_login' => 'Sign in with a security key',
    'webauthn_failed' => 'Could not verify the security key.',
    'webauthn_title' => 'Security keys',
    'webauthn_subtitle' => 'Hardware keys (e.g. YubiKey) — as the only factor, with TOTP, or both.',
    'webauthn_unavailable' => 'Security keys are only available when the panel runs under a domain with HTTPS.',
    'webauthn_name' => 'Label',
    'webauthn_name_placeholder' => 'e.g. YubiKey 5C',
    'webauthn_add' => 'Add security key',
    'webauthn_added' => 'Security key added.',
    'webauthn_removed' => 'Security key removed.',
    'webauthn_none' => 'No security key registered yet.',
    'webauthn_added_on' => 'Added :date',
    'webauthn_last_used' => 'Last used :date',
    'webauthn_never_used' => 'Not used yet',
    'webauthn_remove_confirm' => 'Remove this security key?',
];
