{{ __('The name of your whole system. Like WordPress\'s Site Title it appears everywhere — the browser tab, the admin sidebar, the public landing header and your emails — so changing it here updates the site.') }}
@error('support_email')
{{ $message }}
@enderror
{{ __('Shown to clients in the ticket panel and footer. Leave blank to hide it.') }}
{{ __('Used for order timestamps, reports and scheduling.') }}
{{ __('How dates are displayed across the panel.') }}
@elseif ($tab === 'email')
{{-- Outgoing mail (SMTP). Drives welcome, password-reset and
billing emails. The provider preset fills host + port; the
secret is stored encrypted and shown masked. --}}
{{ __('Email (SMTP)') }}
{{ __('Used to send welcome, password recovery and billing emails to your users.') }}
{{-- A secret, NOT type=password: -webkit-text-security masks the
characters without inviting Chrome's password manager to save
or autofill an SMTP key across the site. --}}
{{ __('Used as global defaults when syncing or bulk-importing services from a provider. Each provider can override these from its own catalogue screen.') }}
* {{ __('If you do not want to change the exchange rate, leave this field at 1.') }}
@elseif ($tab === 'branding')
{{-- Branding is ONE place — colour, logos and favicon together (like the
reference product). The logos used to live in a separate "Logo &
favicon" tab; they were merged here so identity is edited in a single
screen. Client-portal skins are layout, not identity, so they stay in
Appearance and are only linked from the bottom. --}}
{{ __('Branding') }}
{{ __('The colour, logos and favicon that make the panel yours — all in one place.') }}
{{-- ── Brand colour ── --}}
{{ __('Brand colour') }}
{{ __('Primary button') }}{{ __('Badge') }}
@error('primary_color')
{{ $message }}
@enderror
{{ __('The whole panel re-themes from this one colour, in light and dark mode.') }}
{{-- ── Logos & favicon ── --}}
{{ __('Logos & favicon') }}
{{ __('Upload a variant for each context. PNG, SVG or WebP recommended.') }}
@php
// The three previews below stand in for artwork the buyer has not
// uploaded yet, so they must wear the BUYER's brand: hardcoded
// "RF / RedFamosa" placeholders made a rebranded panel look like it
// still belonged to someone else. Trimmed to the SVG's fixed width.
$brandName = \Illuminate\Support\Str::limit(\App\Support\Brand::name(), 14, '');
$brandInitials = mb_strtoupper(mb_substr($brandName, 0, 2));
@endphp
{{-- Favicon / collapsed icon --}}
@if ($faviconUrl)
@else
@endif
32×32 px
{{ __('Favicon') }}
{{ __('Shown in browser tabs, bookmarks, and as the collapsed sidebar icon.') }} {{ __('ICO, PNG or SVG, 32×32 px, max 256 KB.') }}
{{ __('Search-engine and share-preview tags for your public pages (FAQ, Terms, and CMS pages). The landing page has its own SEO in the Landing editor.') }}
@error('seo_meta_title')
{{ $message }}
@enderror
{{ __('Used as the site name in page titles. Blank uses your website name.') }}
@error('seo_meta_description')
{{ $message }}
@enderror
@error('seo_canonical_host')
{{ $message }}
@enderror
{{ __('Forces one address for search engines. Blank uses the current host.') }}
@error('seo_og_image')
{{ $message }}
@enderror
{{ __('Recommended 1200×630. Blank uses your website logo.') }}
{{ __('Controls the robots meta tag and robots.txt. A sitemap is served at') }} /sitemap.xml.
@elseif ($tab === 'social')
{{ __('Social media') }}
{{ __('Profile links shown in the public landing footer. Leave a field blank to hide that network.') }}
@foreach (\App\Support\SocialLinks::NETWORKS as $network)
@error('social.'.$network)
{{ $message }}
@enderror
@endforeach
@elseif ($tab === 'analytics')
{{ __('Analytics') }}
{{ __('Tracking tags injected into your public pages. Nothing loads on the admin panel or while the master switch is off.') }}
{{ $analytics_enabled ? __('On') : __('Off') }}
@error('analytics_ga_id')
{{ $message }}
@enderror
@error('analytics_gtm_id')
{{ $message }}
@enderror
@error('analytics_meta_pixel')
{{ $message }}
@enderror
@error('analytics_custom_head')
{{ $message }}
@enderror
{{ __('Advanced: injected verbatim into the public
. Only add code you trust.') }}
@elseif ($tab === 'oauth')
{{ __('Social login') }}
{{ __('Let users sign in with Google or Facebook. Create an app in each provider and paste its credentials. Secrets are stored encrypted and never shown again.') }}
{{-- ── 3-card grid — fixed columns so they fill the whole width ── --}}
{{ __('The GIF button in the ticket reply composer searches Giphy. Paste your own API key below — without one the button is hidden and the rest of the composer works as usual.') }}
@error('giphy_api_key')
{{ $message }}
@enderror
{{ __('Get a free key: create an account at developers.giphy.com, click "Create an App", choose the API option and copy the key it gives you.') }}
{{ __('Control who can reach the admin area and how sessions and passwords behave.') }}
@error('admin_ip_allowlist')
{{ $message }}
@enderror
{{-- One sentence, one key: split around the IP it read as two fragments,
and the second one ("is always allowed…") cannot be translated into a
language that puts the subject anywhere else. --}}
{!! __('One IP or CIDR per line. LEAVE BLANK to allow every IP (default). Your current IP :ip is always allowed so you cannot lock yourself out.', ['ip' => ''.e(request()->ip()).'']) !!}
@error('session_lifetime')
{{ $message }}
@enderror
{{ __('How long an idle session stays signed in.') }}
@error('password_min_length')
{{ $message }}
@enderror
{{ __('Applied when a user registers or changes their password.') }}
@elseif ($tab === 'maintenance')
{{ __('Maintenance') }}
{{ __('Close the public site with a friendly notice while you work. Staff and the admin panel stay reachable.') }}
{{ $maintenance_mode ? __('On') : __('Off') }}
@error('maintenance_heading')
{{ $message }}
@enderror
@error('maintenance_message')
{{ $message }}
@enderror
@error('maintenance_allowed_ips')
{{ $message }}
@enderror
{{ __('These IPs see the live site during maintenance. Staff always bypass regardless.') }}
@if ($maintenance_mode){{ __('The public site is currently closed.') }}@endif