workflow/vNext/ui/MainWindow.xaml

<?xml version="1.0" encoding="UTF-8"?>
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
    mc:Ignorable="d"
    Title="OSDCloud"
    Width="960"
    Height="680"
    WindowStartupLocation="CenterScreen"
    ResizeMode="CanResizeWithGrip">
 
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ui:ThemesDictionary Theme="Light" />
                <ui:ControlsDictionary />
            </ResourceDictionary.MergedDictionaries>
 
            <!-- Left nav item style with blue accent bar on selection -->
            <Style x:Key="NavItemStyle" TargetType="ListBoxItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                <Setter Property="VerticalContentAlignment" Value="Center" />
                <Setter Property="Padding" Value="0" />
                <Setter Property="Margin" Value="0" />
                <Setter Property="BorderThickness" Value="0" />
                <Setter Property="Cursor" Value="Hand" />
                <Setter Property="Foreground" Value="#323130" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListBoxItem">
                            <Grid Height="48">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="4" />
                                    <ColumnDefinition Width="*" />
                                </Grid.ColumnDefinitions>
                                <Rectangle x:Name="AccentBar" Grid.Column="0" Fill="Transparent" />
                                <Border x:Name="ContentBorder" Grid.Column="1" Background="Transparent">
                                    <ContentPresenter VerticalAlignment="Center" />
                                </Border>
                            </Grid>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter TargetName="ContentBorder" Property="Background" Value="#F3F2F1" />
                                </Trigger>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter TargetName="AccentBar" Property="Fill" Value="#0067B8" />
                                    <Setter TargetName="ContentBorder" Property="Background" Value="#EFF6FC" />
                                    <Setter Property="Foreground" Value="#0067B8" />
                                    <Setter Property="FontWeight" Value="SemiBold" />
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
 
            <Style x:Key="DeploymentComboBoxStyle" TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
                <Setter Property="MinHeight" Value="40" />
                <Setter Property="Padding" Value="12,6" />
                <Setter Property="FontWeight" Value="SemiBold" />
                <Setter Property="VerticalContentAlignment" Value="Center" />
            </Style>
        </ResourceDictionary>
    </Window.Resources>
 
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="210" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
 
        <!-- ═══ LEFT NAVIGATION SIDEBAR ═══ -->
        <Border Grid.Column="0" Background="White"
                BorderBrush="#EDEBE9" BorderThickness="0,0,1,0">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
 
                <ListBox x:Name="NavListBox" Grid.Row="0" Background="Transparent" BorderThickness="0"
                         SelectionMode="Single" Margin="0"
                         ItemContainerStyle="{StaticResource NavItemStyle}">
                    <ListBoxItem Tag="Deployment">
                        <StackPanel Orientation="Horizontal" Margin="16,0,0,0">
                            <ui:SymbolIcon Symbol="CloudArrowDown24" FontSize="20"
                                           VerticalAlignment="Center" Margin="0,0,12,0" />
                            <TextBlock Text="Deployment" VerticalAlignment="Center" FontSize="14" />
                        </StackPanel>
                    </ListBoxItem>
                    <ListBoxItem Tag="Device">
                        <StackPanel Orientation="Horizontal" Margin="16,0,0,0">
                            <ui:SymbolIcon Symbol="Desktop32" FontSize="20"
                                           VerticalAlignment="Center" Margin="0,0,12,0" />
                            <TextBlock Text="Device" VerticalAlignment="Center" FontSize="14" />
                        </StackPanel>
                    </ListBoxItem>
                    <ListBoxItem Tag="Drivers">
                        <StackPanel Orientation="Horizontal" Margin="16,0,0,0">
                            <ui:SymbolIcon Symbol="WrenchScrewdriver20" FontSize="20"
                                           VerticalAlignment="Center" Margin="0,0,12,0" />
                            <TextBlock Text="Drivers" VerticalAlignment="Center" FontSize="14" />
                        </StackPanel>
                    </ListBoxItem>
                    <ListBoxItem Tag="Disk">
                        <StackPanel Orientation="Horizontal" Margin="16,0,0,0">
                            <ui:SymbolIcon Symbol="HardDrive20" FontSize="20"
                                           VerticalAlignment="Center" Margin="0,0,12,0" />
                            <TextBlock Text="Disk" VerticalAlignment="Center" FontSize="14" />
                        </StackPanel>
                    </ListBoxItem>
                    <ListBoxItem Tag="Steps">
                        <StackPanel Orientation="Horizontal" Margin="16,0,0,0">
                            <ui:SymbolIcon Symbol="ClipboardTaskListLtr24" FontSize="20"
                                           VerticalAlignment="Center" Margin="0,0,12,0" />
                            <TextBlock Text="Steps" VerticalAlignment="Center" FontSize="14" />
                        </StackPanel>
                    </ListBoxItem>
                    <ListBoxItem Tag="Privacy">
                        <StackPanel Orientation="Horizontal" Margin="16,0,0,0">
                            <ui:SymbolIcon Symbol="Shield24" FontSize="20"
                                           VerticalAlignment="Center" Margin="0,0,12,0" />
                            <TextBlock Text="Privacy" VerticalAlignment="Center" FontSize="14" />
                        </StackPanel>
                    </ListBoxItem>
                </ListBox>
 
                <Menu Grid.Row="2" Background="White" Margin="0,8,0,8">
                    <Menu.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Vertical" />
                        </ItemsPanelTemplate>
                    </Menu.ItemsPanel>
                    <Menu.Resources>
                        <Style TargetType="MenuItem">
                            <Setter Property="Foreground" Value="#323130" />
                            <Setter Property="Background" Value="White" />
                            <Setter Property="FontSize" Value="14" />
                            <Setter Property="Padding" Value="16,8" />
                            <Style.Triggers>
                                <Trigger Property="IsHighlighted" Value="True">
                                    <Setter Property="Foreground" Value="#201F1E" />
                                    <Setter Property="Background" Value="#F3F2F1" />
                                </Trigger>
                                <Trigger Property="IsEnabled" Value="False">
                                    <Setter Property="Foreground" Value="#8A8886" />
                                </Trigger>
                                <Trigger Property="Role" Value="TopLevelHeader">
                                    <Setter Property="Foreground" Value="#323130" />
                                    <Setter Property="Background" Value="White" />
                                    <Setter Property="Padding" Value="16,8" />
                                </Trigger>
                                <Trigger Property="Role" Value="TopLevelItem">
                                    <Setter Property="Foreground" Value="#323130" />
                                    <Setter Property="Background" Value="White" />
                                    <Setter Property="Padding" Value="16,8" />
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </Menu.Resources>
                    <MenuItem x:Name="LogsMenuItem" Header="Logs" />
                    <MenuItem x:Name="WMIMenuItem" Header="WMI" />
                    <MenuItem Header="Shell">
                        <MenuItem x:Name="RunCmdPrompt" Header="CMD Prompt" />
                        <MenuItem x:Name="RunPowerShell" Header="Windows PowerShell" />
                        <MenuItem x:Name="RunPwsh" Header="PowerShell 7" Visibility="Collapsed" />
                    </MenuItem>
                </Menu>
            </Grid>
        </Border>
 
        <!-- ═══ CONTENT AND ACTION AREA ═══ -->
        <Grid Grid.Column="1">
            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
                <RowDefinition Height="56" />
            </Grid.RowDefinitions>
 
            <!-- Content area: panels toggled by nav selection -->
            <ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Auto" Background="White">
                <Grid Margin="28,20,28,20">
 
                    <!-- ─── DEVICE PANEL ─── -->
                    <StackPanel x:Name="DevicePanel" Visibility="Collapsed">
 
                        <ui:Card Padding="0" Margin="0,12,0,0">
                            <Expander IsExpanded="True" Margin="16,12,16,12">
                                <Expander.Header>
                                    <TextBlock Text="HARDWARE" FontSize="11" FontWeight="SemiBold"
                                               Foreground="#A19F9D" />
                                </Expander.Header>
                                <Grid Margin="0,10,0,0">
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="28" />
                                        <RowDefinition Height="28" />
                                        <RowDefinition Height="28" />
                                        <RowDefinition Height="28" />
                                        <RowDefinition Height="28" />
                                        <RowDefinition Height="28" />
                                        <RowDefinition Height="28" />
                                        <RowDefinition Height="28" />
                                    </Grid.RowDefinitions>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="120" />
                                        <ColumnDefinition Width="*" />
                                    </Grid.ColumnDefinitions>
                                    <TextBlock Grid.Row="0" Grid.Column="0" Text="Manufacturer"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="0" Grid.Column="1" x:Name="deviceOSDManufacturerText"
                                               Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" />
                                    <TextBlock Grid.Row="1" Grid.Column="0" Text="Model"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="1" Grid.Column="1" x:Name="deviceOSDModelText"
                                               Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" />
                                    <TextBlock Grid.Row="2" Grid.Column="0" Text="Product"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="2" Grid.Column="1" x:Name="deviceOSDProductText"
                                               Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" />
                                    <TextBlock Grid.Row="3" Grid.Column="0" Text="System SKU"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="3" Grid.Column="1" x:Name="deviceComputerSystemSKUText"
                                               Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" />
                                    <TextBlock Grid.Row="4" Grid.Column="0" Text="BIOS Version"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="4" Grid.Column="1" x:Name="deviceBiosVersionText"
                                               Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" />
                                    <TextBlock Grid.Row="5" Grid.Column="0" Text="BIOS Date"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="5" Grid.Column="1" x:Name="deviceBiosReleaseDateText"
                                               Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" />
                                    <TextBlock Grid.Row="6" Grid.Column="0" Text="TPM 2.0"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="6" Grid.Column="1" x:Name="deviceIsTpmSpecText"
                                               Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="7" Grid.Column="0" Text="Autopilot"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="7" Grid.Column="1" x:Name="deviceIsAutopilotSpecText"
                                               Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" />
                                </Grid>
                            </Expander>
                        </ui:Card>
 
                        <ui:Card Padding="0" Margin="0,12,0,0">
                            <Expander IsExpanded="False" Margin="16,12,16,12">
                                <Expander.Header>
                                    <TextBlock Text="IDENTITY" FontSize="11" FontWeight="SemiBold"
                                               Foreground="#A19F9D" />
                                </Expander.Header>
                                <Grid Margin="0,10,0,0">
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="30" />
                                        <RowDefinition Height="30" />
                                        <RowDefinition Height="30" />
                                    </Grid.RowDefinitions>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="130" />
                                        <ColumnDefinition Width="*" />
                                    </Grid.ColumnDefinitions>
                                    <TextBlock Grid.Row="0" Grid.Column="0" Text="Serial Number"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="0" Grid.Column="1" x:Name="deviceSerialNumberText"
                                               FontWeight="SemiBold" Foreground="#0067B8" Cursor="Hand"
                                               ToolTip="Click to copy Serial Number" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="1" Grid.Column="0" Text="UUID"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="1" Grid.Column="1" x:Name="deviceUUIDText"
                                               FontWeight="SemiBold" Foreground="#0067B8" Cursor="Hand"
                                               ToolTip="Click to copy UUID" VerticalAlignment="Center" />
                                    <TextBlock Grid.Row="2" Grid.Column="0" x:Name="deviceHardwareHashLabelText"
                                               Text="Hardware Hash" FontWeight="SemiBold" Foreground="#605E5C"
                                               VerticalAlignment="Center" Visibility="Collapsed" />
                                    <TextBlock Grid.Row="2" Grid.Column="1" x:Name="deviceHardwareHashText"
                                               FontWeight="SemiBold" Foreground="#0067B8" Cursor="Hand"
                                               ToolTip="Click to copy Hardware Hash" VerticalAlignment="Center"
                                               Visibility="Collapsed" />
                                </Grid>
                            </Expander>
                        </ui:Card>
 
                        <ui:Card Padding="0" Margin="0,12,0,0">
                            <Expander IsExpanded="False" Margin="16,12,16,12">
                                <Expander.Header>
                                    <TextBlock Text="GLOBAL VARIABLE: OSDCloudDevice" FontSize="11" FontWeight="SemiBold"
                                               Foreground="#A19F9D" />
                                </Expander.Header>
                                <Border BorderBrush="#EDEBE9" BorderThickness="1" CornerRadius="4" Margin="0,10,0,0">
                                    <DataGrid x:Name="OSDCloudDeviceGrid"
                                              AutoGenerateColumns="False"
                                              CanUserAddRows="False"
                                              CanUserDeleteRows="False"
                                              CanUserReorderColumns="False"
                                              CanUserResizeRows="False"
                                              IsReadOnly="True"
                                              GridLinesVisibility="Horizontal"
                                              HeadersVisibility="None"
                                              AlternatingRowBackground="#F8F9FA"
                                              RowBackground="White"
                                              RowHeight="30"
                                              BorderThickness="0"
                                              HorizontalScrollBarVisibility="Auto"
                                              VerticalScrollBarVisibility="Auto"
                                              MinHeight="420">
                                        <DataGrid.Columns>
                                            <DataGridTextColumn Header="Key"
                                                                Binding="{Binding Key}"
                                                                Width="240"
                                                                IsReadOnly="True" />
                                            <DataGridTextColumn Header="Value"
                                                                Binding="{Binding Value}"
                                                                Width="*"
                                                                IsReadOnly="True" />
                                        </DataGrid.Columns>
                                    </DataGrid>
                                </Border>
                            </Expander>
                        </ui:Card>
 
                    </StackPanel>
 
                    <!-- ─── OSDCLOUD DEVICE PANEL ─── -->
                    <StackPanel x:Name="OSDCloudDevicePanel" Visibility="Collapsed" />
 
                    <!-- ─── DRIVERS PANEL ─── -->
                    <StackPanel x:Name="DriversPanel" Visibility="Collapsed">
 
                        <ui:Card Padding="16" Margin="0,0,0,12">
                            <StackPanel>
                                <TextBlock Text="DRIVER PACKS" FontSize="11" FontWeight="SemiBold"
                                           Foreground="#A19F9D" Margin="0,0,0,8" />
                                <ComboBox x:Name="DriverPackCombo" Margin="0,0,0,8"
                                          Style="{StaticResource DeploymentComboBoxStyle}" SelectedIndex="0"
                                          MaxDropDownHeight="320"
                                          ScrollViewer.VerticalScrollBarVisibility="Auto"
                                          ScrollViewer.CanContentScroll="True" />
                                <TextBlock x:Name="DriverPackUrlText" Foreground="#A19F9D"
                                           FontSize="11" TextWrapping="Wrap" />
                                <TextBlock x:Name="DriverPackCacheLabelText" Text="OSDCloud CACHE" FontSize="11" FontWeight="SemiBold"
                                           Foreground="#A19F9D" Margin="0,8,0,4" Visibility="Collapsed" />
                                <TextBlock x:Name="DriverPackCachePathText" Foreground="#605E5C"
                                           FontSize="11" TextWrapping="Wrap" Visibility="Collapsed" />
                                <Button x:Name="DriverPackDownloadButton"
                                    Content="Download to USB"
                                    Width="140"
                                    Height="32"
                                    Margin="0,10,0,0"
                                    HorizontalAlignment="Left"
                                    Visibility="Collapsed" />
                            </StackPanel>
                        </ui:Card>
 
                        <ui:Card x:Name="DriverFolderPanel" Padding="0" Margin="0,0,0,12">
                            <Expander x:Name="DriverFolderExpander" IsExpanded="True" Margin="16,12,16,12">
                                <Expander.Header>
                                    <TextBlock Text="DRIVER FOLDERS (FileSystem:\OSDCloud\Drivers)" FontSize="11" FontWeight="SemiBold"
                                               Foreground="#A19F9D" />
                                </Expander.Header>
                                <StackPanel Margin="0,10,0,0">
                                    <StackPanel.ToolTip>
                                        <ToolTip>
                                            <StackPanel MaxWidth="420">
                                                <TextBlock Text="DRIVER FOLDERS (OSDCloud\Drivers)" FontWeight="SemiBold" Margin="0,0,0,6" />
                                                <TextBlock TextWrapping="Wrap" Margin="0,0,0,4"
                                                           Text="Use Drivers to apply your own offline drivers during deployment." />
                                                <TextBlock TextWrapping="Wrap" Margin="0,0,0,2"
                                                           Text="1. Create OSDCloud\Drivers on a USB drive (for example E:\OSDCloud\Drivers)." />
                                                <TextBlock TextWrapping="Wrap" Margin="0,0,0,2"
                                                           Text="2. Copy extracted driver folders that contain INF files into that path." />
                                                <TextBlock TextWrapping="Wrap" Margin="0,0,0,2"
                                                           Text="3. Name folders by Manufacturer, Model, Product, or Auto for dynamic selection." />
                                                <TextBlock TextWrapping="Wrap"
                                                           Text="OSDCloud automatically selects matching folders by Manufacturer, Model, Product, and Auto, then injects drivers into the offline Windows image." />
                                            </StackPanel>
                                        </ToolTip>
                                    </StackPanel.ToolTip>
 
                                    <Border x:Name="DriverFolderGridBorder" BorderBrush="#EDEBE9" BorderThickness="1" CornerRadius="4" Margin="0,0,0,8">
                                        <DataGrid x:Name="DriverFolderGrid"
                                                  AutoGenerateColumns="False"
                                                  CanUserAddRows="False"
                                                  CanUserDeleteRows="False"
                                                  CanUserReorderColumns="False"
                                                  CanUserResizeRows="False"
                                                  CanUserResizeColumns="False"
                                                  HeadersVisibility="None"
                                                  GridLinesVisibility="Horizontal"
                                                  RowHeaderWidth="0"
                                                  MinHeight="180"
                                                  MaxHeight="220"
                                                  RowHeight="36"
                                                  SelectionMode="Single"
                                                  SelectionUnit="FullRow"
                                                  BorderThickness="0"
                                                  Background="White"
                                                  AlternatingRowBackground="#F8F9FA">
                                            <DataGrid.Columns>
                                                <DataGridTemplateColumn Width="*">
                                                    <DataGridTemplateColumn.CellTemplate>
                                                        <DataTemplate>
                                                            <Grid Margin="8,0">
                                                                <Grid.ColumnDefinitions>
                                                                    <ColumnDefinition Width="28" />
                                                                    <ColumnDefinition Width="*" />
                                                                </Grid.ColumnDefinitions>
                                                                <CheckBox Grid.Column="0"
                                                                          IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                                          VerticalAlignment="Center"
                                                                          HorizontalAlignment="Center" />
                                                                <TextBlock Grid.Column="1"
                                                                           Text="{Binding Name}"
                                                                           VerticalAlignment="Center"
                                                                           Foreground="#323130"
                                                                           FontSize="14"
                                                                           TextTrimming="CharacterEllipsis" />
                                                            </Grid>
                                                        </DataTemplate>
                                                    </DataGridTemplateColumn.CellTemplate>
                                                </DataGridTemplateColumn>
                                            </DataGrid.Columns>
                                        </DataGrid>
                                    </Border>
 
                                    <TextBlock x:Name="DriverFolderPathText" Foreground="#A19F9D"
                                               FontSize="11" TextWrapping="Wrap" />
 
                                    <TextBlock x:Name="DriverFolderEmptyHelpText"
                                               Visibility="Collapsed"
                                               Margin="0,10,0,0"
                                               Foreground="#605E5C"
                                               FontSize="12"
                                               TextWrapping="Wrap"
                                               Text="No driver folders were found. Create OSDCloud\Drivers on a USB drive (for example E:\OSDCloud\Drivers), copy extracted driver folders with INF files into it, and name folders by Manufacturer, Model, Product, or Auto for dynamic matching." />
                                </StackPanel>
                            </Expander>
                        </ui:Card>
                    </StackPanel>
 
                    <!-- ─── DISK PANEL ─── -->
                    <StackPanel x:Name="DiskPanel" Visibility="Collapsed" />
 
                    <!-- ─── IDENTITY PANEL ─── -->
                    <StackPanel x:Name="IdentityPanel" Visibility="Collapsed">
                        <TextBlock Text="Identity" FontSize="20" FontWeight="SemiBold"
                                   Foreground="#323130" Margin="0,0,0,16" />
 
                        <TabControl Background="White" BorderBrush="#EDEBE9" BorderThickness="1" Padding="6">
                            <TabItem Header="Provisioning">
                                <Grid />
                            </TabItem>
                        </TabControl>
                    </StackPanel>
 
                    <!-- ─── DEPLOYMENT PANEL ─── -->
                    <StackPanel x:Name="DeploymentPanel" Visibility="Visible">
 
                        <ui:Card Padding="16" Margin="0,0,0,12">
                            <StackPanel>
                                <TextBlock Text="TASK SEQUENCE" FontSize="11" FontWeight="SemiBold"
                                           Foreground="#A19F9D" Margin="0,0,0,8" />
                                <ComboBox x:Name="TaskSequenceCombo" Style="{StaticResource DeploymentComboBoxStyle}" />
                            </StackPanel>
                        </ui:Card>
 
                        <ui:Card x:Name="CloudOperatingSystemCard" Padding="16" Margin="0,0,0,12">
                            <StackPanel>
                                <TextBlock Text="CLOUD OPERATING SYSTEM" FontSize="11" FontWeight="SemiBold"
                                           Foreground="#A19F9D" Margin="0,0,0,10" />
                                <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="Auto" />
                                    </Grid.RowDefinitions>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="110" />
                                        <ColumnDefinition Width="180" />
                                        <ColumnDefinition Width="*" />
                                    </Grid.ColumnDefinitions>
                                    <TextBlock Grid.Row="0" Grid.Column="0" Text="Version"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" Margin="0,6" />
                                    <ComboBox Grid.Row="0" Grid.Column="1" x:Name="OperatingSystemCombo"
                                               Margin="0,4" Style="{StaticResource DeploymentComboBoxStyle}" />
                                    <TextBlock Grid.Row="0" Grid.Column="2" x:Name="SelectedIdText"
                                               VerticalAlignment="Center" Foreground="#A19F9D" FontSize="11"
                                               Margin="12,4,0,4" TextWrapping="Wrap" />
                                    <TextBlock Grid.Row="1" Grid.Column="0" Text="Language"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" Margin="0,6" />
                                    <ComboBox Grid.Row="1" Grid.Column="1" x:Name="OSLanguageCodeCombo"
                                               Margin="0,4" Style="{StaticResource DeploymentComboBoxStyle}" />
                                    <TextBlock Grid.Row="1" Grid.Column="2" x:Name="SelectedOSLanguageText"
                                               VerticalAlignment="Center" Foreground="#A19F9D" FontSize="11"
                                               Margin="12,4,0,4" />
                                    <TextBlock Grid.Row="2" Grid.Column="0" Text="Edition"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" Margin="0,6" />
                                    <ComboBox Grid.Row="2" Grid.Column="1" x:Name="OSEditionCombo"
                                               Margin="0,4" Style="{StaticResource DeploymentComboBoxStyle}" />
                                    <TextBlock Grid.Row="3" Grid.Column="0" Text="Activation"
                                               FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" Margin="0,6" />
                                    <ComboBox Grid.Row="3" Grid.Column="1" x:Name="OSActivationCombo"
                                               Margin="0,4" Style="{StaticResource DeploymentComboBoxStyle}" />
                                </Grid>
                                <Separator Margin="0,10,0,8" />
                                <TextBlock Text="SELECTED FILE" FontSize="11" FontWeight="SemiBold"
                                           Foreground="#A19F9D" Margin="0,0,0,4" />
                                <TextBlock x:Name="SelectedFileNameText" Foreground="#605E5C"
                                           FontSize="12" TextWrapping="Wrap" />
                                <Button x:Name="CloudOperatingSystemDownloadButton"
                                    Content="Download to USB"
                                    Width="140"
                                    Height="32"
                                    Margin="0,10,0,0"
                                    HorizontalAlignment="Left"
                                    Visibility="Collapsed" />
                            </StackPanel>
                        </ui:Card>
 
                        <ui:Card x:Name="LocalIsoCard" Padding="16" Margin="0,0,0,12" Visibility="Collapsed">
                            <StackPanel>
                                <ToggleButton x:Name="UseLocalIsoToggle"
                                              Content="Use local ISO"
                                              Width="140"
                                              Height="34"
                                              HorizontalAlignment="Left"
                                              FontWeight="SemiBold"
                                              Margin="0,0,0,10" />
                                <ComboBox x:Name="LocalIsoCombo"
                                          Style="{StaticResource DeploymentComboBoxStyle}"
                                          Visibility="Collapsed" />
                            </StackPanel>
                        </ui:Card>
 
                    </StackPanel>
 
                    <!-- ─── STEPS PANEL ─── -->
                    <StackPanel x:Name="StepsPanel" Visibility="Collapsed">
                        <TextBlock Text="Steps" FontSize="20" FontWeight="SemiBold"
                                   Foreground="#323130" Margin="0,0,0,16" />
 
                        <Border Background="White" BorderBrush="#EDEBE9" BorderThickness="1"
                                CornerRadius="4" Padding="0">
                            <DataGrid x:Name="TaskSequenceStepsGrid"
                                      AutoGenerateColumns="True"
                                      CanUserAddRows="False"
                                      CanUserDeleteRows="False"
                                      CanUserReorderColumns="False"
                                      CanUserResizeColumns="False"
                                      CanUserSortColumns="False"
                                      ColumnHeaderHeight="24"
                                      FontSize="12"
                                      IsReadOnly="False"
                                      GridLinesVisibility="All"
                                      HeadersVisibility="All"
                                      AlternatingRowBackground="#F8F9FA"
                                      RowBackground="White"
                                      RowHeight="24"
                                      BorderThickness="0"
                                      MinHeight="420"
                                      HorizontalScrollBarVisibility="Auto"
                                      VerticalScrollBarVisibility="Auto">
                                <DataGrid.ColumnHeaderStyle>
                                    <Style TargetType="DataGridColumnHeader">
                                        <Setter Property="FontSize" Value="12" />
                                        <Setter Property="FontWeight" Value="SemiBold" />
                                        <Setter Property="Padding" Value="4,2" />
                                        <Setter Property="HorizontalContentAlignment" Value="Left" />
                                        <Setter Property="VerticalContentAlignment" Value="Center" />
                                    </Style>
                                </DataGrid.ColumnHeaderStyle>
                            </DataGrid>
                        </Border>
                    </StackPanel>
 
                    <!-- ─── PRIVACY PANEL ─── -->
                    <StackPanel x:Name="PrivacyPanel" Visibility="Collapsed">
                        <TextBlock Text="Privacy" FontSize="20" FontWeight="SemiBold"
                                   Foreground="#323130" Margin="0,0,0,16" />
 
                        <ui:Card Padding="16">
                            <StackPanel>
                                <TextBlock Text="OSDCLOUD PRIVACY STATEMENT" FontSize="11" FontWeight="SemiBold"
                                           Foreground="#A19F9D" Margin="0,0,0,10" />
                                <TextBlock Foreground="#323130" FontSize="14" TextWrapping="Wrap" LineHeight="20">
                                    <Run Text="OSDCloud collects analytic data during the deployment process to help improve the product and user experience." />
                                    <LineBreak />
                                    <Run Text="No personally identifiable information (PII) is collected, and all data is anonymized to protect user privacy." />
                                    <LineBreak />
                                    <LineBreak />
                                    <Run Text="Collected data includes information about the deployment environment and system configuration." />
                                    <LineBreak />
                                    <Run Text="By using OSDCloud, you consent to the collection of analytic data as outlined in the privacy policy" />
                                    <LineBreak />
                                    <LineBreak />
                                    <Run Text="https://github.com/OSDeploy/OSDCloud/blob/main/PRIVACY.md" />
                                </TextBlock>
                            </StackPanel>
                        </ui:Card>
                    </StackPanel>
 
                </Grid>
            </ScrollViewer>
 
            <!-- ═══ FOOTER ═══ -->
            <Border Grid.Row="1" Background="#F8F9FA" BorderBrush="#EDEBE9" BorderThickness="0,1,0,0">
                <Grid Margin="16,0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>
                    <ui:Button x:Name="StartButton"
                               Grid.Column="1"
                               Content="Start Deployment"
                               Width="160"
                               Height="36"
                               FontSize="14"
                               FontWeight="SemiBold"
                               IsDefault="True"
                               Appearance="Primary"
                               VerticalAlignment="Center" />
                </Grid>
            </Border>
        </Grid>
    </Grid>
</Window>