<UserControl x:Class="AppTunnel.Views.HelpTabView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:services="clr-namespace:AppTunnel.Services">

    <UserControl.Resources>
        <Style x:Key="HelpCard" TargetType="Border" BasedOn="{StaticResource CardPanel}">
            <Setter Property="Padding" Value="14,12"/>
            <Setter Property="Margin" Value="0,0,0,10"/>
        </Style>

        <Style x:Key="HelpTitle" TargetType="TextBlock">
            <Setter Property="FontSize" Value="14"/>
            <Setter Property="FontWeight" Value="SemiBold"/>
            <Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
            <Setter Property="Margin" Value="0,0,0,6"/>
        </Style>

        <Style x:Key="HelpBody" TargetType="TextBlock">
            <Setter Property="FontSize" Value="11"/>
            <Setter Property="LineHeight" Value="18"/>
            <Setter Property="TextWrapping" Value="Wrap"/>
            <Setter Property="Foreground" Value="{StaticResource TextSecondaryBrush}"/>
        </Style>

        <Style x:Key="HelpChip" TargetType="Border">
            <Setter Property="Background" Value="#0EFFFFFF"/>
            <Setter Property="BorderBrush" Value="#14FFFFFF"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="CornerRadius" Value="9"/>
            <Setter Property="Padding" Value="10,8"/>
        </Style>

        <Style x:Key="HelpExpander" TargetType="Expander">
            <Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderBrush" Value="#14FFFFFF"/>
            <Setter Property="BorderThickness" Value="0,1,0,0"/>
            <Setter Property="Padding" Value="0"/>
            <Setter Property="Margin" Value="0,4,0,0"/>
            <Setter Property="FontSize" Value="12"/>
        </Style>
    </UserControl.Resources>

    <ScrollViewer VerticalScrollBarVisibility="Auto"
                  HorizontalScrollBarVisibility="Disabled"
                  Padding="0,12,0,10">
        <StackPanel Margin="14,0">

            <!-- Header -->
            <Border Style="{StaticResource HelpCard}">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>

                    <StackPanel Grid.Column="0">
                        <TextBlock Text="راهنمای TunnelX"
                                   FontSize="20"
                                   FontWeight="Bold"
                                   Foreground="{StaticResource TextPrimaryBrush}"/>
                        <TextBlock Text="شروع سریع، پروفایل‌ها، بخش‌های اپ و عیب‌یابی در یک صفحه ساده."
                                   Style="{StaticResource HelpBody}"
                                   Margin="0,4,0,0"/>
                    </StackPanel>

                    <Border Grid.Column="1"
                            Background="#14E8803A"
                            CornerRadius="8"
                            Padding="9,4"
                            VerticalAlignment="Top">
                        <TextBlock Text="{x:Static services:AppInfo.VersionText}"
                                   FontSize="11"
                                   FontWeight="SemiBold"
                                   Foreground="{StaticResource AccentBrush}"
                                   FlowDirection="LeftToRight"/>
                    </Border>
                </Grid>
            </Border>

            <!-- Primary Actions -->
            <Border Style="{StaticResource HelpCard}">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="10"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>

                    <StackPanel Grid.Column="0">
                        <TextBlock Text="پروژه و بروزرسانی" Style="{StaticResource HelpTitle}"/>
                        <TextBlock Text="{Binding UpdateStatusText}"
                                   Style="{StaticResource HelpBody}"/>
                        <TextBlock Text="{Binding AppLicenseText, StringFormat=لایسنس: {0}}"
                                   FontSize="10"
                                   Foreground="{StaticResource TextSecondaryBrush}"
                                   FlowDirection="LeftToRight"
                                   Margin="0,5,0,0"/>
                    </StackPanel>

                    <StackPanel Grid.Column="2"
                                Orientation="Vertical"
                                MinWidth="145"
                                VerticalAlignment="Center">
                        <Button Style="{StaticResource PrimaryButton}"
                                Content="{Binding UpdateButtonText}"
                                Command="{Binding CheckForUpdatesCommand}"
                                FontSize="11"
                                Padding="12,7"/>
                        <Button Style="{StaticResource SecondaryButton}"
                                Content="صفحه انتشار"
                                Command="{Binding OpenLatestReleaseCommand}"
                                FontSize="11"
                                Padding="12,7"
                                Margin="0,6,0,0"/>
                        <Button Style="{StaticResource SecondaryButton}"
                                Content="GitHub"
                                Command="{Binding OpenGitHubCommand}"
                                FontSize="11"
                                Padding="12,7"
                                Margin="0,6,0,0"/>
                    </StackPanel>
                </Grid>
            </Border>

            <!-- Quick Start -->
            <Border Style="{StaticResource HelpCard}">
                <StackPanel>
                    <TextBlock Text="شروع سریع" Style="{StaticResource HelpTitle}"/>
                    <UniformGrid Columns="2" Rows="2">
                        <Border Style="{StaticResource HelpChip}" Margin="0,0,5,5">
                            <StackPanel>
                                <TextBlock Text="۱. پروفایل" FontSize="12" FontWeight="SemiBold"
                                           Foreground="{StaticResource TextPrimaryBrush}"/>
                                <TextBlock Text="کانفیگ را بسازید و نوع اتصال را انتخاب کنید."
                                           Style="{StaticResource HelpBody}" FontSize="10" Margin="0,3,0,0"/>
                            </StackPanel>
                        </Border>
                        <Border Style="{StaticResource HelpChip}" Margin="5,0,0,5">
                            <StackPanel>
                                <TextBlock Text="۲. برنامه‌ها" FontSize="12" FontWeight="SemiBold"
                                           Foreground="{StaticResource TextPrimaryBrush}"/>
                                <TextBlock Text="برنامه‌های داخل تونل را انتخاب یا دستی اضافه کنید."
                                           Style="{StaticResource HelpBody}" FontSize="10" Margin="0,3,0,0"/>
                            </StackPanel>
                        </Border>
                        <Border Style="{StaticResource HelpChip}" Margin="0,5,5,0">
                            <StackPanel>
                                <TextBlock Text="۳. قوانین" FontSize="12" FontWeight="SemiBold"
                                           Foreground="{StaticResource TextPrimaryBrush}"/>
                                <TextBlock Text="مقصدهای مستقیم یا اجباری را مشخص کنید."
                                           Style="{StaticResource HelpBody}" FontSize="10" Margin="0,3,0,0"/>
                            </StackPanel>
                        </Border>
                        <Border Style="{StaticResource HelpChip}" Margin="5,5,0,0">
                            <StackPanel>
                                <TextBlock Text="۴. اتصال" FontSize="12" FontWeight="SemiBold"
                                           Foreground="{StaticResource TextPrimaryBrush}"/>
                                <TextBlock Text="وصل شوید و سلامت، IP و مصرف را بررسی کنید."
                                           Style="{StaticResource HelpBody}" FontSize="10" Margin="0,3,0,0"/>
                            </StackPanel>
                        </Border>
                    </UniformGrid>
                </StackPanel>
            </Border>

            <!-- Profile Types -->
            <Border Style="{StaticResource HelpCard}">
                <StackPanel>
                    <TextBlock Text="نوع پروفایل" Style="{StaticResource HelpTitle}"/>
                    <TextBlock Text="فقط فیلدهای مربوط به نوع انتخاب‌شده را پر کنید. هر پروفایل برنامه‌ها و قوانین مسیر خودش را نگه می‌دارد."
                               Style="{StaticResource HelpBody}"/>

                    <Expander Header="L2TP/IPsec" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="برای اتصال VPN ویندوز. آدرس سرور، نام کاربری، رمز عبور و Pre-Shared Key لازم است. اگر وصل نشد، PSK، فایروال و تنظیمات VPN ویندوز را بررسی کنید."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="V2Ray / Xray" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="لینک یا JSON کانفیگ را وارد کنید یا از کلیپ‌بورد پیست کنید. TunnelX معمولاً sing-box را اجرا می‌کند و برای قابلیت‌هایی مثل xhttp از Xray-core استفاده می‌کند."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="SOCKS5 / HTTP Proxy" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="برای پراکسی خارجی آماده. نوع پراکسی، آدرس، پورت و در صورت نیاز نام کاربری/رمز را وارد کنید. این با پراکسی داخلی 127.0.0.1 فرق دارد."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="OpenVPN" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="فایل ovpn را انتخاب کنید. OpenVPN Community باید جداگانه نصب باشد؛ OpenVPN Connect برای Split Tunneling مناسب نیست. اگر سرور رمز می‌خواهد، نام کاربری و رمز را در TunnelX وارد کنید."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>
                </StackPanel>
            </Border>

            <!-- App Areas -->
            <Border Style="{StaticResource HelpCard}">
                <StackPanel>
                    <TextBlock Text="بخش‌های اپ" Style="{StaticResource HelpTitle}"/>

                    <Expander Header="اتصال VPN" Style="{StaticResource HelpExpander}" IsExpanded="True">
                        <TextBlock Text="پروفایل فعال، تست سرور، اتصال/قطع اتصال، IP خروجی، پینگ، مصرف و راهنمای پراکسی دستی اینجاست."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="برنامه‌ها" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="از لیست برنامه‌های پیدا شده انتخاب کنید یا فایل exe را دستی اضافه کنید. برای Store/MSIX/WebView2 برنامه را باز نگه دارید و بروزرسانی لیست را بزنید."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="قوانین مسیر" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="«مستقیم بماند» یعنی مقصد از تونل عبور نکند. «از تونل عبور کند» یعنی مقصد حتی بدون انتخاب برنامه وارد تونل شود. دامنه‌ها زیردامنه‌ها را هم پوشش می‌دهند."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="تنظیمات" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="پورت پراکسی محلی، MTU خودکار، DNS Optimization، Game Mode، اجرای خودکار ویندوز و اتصال خودکار اینجاست."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="ترافیک و تاریخچه" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="مدت اتصال، IP، مصرف تونل، مصرف خارج تونل، سلامت Split Tunnel، مصرف برنامه‌ها و تاریخچه اتصال‌ها را نشان می‌دهد."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="جزئیات و لاگ‌ها" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="از دکمه جزئیات، لاگ‌ها را با فیلتر خطا، هشدار، DNS یا Route ببینید. قبل از ارسال عمومی لاگ، رمزها، کلیدها، UUID و endpoint خصوصی را حذف کنید."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>
                </StackPanel>
            </Border>

            <!-- Essentials -->
            <Border Style="{StaticResource HelpCard}">
                <StackPanel>
                    <TextBlock Text="نکات مهم" Style="{StaticResource HelpTitle}"/>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="8"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="8"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>

                        <Border Grid.Row="0" Grid.Column="0" Style="{StaticResource HelpChip}">
                            <TextBlock Text="حالت عادی: فقط برنامه‌های انتخاب‌شده و مقصدهای لزومی وارد تونل می‌شوند."
                                       Style="{StaticResource HelpBody}" FontSize="10"/>
                        </Border>
                        <Border Grid.Row="0" Grid.Column="2" Style="{StaticResource HelpChip}">
                            <TextBlock Text="Full Route: کل سیستم وارد تونل می‌شود؛ استثناها می‌توانند مستقیم بمانند."
                                       Style="{StaticResource HelpBody}" FontSize="10"/>
                        </Border>
                        <Border Grid.Row="2" Grid.Column="0" Style="{StaticResource HelpChip}">
                            <StackPanel>
                                <TextBlock Text="پراکسی داخلی"
                                           FontSize="11"
                                           FontWeight="SemiBold"
                                           Foreground="{StaticResource TextPrimaryBrush}"/>
                                <TextBlock Text="برای ابزارهایی که آدرس محلی می‌خواهند:"
                                           Style="{StaticResource HelpBody}" FontSize="10" Margin="0,3,0,0"/>
                                <TextBlock Text="127.0.0.1:1080"
                                           FontSize="11"
                                           FontFamily="Consolas"
                                           Foreground="{StaticResource AccentBrush}"
                                           FlowDirection="LeftToRight"
                                           Margin="0,3,0,0"/>
                            </StackPanel>
                        </Border>
                        <Border Grid.Row="2" Grid.Column="2" Style="{StaticResource HelpChip}">
                            <TextBlock Text="سلامت: Leak باید صفر باشد. DNS، IPv6 و Route را بعد از اتصال بررسی کنید."
                                       Style="{StaticResource HelpBody}" FontSize="10"/>
                        </Border>
                    </Grid>
                </StackPanel>
            </Border>

            <!-- Troubleshooting -->
            <Border Style="{StaticResource HelpCard}">
                <StackPanel>
                    <TextBlock Text="عیب‌یابی سریع" Style="{StaticResource HelpTitle}"/>

                    <Expander Header="اتصال برقرار نمی‌شود" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="برنامه را با Administrator اجرا کنید. فایروال، آنتی‌ویروس، آدرس سرور، پورت، رمزها، PSK، نصب OpenVPN Community و اعتبار کانفیگ را بررسی کنید."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="ترافیک برنامه از تونل عبور نمی‌کند" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="برنامه را در تب برنامه‌ها فعال کنید. اگر چندپردازشی است، برنامه را باز نگه دارید و لیست برنامه‌ها را دوباره بارگذاری کنید."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="پراکسی کار نمی‌کند" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="برای پروفایل پراکسی، آدرس، پورت، نوع و اطلاعات ورود را بررسی کنید. برای ابزارهای محلی، آدرس 127.0.0.1 و پورت تنظیمات را وارد کنید."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>

                    <Expander Header="DNS، IPv6 یا Leak غیرعادی است" Style="{StaticResource HelpExpander}">
                        <TextBlock Text="یک بار قطع و وصل کنید تا مسیرها و قوانین DNS دوباره ساخته شوند. اگر مشکل ماند، لاگ‌های DNS و Route را بررسی کنید."
                                   Style="{StaticResource HelpBody}" Margin="0,8,0,0"/>
                    </Expander>
                </StackPanel>
            </Border>

            <!-- Support -->
            <Border Style="{StaticResource HelpCard}">
                <StackPanel>
                    <TextBlock Text="حمایت و تماس" Style="{StaticResource HelpTitle}"/>
                    <TextBlock Text="{Binding AppCreatorText}" Style="{StaticResource HelpBody}"/>
                    <TextBlock Text="{Binding AppGitHubUrl}"
                               FontSize="10"
                               Foreground="{StaticResource AccentBrush}"
                               FlowDirection="LeftToRight"
                               TextWrapping="Wrap"
                               Margin="0,5,0,0"/>
                    <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
                        <Button Style="{StaticResource SecondaryButton}"
                                Content="حمایت با پی‌پل"
                                Command="{Binding OpenDonateCommand}"
                                FontSize="11"
                                Padding="12,7"/>
                        <Button Style="{StaticResource SecondaryButton}"
                                Content="کپی اطلاعات حمایت"
                                Command="{Binding CopyDonationInfoCommand}"
                                FontSize="11"
                                Padding="12,7"
                                Margin="8,0,0,0"/>
                    </StackPanel>
                </StackPanel>
            </Border>

        </StackPanel>
    </ScrollViewer>
</UserControl>
