@php $field = 'h-14 w-full rounded-md border border-line bg-inset text-center font-mono text-2xl font-semibold tracking-[0.5em] text-ink caret-accent placeholder:text-ink-4 focus:border-accent/40 focus:outline-none'; $label = 'mb-1.5 block font-mono text-[11px] uppercase tracking-wider text-ink-3'; $err = 'mt-1.5 flex items-center gap-1.5 font-mono text-[11px] text-offline'; @endphp

{{ __('auth.two_factor') }}

{{ __('auth.challenge_heading') }}

{{ $this->pendingHasTotp ? __('auth.challenge_subtitle') : __('auth.challenge_key_subtitle') }}

@if (! $this->pendingHasTotp && $this->webauthnAvailable()) {{-- Key-only: the security key is the primary path. --}} {{ __('auth.webauthn_login') }} @endif @if ($this->pendingHasTotp)
@error('code')

{{ $message }}

@enderror
{{ __('common.confirm') }} {{ __('auth.checking') }}
@if ($this->webauthnAvailable()) {{-- TOTP + key: the security key is the alternate path. --}}
{{ __('common.or') }}
{{ __('auth.webauthn_login') }} @endif @endif {{-- Backup code lives on its own view — a deliberate, subordinate step. --}} {{ __('auth.challenge_use_backup') }}
{{ __('auth.back_to_login') }}