@php $__sn = \App\Helpers\BrandingHelper::name(); $__fav = \App\Models\SystemSetting::get('favicon'); $__logoL = \App\Models\SystemSetting::get('logo_light'); $__logoD = \App\Models\SystemSetting::get('logo_dark'); @endphp {{ $title ?? $__sn }} — {{ $__sn }} {{-- SEO meta — admin-controlled at /admin/cms → Global SEO Defaults. Login / register / forgot-password screens use this layout, so a search engine indexing those pages picks up the admin's chosen description. Title uses the page-level $title prop when set (e.g. "Sign in") so it stays specific to the screen. --}} @php $__seoDesc = \App\Models\SystemSetting::get('seo_default_description', ''); $__seoOg = \App\Models\SystemSetting::get('seo_og_image', ''); @endphp @if($__seoDesc) @endif @if($__seoOg) @endif {{-- Favicon --}} @if($__fav) @else @endif {{-- PWA (conditional) --}} @php $__pwa = \App\Models\SystemSetting::get('pwa_enabled', 'false') === 'true'; @endphp @if($__pwa) @endif {{-- Body font (admin-configurable via Settings → General → Body Font) --}} {!! \App\Helpers\FontHelper::renderHead() !!} @vite(['resources/css/app.css', 'resources/js/app.js']) @livewireStyles {{-- Theme Studio runtime CSS variables (loads on login/register too) --}} {!! \App\Helpers\ThemeHelper::renderCss() !!} {!! \App\Models\SystemSetting::get('head_code', '') !!} @if($wide ?? false) {{-- Wide layout (onboarding wizard) --}}
{{-- Top bar --}}
@if($__logoL || $__logoD) {{ $__sn }} @endif
@auth
@csrf
@else {{ __('Log in') }} @endauth
{{-- Content --}}
{{ $slot }}
{{-- Legal footer --}}
{{ __('Terms') }} · {{ __('Privacy') }} · {{ __('Refund Policy') }}
@else {{-- Standard split layout (auth pages) --}}
{{-- Left: Branding Panel --}} {{-- Right: Form Panel --}}
{{-- Desktop language switcher — was previously only rendered inside the `lg:hidden` mobile header below, so desktop visitors had no way to switch language on auth pages. Absolutely positioned in the top-right of the form panel so it doesn't disrupt the centered form, and `hidden lg:block` so it's the exact inverse of the mobile switcher below — no duplicate at any viewport size. --}}
{{-- Mobile logo + language --}} {{ $slot }} {{-- Legal links below form --}}
@endif @livewireScripts {{-- Cookie Consent --}} {!! \App\Models\SystemSetting::get('footer_code', '') !!}