<?php
/**
 * (c) ININOUT & PYXIS. All Rights Reserved.
 * Wszelkie modyfikacje tego pliku wymagaja zgloszenia oraz zgody autorow.
 * Any modifications to this file require notification and consent of the authors.
 */
/**
 * i-BOK 5 - English translations
 */
return [
    'common' => [
        'app_name'       => 'i-BOK',
        'app_full_name'  => 'Internet Customer Service Office',
        'login'          => 'Log in',
        'logout'         => 'Log out',
        'save'           => 'Save',
        'cancel'         => 'Cancel',
        'close'          => 'Close',
        'toggle_navigation' => 'Toggle navigation',
        'dark_mode'      => 'Dark mode',
        'delete'         => 'Delete',
        'edit'           => 'Edit',
        'back'           => 'Back',
        'yes'            => 'Yes',
        'no'             => 'No',
        'loading'        => 'Loading...',
        'error'          => 'Error',
        'success'        => 'Success',
        'warning'        => 'Warning',
        'no_data'        => 'No data',
        'actions'        => 'Actions',
        'search'         => 'Search',
        'download'       => 'Download',
        'upload'         => 'Upload',
        'print'          => 'Print',
        'status'         => 'Status',
        'date'           => 'Date',
        'amount'         => 'Amount',
        'description'    => 'Description',
        'language'       => 'Language',
        'all'            => 'All',
        'session_expired'=> 'Session expired. Please log in again.',
    ],

    'login' => [
        'title'              => 'Login',
        'client_title'       => 'Client Panel',
        'admin_title'        => 'Admin Panel',
        'username'           => 'Username',
        'password'           => 'Password',
        'btn_login'          => 'Log in',
        'error_credentials'  => 'Invalid username or password.',
        'error_rate_limit'   => 'Too many login attempts. Try again in 15 minutes.',
        'error_csrf'         => 'Form verification error. Please try again.',
        'error_config'       => 'System configuration error.',
        'logged_out'         => 'You have been logged out.',
        'admin_username'     => 'Admin / Service Login',
        'admin_link'         => 'Admin panel',
        'client_link'        => 'Client panel',
    ],

    'menu' => [
        'dashboard'   => 'Dashboard',
        'invoices'    => 'Documents',
        'corrections' => 'Corrections',
        'payments'    => 'Payments',
        'service'     => 'Orders',
        'info'        => 'Information',
        'contact'     => 'Contact',
        'transfer'    => 'Bank Transfer',
        'clients'     => 'Clients',
        'infra'       => 'Infrastructure',
        'devices'     => 'Devices',
        'logs'        => 'Logs',
        'edit_texts'  => 'Edit',
        'edit_files'  => 'Edit files',
        'import'      => 'Data Import',
        'payment_gateways' => 'Payments',
        'settings'    => 'Settings',
        'change_password' => 'Change password',
    ],

    'dashboard' => [
        'title'            => 'Dashboard',
        'welcome'          => 'Welcome, :name',
        'client_id'        => 'Client No.',
        'data_updated'     => 'Data updated on',
        'account_number'   => 'Bank account number',
        'your_tariff'      => 'Your tariff',
        'download'         => 'Download',
        'upload'           => 'Upload',
        'day'              => 'day',
        'night'            => 'night',
        'contract'         => 'Contract',
        'contract_from'    => 'from',
        'contract_to'      => 'to',
        'contract_indefinite' => 'indefinite',
        'balance'          => 'Balance',
        'overpayment'      => 'Overpayment',
        'debt'             => 'Debt',
        'no_debt'          => 'No outstanding balance',
        'news'              => 'News',
        'payment_info'      => 'Payment Information',
        'company_info'      => 'Service Provider Details',
        'balance_details'   => 'Balance Details',
        'total_obligations' => 'Obligations',
        'overdue_balance'   => 'Overdue',
        'contact_info'      => 'Contact Information',
        'unsettled_invoices' => 'Unsettled Invoices',
        'account_status'      => 'Account Status',
        'active'              => 'Active',
        'inactive'            => 'Inactive',
        'expenses_chart'      => 'Expenses - last 12 months',
        'amount_pln'          => 'Amount (PLN)',
        'contract_remaining'  => ':days days remaining (:percent%)',
        'contract_expired'    => 'Contract expired',
        'contract_progress'   => 'Contract progress',
        'next_payment'        => 'Next payment deadline',
        'days_left'           => 'in :days days',
        'days_overdue'        => ':days days overdue',
        'due_today'           => 'Due today!',
        'alert_payment_soon'  => 'Invoice :invoice is due on :date (in :days days).',
        'alert_contract_expiring' => 'Your contract expires on :date (in :days days).',
        'alert_new_invoice'   => 'New invoice: :invoice from :date.',
        'last_payment_date'   => 'Last Payment Date',
        'payment_countdown'   => 'Remaining: :days days :hours hrs :mins min',
        'payment_overdue_by'  => 'Overdue by :days days',
        'payment_due_today'   => 'Payment due today!',
    ],

    'invoices' => [
        'title'            => 'Invoices',
        'documents_title'  => 'Documents',
        'invoice_number'   => 'Invoice No.',
        'doc_type'         => 'Type',
        'pdf'              => 'PDF',
        'amount'           => 'Gross Amount',
        'remaining_amount' => 'Remaining',
        'status'           => 'Status',
        'issue_date'       => 'Issue Date',
        'due_date'         => 'Due Date',
        'transfer'         => 'Transfer',
        'settled'          => 'SETTLED',
        'unsettled'        => 'UNSETTLED',
        'no_invoices'      => 'No invoices to display.',
        'no_documents'     => 'No documents to display.',
        'download_pdf'     => 'Download PDF',
        'print_transfer'   => 'Print transfer',
        'filter_all'       => 'All documents',
        'filter_fv'        => 'Invoices (FV)',
        'filter_fvk'       => 'Corrections (FVK)',
        'filter_pz'        => 'Payment confirmations (PZ)',
        'pdf_not_available' => 'PDF not available',
    ],

    'corrections' => [
        'title'           => 'Invoice Corrections',
        'correction_number' => 'Correction No.',
        'no_corrections'  => 'No corrections to display.',
    ],

    'payments' => [
        'title'          => 'Payment History',
        'payment_number' => 'Payment No.',
        'booking_date'   => 'Booking Date',
        'payment_method' => 'Payment Method',
        'amount'         => 'Amount',
        'no_payments'    => 'No payments to display.',
        'transfer'       => 'bank transfer',
    ],

    'service' => [
        'title'         => 'Service Orders',
        'order_number'  => 'Order No.',
        'client'        => 'Client',
        'location'      => 'Location',
        'contact_data'  => 'Contact Data',
        'date'          => 'Date',
        'content'       => 'Content',
        'description'   => 'Description',
        'notes'         => 'Notes',
        'days'          => 'Days',
        'no_orders'     => 'No service orders.',
        'open_orders'   => 'Open',
        'closed_orders' => 'Closed',
        'closed_date'   => 'Closed Date',
        'open'          => 'Open',
        'closed'        => 'Closed',
        'status'        => 'Status',
        'status_open'   => 'In progress',
        'status_closed' => 'Completed',
        'duration'      => 'Duration',
    ],

    'info' => [
        'title'           => 'Information',
        'tariff'          => 'Tariff',
        'download_day'    => 'Download (day)',
        'upload_day'      => 'Upload (day)',
        'download_night'  => 'Download (night)',
        'upload_night'    => 'Upload (night)',
        'notes'           => 'Notes',
        'devices'         => 'Devices',
        'device_ip'       => 'IP',
        'device_mac'      => 'MAC',
        'device_name'     => 'Name',
        'device_type'     => 'Type',
        'device_model'    => 'Model',
        'device_date'     => 'Connection Date',
        'no_devices'      => 'No devices.',
        'speed_hidden'    => 'Speed information is not available.',
        'faq'             => 'Help / FAQ',
        'your_data'       => 'Your data',
        'data_check_note' => 'Please verify your contact information is up to date. Contact support if changes are needed.',
        'report_outdated' => 'Report outdated data',
        'report_outdated_message' => 'Client :name (ID: :client_id) reports that their contact data needs to be updated.' . "\n\n" . 'Please update the following:' . "\n" . '- Phone: ' . "\n" . '- Email: ' . "\n" . '- Address: ' . "\n",
        'login_history'   => 'Recent logins',
        'browser'         => 'Browser',
    ],

    'contact' => [
        'title'            => 'Contact',
        'your_name'        => 'Your name',
        'your_email'       => 'Your e-mail',
        'subject'          => 'Subject',
        'message'          => 'Message',
        'btn_send'         => 'Send message',
        'success'          => 'Message has been sent.',
        'error_send'       => 'Failed to send message.',
        'error_fields'     => 'Please fill in all form fields.',
        'company_data'     => 'Company Contact Details',
        'phone'            => 'Phone',
        'email'            => 'E-mail',
        'address'          => 'Address',
        'installation_address'    => 'Installation Address',
        'correspondence_address'  => 'Correspondence Address',
        'show_on_map'             => 'Show on map',
        'www'              => 'Website',
        'subject_select'   => 'Select subject',
        'subject_failure'  => 'Report a failure',
        'subject_tariff'   => 'Tariff change',
        'subject_invoice'  => 'Invoice question',
        'subject_contract' => 'Contract matters',
        'subject_data'     => 'Change personal data',
        'subject_other'    => 'Other...',
    ],

    'transfer' => [
        'title'         => 'Bank Transfer Form',
        'print'         => 'Print',
        'recipient'     => 'Recipient',
        'account'       => 'Account No.',
        'amount'        => 'Amount',
        'amount_words'  => 'In words',
        'payer'         => 'Payer',
        'payment_title' => 'Title',
    ],

    'admin' => [
        'title'             => 'Admin Panel',
        'dashboard'         => 'Dashboard',
        'upload_zip'        => 'Data Import (ZIP)',
        'upload_logo'       => 'Change Logo',
        'select_file'       => 'Select file',
        'btn_import'        => 'Import',
        'import_success'    => 'Import completed. :count files imported.',
        'import_error'      => 'Import error.',
        'import_in_progress'=> 'Import in progress. Please wait.',
        'session_logs'      => 'Session Logs',
        'stats'             => 'Statistics',
        'total_clients'     => 'Total clients',
        'active_clients'    => 'Active clients',
        'with_debt'         => 'With outstanding debt',
        'data_date'          => 'Data update date',
        'client_view'        => 'Client view',
        'tariff_chart'       => 'Tariff distribution',
        'client_status_chart'=> 'Client status',
        'top_debtors'        => 'Top debtors',
        'top_debtors_empty'  => 'No clients with outstanding debt.',
        'debt_amount'        => 'Debt amount',
        'total_debt'         => 'Total debt',
        'logo_too_large'     => 'File too large (max 2MB).',
        'logo_invalid_format'=> 'Invalid image format.',
        'logo_upload_error'  => 'Failed to save logo.',
        'clients_no_debt'    => 'No debt',
        'clients_with_debt'  => 'With debt',
        'clients_inactive'   => 'Inactive',
        'revenue_chart'      => 'Monthly Revenue',
        'revenue_pln'        => 'Revenue (PLN)',
        'expiring_contracts' => 'Expiring Contracts',
        'contract_end'       => 'Contract End',
        'days_remaining'     => 'Remaining',
        'days_unit'          => 'days',
        'backup_cfg_title'   => 'Configuration Backup',
        'backup_export'      => 'Export Configuration',
        'backup_export_desc' => 'Download an encrypted file containing all panel settings (cfg/ and admin/ files). File is password-protected (AES-256).',
        'backup_import'      => 'Import Configuration',
        'backup_import_desc' => 'Restore settings from a previously exported file. Supports both new encrypted (.enc) and old unencrypted (.json) formats.',
        'backup_success'     => 'Configuration exported successfully.',
        'backup_restore_success' => 'Restored :count configuration files.',
        'backup_invalid'     => 'Invalid configuration file.',
        'backup_no_file'     => 'No file selected.',
        'backup_password'    => 'Encryption password',
        'backup_password_placeholder' => 'Enter password (min. 6 characters)',
        'backup_password_hint' => 'File will be encrypted with AES-256-CBC. Remember this password — it will be needed for restore.',
        'backup_password_min' => 'Password must be at least 6 characters.',
        'backup_password_required' => 'File is encrypted. Enter the decryption password.',
        'backup_password_import_placeholder' => 'Password used during export',
        'backup_password_import_hint' => 'Required for .enc files. Leave empty for old .json files.',
        'backup_encrypt_error' => 'Data encryption error.',
        'backup_decrypt_error' => 'Decryption error. Check the password.',
        'logo_help'          => 'Recommended size: 300×80 px, PNG (transparent background) or JPG format. Max 2 MB. Logo is displayed on the login page.',
        'logo_delete'        => 'Delete logo',
        'logo_deleted'       => 'Logo deleted',
        'logo_confirm_delete'=> 'Are you sure you want to delete the logo?',
        'service_timeline'   => 'Service Orders Timeline',
        'service_open'       => 'Open',
        'service_closed'     => 'Closed',
        'clients_by_city'    => 'Clients by City',
        'other_cities'       => 'Other',
    ],

    'admin_clients' => [
        'title'          => 'Client List',
        'id'             => 'ID',
        'name'           => 'Name / Company',
        'login'          => 'Login',
        'updated'        => 'Updated',
        'balance'        => 'Balance',
        'tariff'         => 'Tariff',
        'status'         => 'Status',
        'active'         => 'Active',
        'inactive'       => 'Inactive',
        'view'           => 'View',
        'show_all'       => 'All',
        'debt'           => 'In debt',
        'notifications'  => 'Notifications',
        'notify_active'  => 'Active',
        'notify_inactive'=> 'Inactive',
        'blocking'       => 'Blocking',
        'block_active'   => 'Active',
        'block_inactive' => 'Inactive',
        'last_payment'   => 'Last Payment',
        'password'       => 'Password',
        'show_password'  => 'Show/hide password',
    ],

    'admin_infra' => [
        'title'     => 'Network Infrastructure',
        'id'        => 'No.',
        'ip'        => 'IP',
        'mac'       => 'MAC',
        'name'      => 'Name',
        'model'     => 'Model',
        'function'  => 'Function',
        'location'  => 'Location',
        'group'     => 'Group',
        'no_data'   => 'No infrastructure data.',
    ],

    'admin_devices' => [
        'title'      => 'Client Devices',
        'id'           => 'No.',
        'client_name'  => 'Client',
        'ip'           => 'IP',
        'mac'        => 'MAC',
        'type'       => 'Type',
        'model'      => 'Model',
        'connected'  => 'Connected to',
        'ip_pub'     => 'Public IP',
        'no_data'    => 'No device data.',
    ],

    'admin_logs' => [
        'title'      => 'System Logs',
        'filename'   => 'File',
        'size'       => 'Size',
        'modified'   => 'Modified',
        'view'       => 'View',
        'delete'     => 'Delete',
        'no_logs'    => 'No log files.',
        'confirm_delete' => 'Are you sure you want to delete this log file?',
        'deleted'    => 'Log file deleted.',
    ],

    'admin_edit' => [
        'title'         => 'Edit Texts',
        'header'        => 'Page Header',
        'header_form'   => 'Form Header',
        'footer'        => 'Page Footer',
        'footer_form'   => 'Form Footer',
        'news'          => 'News',
        'faq'           => 'Help / FAQ',
        'payment_terms' => 'Payment Terms',
        'saved'         => 'File has been saved.',
        'error_save'    => 'Failed to save file.',
        'min_length'    => 'Files with content shorter than 15 characters are not displayed on the page.',
        'not_visible'   => 'not visible',
    ],

    'admin_service' => [
        'title'     => 'Service Orders',
    ],

    'payment' => [
        'pay'                => 'Pay',
        'pay_online'         => 'Pay online',
        'terms_title'        => 'Payment terms',
        'terms_intro'        => 'The online payment is processed by an external payment gateway. Please read its terms and conditions before continuing.',
        'terms_link'         => 'Gateway terms',
        'terms_checkbox'     => 'I have read and accept the payment gateway terms and conditions.',
        'terms_proceed'      => 'Proceed to payment',
        'choose_gateway'     => 'Choose payment method',
        'copy_account'       => 'Copy account number',
        'copied'             => 'Copied!',
        'copy_failed'        => 'Failed to copy',
        'processing'         => 'Processing payment...',
        'success_title'      => 'Payment accepted',
        'success_msg'        => 'Your payment has been registered. Confirmation may take a few minutes.',
        'pending_title'      => 'Awaiting confirmation',
        'pending_msg'        => 'Payment is being processed. Status will be updated automatically.',
        'error_title'        => 'Payment error',
        'error_msg'          => 'There was a problem processing your payment. Please try again or contact support.',
        'error_gateway'      => 'Invalid payment gateway.',
        'error_disabled'     => 'Payment gateway is disabled.',
        'error_amount'       => 'Invalid amount.',
        'error_invoice'      => 'Invalid invoice number.',
        'error_session'      => 'Session expired. Please log in again.',
        'error_init'         => 'Payment initialization error.',
        'error_config'       => 'Payment gateway is not configured.',
        'back_to_invoices'   => 'Back to invoices',
        'back_to_login'      => 'Go to login',
        'invoice_desc'       => 'Invoice :nr - client :id',
        'tpay'               => 'Tpay',
        'przelewy24'         => 'Przelewy24',
        'payu'               => 'PayU',
    ],

    'payment_admin' => [
        'title'              => 'Payment Gateways',
        'subtitle'           => 'Online payment gateway configuration',
        'enabled'            => 'Enabled',
        'disabled'           => 'Disabled',
        'test_mode'          => 'Test mode (sandbox)',
        'test_mode_on'       => 'Test mode enabled',
        'test_mode_off'      => 'Production mode',
        'merchant_id'        => 'Merchant ID',
        'security_code'      => 'Security code',
        'pos_id'             => 'Point of Sale ID (POS ID)',
        'crc_key'            => 'CRC key',
        'api_key'            => 'API key',
        'md5_key'            => 'MD5 key (second key)',
        'client_id'          => 'Client ID (OAuth)',
        'client_secret'      => 'Client Secret (OAuth)',
        'notification_url'   => 'Notification URL (IPN)',
        'return_url'         => 'Return URL',
        'description_template' => 'Payment description template',
        'description_help'   => 'Available variables: {NR_FAKTURY}, {CLIENT_ID}',
        'terms_url'          => 'Gateway terms URL',
        'terms_url_help'     => 'Terms URL shown to the customer for acceptance before payment. Empty = gateway official default.',
        'btn_save'           => 'Save settings',
        'saved'              => 'Settings have been saved.',
        'error_save'         => 'Failed to save settings.',
        'tab_tpay'           => 'Tpay',
        'tab_p24'            => 'Przelewy24',
        'tab_payu'           => 'PayU',
        'tab_history'        => 'History',
        'history_title'      => 'Online payment history',
        'history_date'       => 'Date',
        'history_gateway'    => 'Gateway',
        'history_client'     => 'Client',
        'history_invoice'    => 'Invoice',
        'history_amount'     => 'Amount',
        'history_status'     => 'Status',
        'history_empty'      => 'No registered payments.',
        'no_logs'            => 'No log files.',
        'status_completed'   => 'Completed',
        'status_pending'     => 'Pending',
        'status_failed'      => 'Failed',
        'urls_info'          => 'Enter full server URLs (e.g. https://your-domain.com/ibok5/)',
    ],

    'zmiana_hasla' => [
        'title'            => 'Change password',
        'current_password' => 'Current password',
        'new_password'     => 'New password',
        'confirm_password' => 'Confirm new password',
        'btn_change'       => 'Change password',
        'success'          => 'Password changed successfully.',
        'error_current'    => 'Current password is incorrect.',
        'error_mismatch'   => 'New passwords do not match.',
        'error_min_length' => 'New password must be at least :min characters.',
        'error_same'       => 'New password must be different from current.',
        'error_save'       => 'Error saving password.',
        'error_readonly'   => 'Password change is not available in this mode.',
        'help_content'     => 'Enter your current password for verification, then provide and confirm your new password. Minimum password length is 6 characters.',
    ],

    '2fa' => [
        'title'              => 'Two-Factor Authentication (2FA)',
        'status'             => '2FA Status',
        'enabled'            => 'Enabled',
        'disabled'           => 'Disabled',
        'enable'             => 'Enable 2FA',
        'disable'            => 'Disable 2FA',
        'setup_title'        => '2FA Setup',
        'setup_step1'        => '1. Install an authenticator app',
        'setup_step1_desc'   => 'Download Google Authenticator, Authy or any TOTP-compatible app on your phone.',
        'setup_step2'        => '2. Scan the QR code',
        'setup_step2_desc'   => 'Open the app and scan the QR code below, or enter the key manually.',
        'manual_key'         => 'Manual entry key',
        'setup_step3'        => '3. Enter verification code',
        'setup_step3_desc'   => 'Enter the 6-digit code from the app to confirm setup.',
        'enter_code'         => 'Code from app (6 digits)',
        'verify_and_enable'  => 'Verify and enable',
        'verify'             => 'Verify',
        'invalid_code'       => 'Invalid code. Please try again.',
        'enabled_success'    => '2FA has been enabled successfully.',
        'disabled_success'   => '2FA has been disabled.',
        'backup_codes_title' => 'Backup codes',
        'backup_codes_desc'  => 'Save these codes in a safe place. Each code can only be used once when you don\'t have access to your app.',
        'backup_codes_warn'  => 'These codes will not be shown again!',
        'copy_codes'         => 'Copy codes',
        'codes_remaining'    => 'Backup codes remaining: :count',
        'regenerate_codes'   => 'Regenerate backup codes',
        'codes_regenerated'  => 'New backup codes have been generated.',
        'confirm_disable'    => 'To disable 2FA, enter the code from your app or a backup code.',
        'or_backup_code'     => 'or backup code',
        'login_title'        => 'Two-Factor Verification',
        'login_desc'         => 'Enter the 6-digit code from your authenticator app or use a backup code.',
        'btn_verify'         => 'Verify',
        'error_required'     => 'Please enter a verification code.',
        'error_invalid'      => 'Invalid code. Please try again.',
        'error_timeout'      => '2FA verification time expired. Please log in again.',
        'security_note'      => '2FA adds an extra layer of protection to your account.',
        'created_at'         => 'Active since',
    ],

    'database' => [
        'menu_label'         => 'Database',
        'title'              => 'Database Configuration',
        'subtitle'           => 'MySQL/MariaDB Backend',
        'mode'               => 'Data Mode',
        'mode_vbk'           => 'VBK Files (default)',
        'mode_mysql'         => 'MySQL / MariaDB',
        'mode_desc_vbk'      => 'Data read from VBK files (PYXIS format). Default mode.',
        'mode_desc_mysql'    => 'Data read from MySQL/MariaDB database. Requires configuration and import.',
        'host'               => 'Server Host',
        'host_placeholder'   => 'e.g. localhost or 127.0.0.1',
        'port'               => 'Port',
        'db_name'            => 'Database Name',
        'db_name_placeholder'=> 'e.g. ibok5',
        'username'           => 'Username',
        'username_placeholder'=> 'e.g. ibok_user',
        'password'           => 'Password',
        'btn_save'           => 'Save Configuration',
        'btn_test'           => 'Test Connection',
        'test_success'       => 'Connection successful! Server: :version',
        'test_error'         => 'Connection error: :error',
        'saved'              => 'Database configuration has been saved.',
        'error_save'         => 'Failed to save configuration.',
        'status'             => 'Connection Status',
        'status_ok'          => 'Connected',
        'status_error'       => 'Not connected',
        'server_version'     => 'Server Version',
        'table_stats'        => 'Table Statistics',
        'table_name'         => 'Table',
        'table_rows'         => 'Rows',
        'no_tables'          => 'No ibok_* tables found. Run import.',
        'import_link'            => 'PYXIS Tables',
        'import_title'           => 'PYXIS Database',
        'import_subtitle_pyxis'  => 'PYXIS table statistics used by iBOK',
        'import_no_connection'   => 'No MySQL connection. Configure connection first.',
    ],

    'global_search' => [
        'placeholder'   => 'Search client, invoice, IP...',
        'no_results'    => 'No results',
        'clients'       => 'Clients',
        'invoices'      => 'Documents',
        'service'       => 'Service Orders',
        'infra'         => 'Infrastructure',
        'devices'       => 'Devices',
        'show_all'      => 'Show all results',
        'min_chars'     => 'Type at least 2 characters',
        'error'         => 'Search error',
    ],

    'theme' => [
        'title'       => 'Client panel theme',
        'description' => 'Choose the color scheme visible to clients',
        'default'     => 'Blue (default)',
        'emerald'     => 'Emerald',
        'violet'      => 'Violet',
        'rose'        => 'Rose',
        'amber'       => 'Amber',
        'slate'       => 'Slate',
        'ocean'       => 'Ocean',
        'crimson'     => 'Crimson',
        'forest'      => 'Forest',
        'royal'       => 'Royal',
        'saved'       => 'Theme saved',
    ],

    'smtp' => [
        'title'              => 'SMTP Configuration',
        'subtitle'           => 'Outgoing mail server settings',
        'enabled'            => 'SMTP enabled',
        'enabled_desc'       => 'When disabled, system uses native PHP mail() function',
        'host'               => 'SMTP Server',
        'host_placeholder'   => 'e.g. smtp.gmail.com',
        'port'               => 'Port',
        'encryption'         => 'Encryption',
        'encryption_none'    => 'None',
        'encryption_tls'     => 'STARTTLS (port 587)',
        'encryption_ssl'     => 'SSL/TLS (port 465)',
        'auth'               => 'Authentication',
        'auth_desc'          => 'Require login and password',
        'username'           => 'SMTP Login',
        'username_placeholder' => 'e.g. your@email.com',
        'password'           => 'SMTP Password',
        'from_email'         => 'Sender address (From)',
        'from_email_placeholder' => 'e.g. ibok@your-company.com',
        'from_email_desc'    => 'Address from which emails will be sent',
        'from_name'          => 'Sender name',
        'from_name_placeholder' => 'e.g. i-BOK Customer Panel',
        'btn_save'           => 'Save settings',
        'btn_test'           => 'Send test email',
        'btn_test_connection'=> 'Test connection',
        'test_email'         => 'Test address',
        'test_email_placeholder' => 'Enter e-mail address for test',
        'saved'              => 'SMTP settings have been saved.',
        'error_save'         => 'Failed to save settings.',
        'test_success'       => 'Test email sent successfully!',
        'test_error'         => 'Send error: :error',
        'test_conn_success'  => 'SMTP server connection successful!',
        'test_conn_error'    => 'Connection error: :error',
        'test_email_required'=> 'Enter an e-mail address for the test.',
        'status'             => 'Status',
        'status_active'      => 'SMTP active',
        'status_inactive'    => 'Using PHP mail()',
        'info_box'           => 'SMTP configuration enables professional email delivery from the panel (contact form, notifications). Without SMTP, messages may end up in spam.',
        'menu_label'         => 'SMTP',
    ],

    'tariff_change' => [
        'menu_label'              => 'Change tariff',
        'menu_label_short'        => 'Tariffs',
        'title'                   => 'Change tariff',
        'current_tariff'          => 'Current tariff',
        'available_offers'        => 'Available offers',
        'btn_select'              => 'Select',
        'success'                 => 'Your tariff change request has been submitted. We will contact you to confirm.',
        'not_available'           => 'Tariff change is currently unavailable.',
        'error_invalid_offer'     => 'Invalid offer.',
        'error_send'              => 'Failed to send request. Please try again or contact us.',
        'prefill_message'         => "Hello,\n\nI would like to request a tariff change.\n\nClient: :name (ID: :client_id)\nCurrent tariff: :current\nRequested tariff: :requested\n\nBest regards,\n:name",
        'offer_name'              => 'Tariff name',
        'offer_dl'                => 'Download',
        'offer_ul'                => 'Upload',
        'offer_price'             => 'Price',
        'offer_description'       => 'Description',
        'admin_menu_label'        => 'Tariff offers',
        'admin_title'             => 'Tariff offers for clients',
        'admin_settings'          => 'Settings',
        'admin_enabled'           => 'Enable tariff change requests',
        'admin_enabled_desc'      => 'Clients will see the "Change tariff" option in the panel menu.',
        'admin_excluded'          => 'Excluded clients',
        'admin_excluded_placeholder' => 'e.g. 123',
        'admin_excluded_desc'     => 'Client IDs, one per line. These clients will not see the tariff change option.',
        'admin_offers'            => 'Tariff offers',
        'admin_add_offer'         => 'Add offer',
        'admin_no_offers'         => 'No offers defined. Click "Add offer" above.',
        'admin_saved'             => 'Tariff offer settings have been saved.',
    ],

    'contracts' => [
        'title'                  => 'Contracts',
        'admin_title'            => 'Contracts',
        'menu_label'             => 'Contracts',
        'admin_menu_label'       => 'Contracts',
        'show_in_menu'           => 'Show in client panel menu',
        'btn_sign'               => 'Sign contract',
        'btn_download_pdf'       => 'Download document (PDF)',
        'btn_details'            => 'Details',
        'create_client_id'       => 'Client ID',
        'create_client_name'     => 'Client name',
        'contract_number'        => 'Contract number',
        'contract_type'          => 'Type',
        'contract_date_from'     => 'Date from',
        'contract_date_to'       => 'Date to',
        'type_umowa'             => 'Contract',
        'type_aneks'             => 'Annex',
        'type_pzo'               => 'Handover protocol',
        'type_info'              => 'Information',
        'consent_1'              => 'I declare that I have read the document',
        'consent_2'              => 'I accept the contract terms and the terms of service',
        'status_pending'         => 'Pending',
        'status_signed'          => 'Signed',
        'signed_at_label'        => 'Signed',
        'signed_ip_label'        => 'IP',
        'signed_admin_title'     => 'Contracts signed via i-BOK',
        'sign_info_download'     => 'By downloading the document you confirm that you have read its contents.',
        'sign_locked_msg'        => 'Please download and read the document first.',
        'sign_success'           => 'Contract has been signed successfully.',
        'pdf_downloaded'         => 'Downloaded',
        'signed_title'           => 'Signed contracts',
        'alert_pending'          => 'You have :count contracts awaiting signature.',
        'view_title'             => 'Contract details',
        'no_contracts'           => 'No contracts.',
        'no_pending'             => 'No contracts awaiting signature.',
        'error_not_found'        => 'Contract not found.',
        'error_already_signed'   => 'This contract has already been signed.',
        'error_invalid_client'   => 'Invalid client ID.',
        'error_consents_required'=> 'You must accept all required consents.',
        'total_contracts'        => 'Total',
        'pending_contracts'      => 'Pending',
        'status_inactive'        => 'Inactive',
    ],

    'license' => [
        'no_license'      => 'Login is currently unavailable. Please contact your service provider.',
        'client_blocked'  => 'Login is currently unavailable. Please contact your service provider.',
        'modal_title'     => 'Missing i-BOK License',
        'modal_body'      => 'No valid i-BOK license detected. Client panel is disabled. Contact your software provider to activate the license.',
        'btn_understood'  => 'Understood',
    ],

    'license_info' => [
        'title'           => 'i-BOK License',
        'key'             => 'License key',
        'name'            => 'Name',
        'date'            => 'Issue date',
        'valid_until'     => 'Valid until',
        'company'         => 'Company',
        'info'            => 'Information',
        'status_valid'    => 'Active',
        'status_invalid'  => 'Inactive',
        'no_data'         => 'No license data found in database (table Licencja, L_ID=J).',
        'invalid_warning' => 'License key is invalid or missing. Client panel is blocked. Contact your software provider.',
    ],

    'admin_dashboard' => [
        'failed_logins'         => 'Failed Logins',
        'failed_last_24h'       => 'in last 24h',
        'col_time'              => 'Date/Time',
        'col_type'              => 'Type',
        'col_login'             => 'Login',
        'col_ip'                => 'IP Address',
        'col_reason'            => 'Reason',
        'reason_bad_password'   => 'Bad password',
        'reason_not_found'      => 'Not found',
        'reason_rate_limit'     => 'Too many attempts',
        'type_client'           => 'Client',
        'type_admin'            => 'Admin',
        'view_all_logs'         => 'View all logs',
        'no_failed_logins'      => 'No failed login attempts',
        'active_sessions'       => 'Active Sessions',
        'col_user'              => 'User',
        'col_last_active'       => 'Last Activity',
        'col_browser'           => 'Browser',
        'btn_force_logout'      => 'Force Logout',
        'no_active_sessions'    => 'No active sessions',
        'session_terminated'    => 'Session terminated',
        'session_terminate_error' => 'Failed to terminate session',
    ],

    'login_notify' => [
        'subject'           => 'i-BOK: Failed login attempt',
        'body_type'         => 'Type: :type',
        'body_login'        => 'Login: :login',
        'body_ip'           => 'IP: :ip',
        'body_time'         => 'Time: :time',
        'body_reason'       => 'Reason: :reason',
        'settings_title'    => 'Login Notifications',
        'enabled'           => 'Enabled',
        'email_address'     => 'Email address',
        'notify_client'     => 'Failed client logins',
        'notify_admin'      => 'Failed admin logins',
        'min_interval'      => 'Min. interval between emails (sec.)',
        'saved'             => 'Settings saved',
    ],

    'access_control' => [
        'title'               => 'IP Access Control',
        'menu_label'          => 'Access Control',
        'client_panel'        => 'Client Panel',
        'admin_panel'         => 'Admin Panel',
        'restrictions_enabled'=> 'Restrictions enabled',
        'allowed_ips'         => 'Allowed IPs / subnets',
        'placeholder'         => 'e.g. 192.168.1.0/24 or 10.0.0.5',
        'one_per_line'        => 'One IP address or CIDR per line',
        'current_ip'          => 'Your current IP address',
        'save_success'        => 'Access control settings saved.',
        'ip_denied'           => 'Access from this IP address is denied.',
        'emergency_active'    => 'Emergency access active! Admin restrictions disabled. Remove cfg/.emergency_access file to disable.',
        'emergency_title'     => 'Emergency Access',
        'emergency_desc'      => 'If you lock yourself out, create this file on the server — admin restrictions will be disabled:',
        'emergency_remove'    => 'To disable emergency access, remove the file:',
    ],

    // =========================================================================
    // Tooltips and help sections — client panel
    // =========================================================================
    'help' => [
        'show_help'                  => 'Show help',

        // dashboard.php
        'dashboard_section_title'    => 'How to read the dashboard',
        'dashboard_section_content'  => '<ul>'
            . '<li><strong>Balance</strong> — difference between payments and charges. Positive = debt, negative = overpayment.</li>'
            . '<li><strong>Unsettled invoices</strong> — documents without full payment.</li>'
            . '<li><strong>Colors:</strong> green = OK, yellow = attention, red = debt or overdue.</li>'
            . '<li><strong>Progress bar</strong> near payment — time visualization to due date (30 days = 100%).</li>'
            . '</ul>',
        'tooltip_next_payment'       => 'Number of days until the next payment due date',
        'tooltip_balance'            => 'Difference between payments and charges',
        'tooltip_progress_bar'       => 'Time visualization to due date (30 days = 100%)',
        'tooltip_countdown'          => 'Real-time countdown to payment due date',
        'tooltip_unsettled'          => 'Invoices without full payment',
        'tooltip_account_number'     => 'Bank account number for transfers',

        // faktury.php
        'faktury_section_title'      => 'Document information',
        'faktury_section_content'    => '<ul>'
            . '<li><strong>FV</strong> — VAT invoice</li>'
            . '<li><strong>FVK</strong> — invoice correction</li>'
            . '<li><strong>PZ</strong> — payment order</li>'
            . '<li>To download an invoice, click the <strong>PDF</strong> button in the document row.</li>'
            . '<li>If PDF is grayed out — the file is not yet available.</li>'
            . '</ul>',
        'tooltip_status'             => 'SETTLED = paid, UNSETTLED = unpaid, PARTIALLY = partial payment',
        'tooltip_due_date'           => 'Date by which payment should be made',
        'tooltip_amount_gross'       => 'Amount to pay including VAT',
        'tooltip_download_pdf'       => 'Download document in PDF format',

        // platnosci.php
        'platnosci_section_title'    => 'Payment information',
        'platnosci_section_content'  => '<ul>'
            . '<li>Payments are imported from the billing system.</li>'
            . '<li>If a payment is missing — contact support via the contact form.</li>'
            . '</ul>',
        'tooltip_payment_type'       => 'Payment method: transfer, cash, compensation, etc.',
        'tooltip_payment_amount'     => 'Payment amount',
        'tooltip_payment_doc'        => 'Payment document number',

        // umowy.php
        'umowy_section_title'        => 'Contract information',
        'umowy_section_content'      => '<ul>'
            . '<li><strong>Pending</strong> — contracts requiring your signature. Download PDF, review, then check consents and sign.</li>'
            . '<li><strong>Signed</strong> — archive of signed contracts with PDF re-download option.</li>'
            . '<li>Changing contract terms requires an annex.</li>'
            . '</ul>',
        'tooltip_contract_status'    => 'Pending = to be signed, Signed = active',
        'tooltip_contract_dates'     => 'Contract validity period',
        'tooltip_contract_pdf'       => 'Download contract in PDF format',

        // zmiana_taryfy.php
        'zmiana_section_title'       => 'Tariff change information',
        'zmiana_section_content'     => '<ul>'
            . '<li>Tariff change is a <strong>request</strong> — it does not take effect immediately.</li>'
            . '<li>After selecting a tariff, you will be redirected to the contact form.</li>'
            . '<li>The administrator will review and apply the change at the agreed time.</li>'
            . '</ul>',
        'tooltip_current_tariff'     => 'Your current internet package',
        'tooltip_new_tariff'         => 'Select the package you want to switch to',
        'tooltip_tariff_submit'      => 'Submit a request — change requires administrator approval',

        // kontakt.php
        'kontakt_section_title'      => 'Contact form',
        'kontakt_section_content'    => '<ul>'
            . '<li>The message will be sent to Customer Service.</li>'
            . '<li>Response time depends on the topic of the inquiry.</li>'
            . '</ul>',
        'tooltip_subject'            => 'Brief description of the matter',
        'tooltip_message'            => 'Detailed description of the problem or question',

        // 2fa.php
        '2fa_section_title'          => 'Two-Factor Authentication (2FA)',
        '2fa_section_content'        => '<ul>'
            . '<li><strong>2FA</strong> adds extra login security using a code from a mobile app.</li>'
            . '<li>Install an app: Google Authenticator, Authy or Microsoft Authenticator.</li>'
            . '<li>Scan the QR code in the app and enter the generated code to activate 2FA.</li>'
            . '<li>Save your <strong>backup codes</strong> — useful if you lose your phone.</li>'
            . '</ul>',
        'tooltip_2fa_toggle'         => 'Enable additional login security with an app code',
        'tooltip_2fa_qr'             => 'Scan this code in Google Authenticator or Authy app',
        'tooltip_2fa_backup'         => 'One-time codes in case you lose your phone',

        // info.php
        'info_section_title'         => 'Account information',
        'info_section_content'       => '<ul>'
            . '<li>Data displayed on this page comes from your contract.</li>'
            . '<li>To update contact details, click the "Report outdated data" button.</li>'
            . '</ul>',
        'tooltip_client_data'        => 'Your data from the contract',
        'tooltip_tariff_info'        => 'Current internet speed',

        // serwis.php
        'serwis_section_title'       => 'Service orders',
        'serwis_section_content'     => '<ul>'
            . '<li><strong>Open</strong> — orders in progress.</li>'
            . '<li><strong>Closed</strong> — completed orders.</li>'
            . '<li>To report a new technical issue, use the contact form.</li>'
            . '</ul>',
        'tooltip_order_status'       => 'Open = in progress, Closed = completed',
        'tooltip_new_order'          => 'Report a technical issue via the contact form',

        // korekty.php
        'korekty_section_title'      => 'Correction information',
        'korekty_section_content'    => '<ul>'
            . '<li><strong>Correction</strong> is a document that changes the invoice amount.</li>'
            . '<li>Negative amount = decrease, positive amount = increase.</li>'
            . '<li>Corrections are issued e.g. after tariff change or complaint.</li>'
            . '</ul>',
        'tooltip_correction_doc'     => 'Invoice to which the correction was issued',
        'tooltip_correction_amount'  => 'Decrease amount (negative) or increase amount',
    ],

    // =========================================================================
    // Tooltips and help sections — admin panel
    // =========================================================================
    'help_admin' => [
        // dashboard.php
        'dashboard_section_title'    => 'Admin dashboard',
        'dashboard_section_content'  => '<ul>'
            . '<li><strong>Active sessions</strong> — currently logged-in users.</li>'
            . '<li><strong>Failed logins</strong> — attempts from the last 24 hours (brute-force detection).</li>'
            . '<li>You can force logout any session with the "Logout" button.</li>'
            . '</ul>',
        'tooltip_active_sessions'    => 'Currently logged-in users',
        'tooltip_failed_logins'      => 'Login attempts from the last 24 hours',
        'tooltip_force_logout'       => 'Force end this user\'s session',
        'tooltip_browser'            => 'Detected from User-Agent',

        // klienci.php
        'klienci_section_title'      => 'Client list',
        'klienci_section_content'    => '<ul>'
            . '<li>Client list is synchronized with the billing system.</li>'
            . '<li>Click a client name to see details.</li>'
            . '<li>Colors: green = active, red = blocked or with debt.</li>'
            . '</ul>',
        'tooltip_client_id'          => 'Client number from the billing system',
        'tooltip_client_balance'     => 'Client balance (+ overpayment, - debt)',
        'tooltip_client_filter'      => 'Filter clients by status: active, blocked',

        // klient_info.php
        'klient_section_title'       => 'Client card',
        'klient_section_content'     => '<ul>'
            . '<li>Card contains financial, contact and technical client data.</li>'
            . '<li>Data comes from the billing system and is synchronized automatically.</li>'
            . '</ul>',
        'tooltip_client_nr'          => 'Number from the billing system',
        'tooltip_client_nip'         => 'Tax Identification Number',
        'tooltip_client_saldo'       => 'Balance of payments and charges',
        'tooltip_client_activation'  => 'Service activation date',

        // smtp.php
        'smtp_section_title'         => 'SMTP mail configuration',
        'smtp_section_content'       => '<ul>'
            . '<li><strong>Gmail:</strong> use "App Passwords" (Google Account → Security → App Passwords).</li>'
            . '<li><strong>Own server:</strong> port 587 + TLS (recommended) or 465 + SSL.</li>'
            . '<li>"Test" button sends a test message to the specified address.</li>'
            . '</ul>',
        'tooltip_smtp_host'          => 'Mail server address (e.g. smtp.gmail.com)',
        'tooltip_smtp_port'          => '465 = SSL, 587 = TLS, 25 = no encryption',
        'tooltip_smtp_encryption'    => 'TLS (recommended) or SSL',
        'tooltip_login_notify_interval' => 'Protection against email flood during brute-force attack',

        // sms.php (admin)
        'sms_section_title'          => 'SMS Gateways',
        'wyslij_sms_section_content' => '<ul>'
            . '<li>Select clients from the list and enter a message to send SMS.</li>'
            . '<li><strong>"Only with phone" filter</strong> — shows only clients with a phone number.</li>'
            . '<li><strong>"With debt" filter</strong> — shows clients with unpaid invoices.</li>'
            . '<li><strong>Additional number</strong> — allows sending SMS to a manually entered number.</li>'
            . '<li>"Select with phone" button selects all clients with a phone number (across all pages).</li>'
            . '<li>The <strong>History</strong> tab contains a log of the last 500 sends.</li>'
            . '<li>SMS gateway is configured in <strong>Settings → SMS Gateways</strong>.</li>'
            . '</ul>',
        'sms_section_content'        => '<ul>'
            . '<li>Select the active SMS gateway in general settings.</li>'
            . '<li><strong>SMSAPI.pl</strong> — API token from customer panel (OAuth Bearer).</li>'
            . '<li><strong>SerwerSMS.pl</strong> — username and password from customer panel.</li>'
            . '<li><strong>SMSPlanet.pl</strong> — API token from customer panel (Bearer).</li>'
            . '<li><strong>Sender</strong> — name/number shown as sender (requires activation by gateway operator).</li>'
            . '<li><strong>Test mode</strong> — SMS messages are logged but not sent.</li>'
            . '<li>"Check balance" button verifies account balance at the gateway.</li>'
            . '<li>Use the test panel on the right to send a test SMS.</li>'
            . '</ul>',

        // platnosci.php
        'platnosci_section_title'    => 'Payment gateways',
        'platnosci_section_content'  => '<ul>'
            . '<li>Configure the gateway (Tpay, Przelewy24 or PayU) with data from the gateway panel.</li>'
            . '<li><strong>Sandbox</strong> = test mode, payments are not processed.</li>'
            . '<li>After configuration, switch to production mode and test a payment.</li>'
            . '<li>Client is automatically unblocked after paying an invoice.</li>'
            . '</ul>',
        'tooltip_api_key'            => 'Key from the payment gateway panel',
        'tooltip_merchant_id'        => 'Account identifier in the gateway',
        'tooltip_sandbox'            => 'Test mode — payments are not processed',
        'tooltip_callback_url'       => 'Address where the gateway sends confirmations (set in gateway panel)',

        // access_control.php
        'access_section_title'       => 'Access control',
        'access_section_content'     => '<ul>'
            . '<li>Restrict panel access by IP address.</li>'
            . '<li>Enter allowed IP addresses — one per line, supported formats: IP, CIDR.</li>'
            . '<li>Emergency access allows you to unblock yourself after accidental lockout.</li>'
            . '</ul>',
        'tooltip_admin_login'        => 'Username for login',
        'tooltip_admin_role'         => 'Permissions: admin = full, operator = limited',

        // database.php
        'database_section_title'     => 'Database',
        'database_section_content'   => '<ul>'
            . '<li>Connection to MySQL/MariaDB billing system database.</li>'
            . '<li>Synchronization downloads client, invoice and payment data.</li>'
            . '<li>"Test" button checks the connection without saving changes.</li>'
            . '</ul>',
        'tooltip_db_sync'            => 'Download current client database from the billing system',
        'tooltip_db_last_sync'       => 'Date of last data download',

        // tariff_offers.php
        'tariff_section_title'       => 'Tariff offers',
        'tariff_section_content'     => '<ul>'
            . '<li>Tariffs displayed to clients on the "Change tariff" page.</li>'
            . '<li>Client can select a tariff and submit a request (does not change automatically).</li>'
            . '<li>Add speeds and price — this information is visible to clients.</li>'
            . '</ul>',
        'tooltip_tariff_name'        => 'Name visible to clients',
        'tooltip_tariff_speed'       => 'Download/Upload in Mbps',
        'tooltip_tariff_price'       => 'Monthly gross fee',
        'tooltip_tariff_active'      => 'Whether the tariff is available for clients to select',

        // backup_cfg.php
        'backup_section_title'       => 'Configuration backup',
        'backup_section_content'     => '<ul>'
            . '<li><strong>Export</strong> — downloads an archive with panel configuration (cfg, lang, admin).</li>'
            . '<li><strong>Import</strong> — restores configuration from a previously downloaded archive.</li>'
            . '<li>Backup does not include client data or database — only panel settings.</li>'
            . '</ul>',
        'tooltip_backup_dirs'        => 'Which directories will be included in the backup',
        'tooltip_backup_exclusions'  => 'Files/directories excluded from backup',
        'tooltip_backup_schedule'    => 'Frequency of automatic backup creation',

        // contracts.php
        'contracts_section_title'    => 'Contracts',
        'contracts_section_content'  => '<ul>'
            . '<li>Contracts are imported from the billing system (read only).</li>'
            . '<li>Status: Signed / Pending / Inactive.</li>'
            . '</ul>',
        'tooltip_contract_status_admin' => 'Active / Suspended / Terminated',
        'tooltip_contract_signed'    => 'Date the contract was accepted by the client',

        // edycja.php
        'edycja_section_title'       => 'File editor',
        'edycja_section_content'     => '<ul>'
            . '<li>Text files displayed to clients (news, footer, FAQ, etc.).</li>'
            . '<li>File is visible on the client page when its content has min. 15 characters.</li>'
            . '<li><strong>Warning:</strong> incorrect editing may break page display.</li>'
            . '</ul>',
        'tooltip_edit_filename'      => 'Configuration or template file',
        'tooltip_edit_save'          => 'Will overwrite the file on the server',

        // logi.php
        'logi_section_title'         => 'System logs',
        'logi_section_content'       => '<ul>'
            . '<li>Logs record panel operations: logins, changes, errors.</li>'
            . '<li>Click "View" to see file contents.</li>'
            . '</ul>',
        'tooltip_log_level'          => 'info = normal, warning = attention, error = error',
        'tooltip_log_filter'         => 'Search by content, IP or date',

        // serwis.php
        'serwis_section_title'       => 'Service orders',
        'serwis_section_content'     => '<ul>'
            . '<li>Client service orders from the billing system.</li>'
            . '<li>Tabs: open (in progress), closed (completed), all.</li>'
            . '</ul>',
        'tooltip_order_status_admin' => 'Open = in progress, Closed = completed',
        'tooltip_order_priority'     => 'Affects processing order',

        // infra.php
        'infra_section_title'        => 'Network infrastructure',
        'infra_section_content'      => '<ul>'
            . '<li>List of network devices from the billing system (routers, switches, servers).</li>'
            . '<li>Data is synchronized automatically.</li>'
            . '</ul>',
        'tooltip_device_status'      => 'Online (green) / Offline (red)',
        'tooltip_device_uptime'      => 'Time since last restart',

        // urzadzenia.php
        'urzadzenia_section_title'   => 'Client devices',
        'urzadzenia_section_content' => '<ul>'
            . '<li>List of devices (routers, ONTs) assigned to clients.</li>'
            . '<li>Data: IP, MAC, type, model, connection point.</li>'
            . '</ul>',
        'tooltip_device_type'        => 'Router / Switch / AP / ONT',
        'tooltip_device_method'      => 'Monitoring method: Ping / SNMP / HTTP',

        // 2fa.php
        '2fa_section_title'          => '2FA management',
        '2fa_section_content'        => '<ul>'
            . '<li>Manage two-factor authentication for the administrator account.</li>'
            . '<li>If you lose your phone — use backup codes or ask another admin for a reset.</li>'
            . '</ul>',
        'tooltip_2fa_status'         => 'Enabled/disabled for this account',
        'tooltip_2fa_reset'          => 'Disable 2FA for selected user (e.g. if phone was lost)',

        // db_import.php
        'import_section_title'       => 'Database import',
        'import_section_content'     => '<ul>'
            . '<li>Overview of tables and views in the PYXIS billing system database.</li>'
            . '<li>Client data is imported automatically during synchronization.</li>'
            . '</ul>',
        'tooltip_import_file'        => 'CSV or JSON file with client data',
        'tooltip_import_mode'        => 'Overwrite / Append to existing',

        // search.php
        'tooltip_search'             => 'Search client by name, tax ID, address, number',
    ],

    'session' => [
        'expire_title'   => 'Session expiring',
        'expire_message' => 'Your session is about to expire. Do you want to extend it?',
        'btn_extend'     => 'Extend session',
    ],

    // =========================================================================
    // ANALYTICS - Super admin analytics (hidden page)
    // =========================================================================
    'analytics' => [
        'menu_label'         => 'Analytics',
        'title'              => 'Analytics',
        'loading'            => 'Loading analytics data...',
        'access_denied'      => 'Access Denied',
        'access_denied_msg'  => 'Invalid or missing access token.',
        'token_generated'    => 'Access token has been generated. Remember it — it will not be shown again:',
        'token_bookmark'     => 'Bookmark this link for quick access:',
        'token_deleted'      => 'Token has been deleted',
        'token_deleted_msg'  => 'A new token will be generated on your next visit to the analytics page.',
        'token_delete_btn'   => 'Delete token',
        'token_delete_confirm' => 'Delete access token? A new one will be generated on next visit.',

        // KPI cards
        'kpi_mrr'            => 'MRR (monthly revenue)',
        'kpi_total_debt'     => 'Total debt',
        'kpi_collection'     => 'Collection %',
        'kpi_active_clients' => 'Active clients',
        'kpi_avg_pay_time'   => 'Avg. payment time',
        'kpi_open_tickets'   => 'Open tickets',
        'kpi_days'           => 'days',
        'kpi_ltv'            => 'Avg. client LTV',
        'kpi_churn'          => 'Churn (monthly)',
        'kpi_at_risk'        => 'At risk',
        'kpi_overpayments'   => 'Overpayments',

        // Tab headers
        'tab_overview'       => 'Overview',
        'tab_finance'        => 'Finance',
        'tab_clients'        => 'Clients',
        'tab_operations'     => 'Operations',
        'tab_risk'           => 'Risk',

        // Section headers
        'section_finance'    => 'Finance',
        'section_clients'    => 'Clients',
        'section_operations' => 'Operations',
        'section_risk'       => 'Risk analysis',

        // Finance charts
        'chart_revenue_vs_payments' => 'Revenue vs payments',
        'chart_debt_trend'          => 'Debt trend',
        'chart_collection_rate'     => 'Collection efficiency',
        'chart_invoice_status'      => 'Invoice status',
        'chart_payment_methods'     => 'Payment methods',
        'chart_top_debtors'         => 'Top 10 debtors',
        'chart_debt_aging'          => 'Debt aging',
        'chart_corrections'         => 'Invoice corrections',
        'chart_revenue_forecast'    => 'Revenue forecast',
        'chart_payment_seasonality' => 'Payment seasonality',

        // Client charts
        'chart_client_growth'       => 'Client base growth',
        'chart_tariff_dist'         => 'Tariff distribution',
        'chart_geo_dist'            => 'Geographic distribution',
        'chart_expiring_contracts'  => 'Expiring contracts',
        'chart_active_inactive'     => 'Active vs inactive',
        'chart_retention'           => 'Client retention',
        'chart_client_type'         => 'Entity type',
        'chart_churn_rate'          => 'Churn rate',
        'chart_overpayments'        => 'Overpayment distribution',
        'chart_contract_duration'   => 'Contract duration',
        'chart_ltv'                 => 'Lifetime Value',

        // Operational charts
        'chart_service_orders'      => 'Service orders',
        'chart_login_activity'      => 'Login activity',
        'chart_failed_logins'       => 'Failed logins',
        'chart_service_avg_time'    => 'Avg. ticket resolution time',
        'chart_service_categories'  => 'Tickets by category',
        'chart_login_hours'         => 'Activity by hour',

        // Risk charts
        'chart_at_risk'             => 'At-risk clients',
        'chart_client_scoring'      => 'Client scoring',

        // Labels / legends
        'label_invoiced'     => 'Invoiced',
        'label_paid'         => 'Paid',
        'label_debt'         => 'Debt',
        'label_rate'         => 'Rate (%)',
        'label_paid_full'    => 'Paid in full',
        'label_paid_partial' => 'Partially paid',
        'label_unpaid'       => 'Unpaid',
        'label_new_clients'  => 'New clients',
        'label_active'       => 'Active',
        'label_inactive'     => 'Inactive',
        'label_open'         => 'Open',
        'label_closed'       => 'Closed',
        'label_logins'       => 'Logins',
        'label_failed'       => 'Failed',
        'label_contracts'    => 'Contracts',
        'label_other'        => 'Other',
        'label_no_data'      => 'No data',
        'label_amount'       => 'Amount',
        'label_count'        => 'Count',
        'label_percent'      => 'Percent (%)',
        'label_forecast'     => 'Forecast',
        'label_actual'       => 'Actual',
        'label_corrections'  => 'Corrections',
        'label_payments_count' => 'Payment count',
        'label_day_of_month' => 'Day of month',
        'label_years'        => 'Years',
        'label_retention_pct' => 'Retention (%)',
        'label_individuals'  => 'Individuals',
        'label_companies'    => 'Companies',
        'label_churn_pct'    => 'Churn (%)',
        'label_overpayment'  => 'Overpayment',
        'label_clients_count' => 'Client count',
        'label_months'       => 'Months',
        'label_avg_days'     => 'Avg. days',
        'label_hour'         => 'Hour',
        'label_debt_and_expiring' => 'In debt + contract expiring',
        'label_client_age_years'  => 'Client age (years)',
        'label_debt_amount'       => 'Debt amount',
        'label_0_30'         => '0-30 days',
        'label_31_60'        => '31-60 days',
        'label_61_90'        => '61-90 days',
        'label_90_plus'      => '90+ days',
        'label_indefinite'   => 'Indefinite',
        'label_up_to_12m'    => 'Up to 12 mo.',
        'label_12_24m'       => '12-24 mo.',
        'label_24_plus'      => '24+ mo.',
        'risk_desc'          => 'Clients with debt and contracts expiring within 90 days',
        'scoring_desc'       => 'X axis = client age, Y axis = debt, size = amount',

        // New tab
        'tab_security'              => 'Security',

        // New chart titles (batch 2)
        'chart_revenue_by_tariff'   => 'Revenue by tariff',
        'chart_avg_invoice'         => 'Avg. invoice value',
        'chart_payment_time'        => 'Payment time by month',
        'chart_arpu'                => 'ARPU (revenue per client)',
        'chart_cashflow'            => 'Cumulative cash flow',
        'chart_tenure_dist'         => 'Client tenure',
        'chart_contract_status'     => 'Contract status',
        'chart_registration_heatmap' => 'Registration seasonality',
        'chart_top_revenue'         => 'Top 10 by revenue',
        'chart_cumulative_clients'  => 'Client base trend',
        'chart_tickets_priority'    => 'Tickets by resolution time',
        'chart_tickets_weekday'     => 'Tickets by weekday',
        'chart_admin_sessions'      => 'Admin sessions',
        'chart_blacklist_summary'   => 'Blacklist summary',
        'chart_geoblock_countries'  => 'Geographic blocks',
        'chart_monit_status'        => 'Monitoring status',

        // New KPIs
        'kpi_no_contract'           => 'No active contract',
        'kpi_blocked_ips'           => 'Blocked IPs',
        'kpi_blocked_countries'     => 'Blocked countries',
        'kpi_monitored_devices'     => 'Monitored devices',

        // New labels
        'label_avg_value'           => 'Avg. value',
        'label_arpu_value'          => 'ARPU',
        'label_cashflow_value'      => 'Cash flow',
        'label_fast_resolve'        => 'Fast (<3 days)',
        'label_normal_resolve'      => 'Normal (3-14 days)',
        'label_slow_resolve'        => 'Long (>14 days)',
        'label_tenure_lt1'          => '< 1 year',
        'label_tenure_1_3'          => '1-3 years',
        'label_tenure_3_5'          => '3-5 years',
        'label_tenure_5_10'         => '5-10 years',
        'label_tenure_10plus'       => '10+ years',
        'label_contract_active'     => 'Active',
        'label_contract_expiring'   => 'Expiring (<90 days)',
        'label_contract_expired'    => 'Expired',
        'label_contract_indefinite' => 'Indefinite',
        'label_manual_entries'      => 'Manual entries',
        'label_devices_online'      => 'Online',
        'label_devices_offline'     => 'Offline',
        'label_devices_unknown'     => 'Unknown',
        'label_unique_admins'       => 'Unique admins',
        'label_total_clients'       => 'Total clients',
        'label_blocked_cidrs'       => 'Blocked CIDRs',
        'label_revenue'             => 'Revenue',
        'label_payment_days'        => 'Days to pay',
        'label_weekdays_short'      => 'Mon,Tue,Wed,Thu,Fri,Sat,Sun',
        'label_months_short'        => 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec',
        'label_feeds_active'        => 'Active feeds',
        'security_no_data'          => 'No data from main admin panel.',

        // Help / legend
        'help_btn'           => 'Chart legend',
        'help_title'         => 'Charts and indicators description',
        'help_section_kpi'   => 'KPI Indicators',
        'help_section_finance' => 'Finance',
        'help_section_clients' => 'Clients',
        'help_section_operations' => 'Operations',
        'help_section_risk'  => 'Risk',

        'help_kpi_mrr'           => 'Monthly Recurring Revenue — total invoices from the last full month.',
        'help_kpi_total_debt'    => 'Total overdue payments across all clients.',
        'help_kpi_collection'    => 'Collection rate — ratio of paid to invoiced amounts in the last month.',
        'help_kpi_active_clients' => 'Number of active clients relative to total registered.',
        'help_kpi_avg_pay_time'  => 'Average number of days from invoice issuance to payment receipt (last 6 months).',
        'help_kpi_open_tickets'  => 'Number of open (unresolved) service tickets.',
        'help_kpi_ltv'           => 'Average client Lifetime Value — total revenue over the entire relationship.',
        'help_kpi_churn'         => 'Monthly client loss rate — percentage of clients whose contracts expired last month.',
        'help_kpi_at_risk'       => 'Number of clients with debt whose contracts expire within 90 days.',
        'help_kpi_overpayments'  => 'Total client overpayments (positive balances).',

        'help_chart_revenue_vs_payments' => 'Comparison of invoiced vs paid amounts monthly (12 months). Discrepancy indicates payment delays.',
        'help_chart_revenue_forecast'    => 'Revenue forecast for 3 months ahead based on linear trend from the last 12 months. Dashed line = forecast.',
        'help_chart_debt_trend'          => 'Monthly total debt trend. Rising trend indicates worsening collectability.',
        'help_chart_collection_rate'     => 'Percentage of settled amounts vs invoiced. 100% means full collection.',
        'help_chart_invoice_status'      => 'Invoice status distribution (last 12 months): fully paid, partially paid, unpaid.',
        'help_chart_debt_aging'          => 'Debt age structure: 0-30 days (fresh), 31-60, 61-90, over 90 days (hard to recover).',
        'help_chart_payment_methods'     => 'Share of each payment method in total payments (transfer, cash, card, etc.).',
        'help_chart_payment_seasonality' => 'Payment distribution by day of month. Helps determine when clients usually pay.',
        'help_chart_top_debtors'         => 'Top 10 clients with highest debts (amounts on X axis).',
        'help_chart_corrections'         => 'Number of invoice corrections issued monthly.',

        'help_chart_client_growth'       => 'Number of new clients added each month (by contract start date).',
        'help_chart_retention'           => 'Percentage of clients who remained active compared to previous year. 100% = no client loss.',
        'help_chart_tariff_dist'         => 'Client distribution by tariff/speed plan.',
        'help_chart_client_type'         => 'Ratio of individual clients (natural persons) to companies (with VAT ID).',
        'help_chart_geo_dist'            => 'Top 15 cities by client count.',
        'help_chart_churn_rate'          => 'Monthly percentage of lost clients (expired contracts without renewal).',
        'help_chart_expiring_contracts'  => 'Number of contracts expiring in the next 6 months — helps plan retention campaigns.',
        'help_chart_contract_duration'   => 'Contract duration distribution: indefinite, up to 12 mo., 12-24 mo., over 24 mo.',
        'help_chart_active_inactive'     => 'Ratio of active to inactive clients.',
        'help_chart_overpayments'        => 'Client distribution by overpayment size (positive balances).',

        'help_chart_service_orders'      => 'Service orders opened vs closed monthly (stacked chart).',
        'help_chart_service_avg_time'    => 'Average service ticket resolution time (in days) per month.',
        'help_chart_service_categories'  => 'Service ticket distribution by category/problem type.',
        'help_chart_login_activity'      => 'Daily admin panel login count (last 30 days).',
        'help_chart_failed_logins'       => 'Failed login attempt trend — increase may indicate unauthorized access attempts.',
        'help_chart_login_hours'         => 'Login distribution by hour — shows when administrators are most active.',

        'help_chart_at_risk'             => 'List of clients with debts whose contracts expire within 90 days — require immediate attention.',
        'help_chart_client_scoring'      => 'Bubble chart: X axis = client age (years), Y axis = debt amount, bubble size = amount. Clients in upper right are long-term clients with large debts.',

        // Help for new charts (batch 2)
        'help_section_security'          => 'Security',
        'help_chart_revenue_by_tariff'   => 'Revenue generated by clients on each tariff/speed plan (last 12 months).',
        'help_chart_avg_invoice'         => 'Average single invoice amount per month. Rising trend indicates growing per-invoice revenue.',
        'help_chart_payment_time'        => 'Average days from invoice issuance to payment each month. Lower values = faster payments.',
        'help_chart_arpu'                => 'Average Revenue Per User — average monthly revenue per active client.',
        'help_chart_cashflow'            => 'Cumulative cash flow: total payments minus corrections. Shows overall financial balance.',
        'help_chart_tenure_dist'         => 'Client distribution by relationship duration: under 1 year, 1-3, 3-5, 5-10, over 10 years.',
        'help_chart_contract_status'     => 'Active client contract status: active, expiring within 90 days, expired, indefinite.',
        'help_chart_registration_heatmap' => 'Which months of the year see the most new registrations — helps plan marketing campaigns.',
        'help_chart_top_revenue'         => 'Top 10 clients by total revenue (sum of all invoices).',
        'help_chart_cumulative_clients'  => 'Total cumulative client count over 24 months.',
        'help_chart_tickets_priority'    => 'Tickets by resolution time: fast (<3 days), normal (3-14 days), long (>14 days), open.',
        'help_chart_tickets_weekday'     => 'Service ticket distribution by day of week — identifies peak load days.',
        'help_chart_admin_sessions'      => 'Unique admin IP addresses logging in daily (30 days).',
        'help_chart_blacklist_summary'   => 'IP blacklist summary: manual entries + active threat intelligence feeds from main panel.',
        'help_chart_geoblock_countries'  => 'Geo-blocked countries — number of blocked CIDR networks per country.',
        'help_chart_monit_status'        => 'Monitored network device status from main panel: online, offline, unknown.',
        'help_kpi_no_contract'           => 'Number of active clients with expired contracts — need renewal.',
    ],

    // =============================================
    // Send SMS to clients (admin)
    // =============================================
    'wyslij_sms' => [
        'menu_label'          => 'SMS',
        'title'               => 'Send SMS to clients',
        'tab_send'            => 'Send SMS',
        'tab_history'         => 'History',
        'select_clients'      => 'Select recipients',
        'col_select'          => '',
        'col_client_id'       => 'Client ID',
        'col_name'            => 'Name',
        'col_login'           => 'Login',
        'col_tel1'            => 'Phone 1',
        'col_tel2'            => 'Phone 2',
        'phone'               => 'Phone',
        'message'             => 'Message text',
        'btn_send'            => 'Send SMS',
        'btn_select_with_phone' => 'Select with phone',
        'btn_deselect_all'    => 'Deselect all',
        'filter_with_phone'   => 'Only with phone number',
        'filter_debt'         => 'With debt',
        'col_debt'            => 'Debt',
        'manual_number'       => 'Additional number (manual)',
        'manual_number_help'  => 'Enter a phone number (e.g. 500600700) to send SMS independently of the client list',
        'char_count'          => ':chars chars / :sms SMS',
        'confirm_send'        => 'Are you sure you want to send :count SMS?',
        'sending'             => 'Sending SMS...',
        'sent_ok'             => 'Sent successfully',
        'sent_error'          => 'Send error',
        'send_progress'       => 'Sent :sent of :total',
        'send_complete'       => 'Sending complete: :sent sent, :failed failed',
        'no_recipients'       => 'No recipients selected.',
        'no_message'          => 'Enter message text.',
        'no_gateway_configured' => 'SMS gateway is not configured. Go to Settings → SMS Gateways.',
        'history_title'       => 'Send history',
        'history_empty'       => 'No history entries.',
        'btn_clear_history'   => 'Clear history',
        'confirm_clear'       => 'Are you sure you want to clear the entire SMS send history?',
        'history_cleared'     => 'History cleared.',
        'col_date'            => 'Date',
        'col_recipient'       => 'Recipient',
        'col_message'         => 'Message',
        'col_status'          => 'Status',
        'col_gateway'         => 'Gateway',
        'selected_count'      => 'Selected: :count',
        'error_csrf'          => 'CSRF token error. Refresh the page.',
    ],

    // =============================================
    // SMS Gateways (admin)
    // =============================================
    'sms_admin' => [
        'menu_label'        => 'SMS Gateways',
        'title'             => 'SMS Gateways',
        'subtitle'          => 'SMS gateway configuration',
        'info_box'          => 'Configure an SMS gateway for sending notifications to clients. Supported gateways: SMSAPI.pl, SerwerSMS.pl, SMSPlanet.pl.',

        // General settings
        'general_title'     => 'General settings',
        'active_gateway'    => 'Active gateway',
        'active_gateway_none' => '— none —',
        'test_mode'         => 'Test mode',
        'test_mode_desc'    => 'SMS messages will not be sent, only logged',
        'default_prefix'    => 'Default country prefix',
        'btn_save_general'  => 'Save general settings',

        // Gateway tabs
        'tab_smsapi'        => 'SMSAPI.pl',
        'tab_serwersms'     => 'SerwerSMS.pl',
        'tab_smsplanet'     => 'SMSPlanet.pl',

        // Form fields
        'token'             => 'API Token',
        'username'          => 'Username',
        'password'          => 'Password',
        'sender'            => 'Sender name',
        'sender_help'       => 'Name or number shown as SMS sender (requires activation by operator)',
        'token_set'         => '(token saved)',
        'password_set'      => '(password saved)',
        'token_help'        => 'Leave empty to keep saved token',
        'password_help'     => 'Leave empty to keep saved password',

        // Buttons
        'btn_save'          => 'Save',
        'btn_balance'       => 'Check balance',
        'btn_test'          => 'Send test SMS',

        // Messages
        'saved'             => 'SMS configuration saved.',
        'saved_general'     => 'General settings saved.',
        'error_save'        => 'Failed to save configuration.',
        'error_csrf'        => 'CSRF token error. Refresh the page.',

        // Test SMS
        'test_title'        => 'Test SMS',
        'test_phone'        => 'Phone number',
        'test_phone_placeholder' => 'e.g. 48500600700',
        'test_message'      => 'Message text',
        'test_message_default' => 'Test message from i-BOK panel.',
        'test_send'         => 'Send test SMS',
        'test_success'      => 'Test SMS sent successfully!',
        'test_error'        => 'Send error: :error',
        'test_no_phone'     => 'Enter a phone number.',
        'test_logged'       => 'Test mode — SMS not sent, only logged.',

        // Balance
        'balance_label'     => 'Balance',
        'balance_error'     => 'Failed to check balance: :error',
        'balance_unit_smsapi'    => 'pts',
        'balance_unit_serwersms' => 'SMS',
        'balance_unit_smsplanet' => 'PLN',

        // Errors
        'no_gateway'        => 'No active SMS gateway selected.',
        'no_credentials'    => 'No credentials for gateway :gateway.',
        'gateway_error'     => 'Gateway :gateway error: :error',

        // Status
        'status_active'     => 'SMS gateway active: :gateway',
        'status_inactive'   => 'SMS gateway is not configured.',
    ],

    'demo' => [
        'banner_title'    => 'Demo mode',
        'banner_text'     => 'Panel is running in demo mode. Events are not logged. Saving settings and changing configuration is blocked. Database contents have been randomly generated and are inconsistent. Any resemblance to real data is coincidental.',
        'save_blocked'    => 'Saving is blocked in demo mode',
        'feature_blocked' => 'Feature unavailable in demo mode',
    ],

    // === Feature settings ===
    'features' => [
        'menu_label'               => 'Panel features',
        'title'                    => 'Feature settings',
        'section_client_panel'     => 'Client panel',
        'section_modules'          => 'Modules',
        'hide_speed'               => 'Hide speeds',
        'hide_speed_desc'          => 'Do not show link speeds (download/upload) in the client panel.',
        'hide_device_ip'           => 'Hide device IPs',
        'hide_device_ip_desc'      => 'Do not show device IP addresses in the client panel.',
        'speed_from_devices'       => 'Speeds from devices',
        'speed_from_devices_desc'  => 'When client has no speeds in their user profile, fetch from the device table (vMac). The highest speed is shown.',
        'password_min_length'      => 'Minimum client password length',
        'sms_module'               => 'SMS module',
        'sms_module_desc'          => 'Enable sending SMS to clients (requires SMS gateway configuration).',
        'saved'                    => 'Settings saved.',
        'error_dir_not_writable'   => 'Cannot write to directory :dir. Run: chmod 775 :dir && chown apache:apache :dir',
        'error_file_not_writable'  => 'Cannot write to file :file. Run: chmod 664 cfg/:file && chown apache:apache cfg/:file',
        'error_write_failed'       => 'Failed to save configuration file. Check permissions: :hint',
    ],
];
