<%!-- This is an auth page, so it renders through AuthPageWrapper like the other
     ten. It used to call LayoutWrapper.app_layout directly, which made it the
     one page that would have kept the host's chrome after auth stopped
     rendering inside it — the exact "miss one and it silently behaves
     differently" hazard that using the component rather than a route list is
     meant to remove. --%>
<PhoenixKitWeb.Components.AuthPageWrapper.auth_page_wrapper
  flash={@flash}
  phoenix_kit_current_scope={assigns[:phoenix_kit_current_scope]}
  page_title={@page_title}
  current_path={assigns[:url_path]}
>
  <Keyfob.Components.confirm_screen
    meta={@meta}
    state={@kf_state}
    approve_event="keyfob_approve"
    deny_event="keyfob_deny"
    labels={confirm_labels()}
  />

  <%!-- Every row of the device panel is behind a presence guard, so a request
        we know nothing identifying about renders as an empty box — which reads
        as "still loading" on the one screen where the details ARE the decision.
        Say which it is, rather than leaving a blank panel to be read as either. --%>
  <p
    :if={@kf_state == :pending and not identifying_details?(@meta)}
    class="mx-auto mt-3 max-w-sm text-center text-xs text-base-content/60"
  >
    {gettext("No device details could be determined for this request.")}
  </p>
</PhoenixKitWeb.Components.AuthPageWrapper.auth_page_wrapper>
