using System.Drawing;

namespace Elfisa.UI.Theming
{
    /// <summary>
    /// Вариант H — Dark Productivity (ui-ux-pro-max: indigo accents, dark surfaces).
    /// Макет: elfisa-design/desktop/variant-h-dark-productivity.html
    /// </summary>
    public sealed class DarkProductivityPalette : IThemePalette
    {
        public ThemeVariant Variant => ThemeVariant.DarkProductivity;

        public ThemeColors Colors { get; } = new ThemeColors
        {
            Name = "Dark Productivity",
            Mode = ThemeMode.Dark,
            BackgroundPrimary = Color.FromArgb(17, 24, 39),
            BackgroundSecondary = Color.FromArgb(15, 23, 42),
            Surface = Color.FromArgb(31, 41, 55),
            SurfaceElevated = Color.FromArgb(37, 47, 63),
            Border = Color.FromArgb(55, 65, 81),
            BorderSubtle = Color.FromArgb(45, 55, 72),
            TextPrimary = Color.FromArgb(243, 244, 246),
            TextSecondary = Color.FromArgb(209, 213, 219),
            TextMuted = Color.FromArgb(156, 163, 175),
            TextOnAccent = Color.White,
            AccentPrimary = Color.FromArgb(79, 70, 229),
            AccentPrimaryHover = Color.FromArgb(67, 56, 202),
            AccentPrimaryPressed = Color.FromArgb(55, 48, 163),
            AccentPrimarySoft = Color.FromArgb(30, 27, 75),
            AccentPrimaryBorder = Color.FromArgb(129, 140, 248),
            AccentSecondary = Color.FromArgb(55, 65, 81),
            Success = Color.FromArgb(52, 211, 153),
            SuccessSoft = Color.FromArgb(6, 78, 59),
            Warning = Color.FromArgb(251, 191, 36),
            WarningSoft = Color.FromArgb(66, 32, 6),
            Danger = Color.FromArgb(239, 68, 68),
            DangerSoft = Color.FromArgb(69, 26, 26),
            Info = Color.FromArgb(129, 140, 248),
            InfoSoft = Color.FromArgb(30, 27, 75),
            TitleBarTop = Color.FromArgb(15, 23, 42),
            TitleBarBottom = Color.FromArgb(30, 27, 75),
            NavBackground = Color.FromArgb(26, 35, 50),
            CartHeaderBackground = Color.FromArgb(37, 47, 63),
            ToolbarBackground = Color.FromArgb(26, 35, 50),
            SectionHeaderBackground = Color.FromArgb(55, 65, 81),
            SidebarBackground = Color.FromArgb(17, 24, 39),
            SidebarItem = Color.FromArgb(156, 163, 175),
            SidebarItemHover = Color.FromArgb(37, 48, 68),
            SidebarItemActive = Color.FromArgb(79, 70, 229),
            SidebarItemActiveText = Color.White,
            GridHeaderBackground = Color.FromArgb(55, 65, 81),
            GridHeaderForeground = Color.FromArgb(243, 244, 246),
            GridRowBackground = Color.FromArgb(17, 24, 39),
            GridRowAlternate = Color.FromArgb(31, 41, 55),
            GridRowHover = Color.FromArgb(37, 48, 68),
            GridRowSelected = Color.FromArgb(79, 70, 229),
            GridRowSelectedText = Color.White,
            GridBorder = Color.FromArgb(45, 55, 72),
            InputBackground = Color.FromArgb(17, 24, 39),
            InputBorder = Color.FromArgb(55, 65, 81),
            InputBorderFocus = Color.FromArgb(129, 140, 248),
            OverlayScrim = Color.FromArgb(180, 0, 0, 0),
            Shadow = Color.FromArgb(115, 0, 0, 0),
            ScrollbarThumb = Color.FromArgb(75, 85, 99),
            ScrollbarTrack = Color.FromArgb(26, 35, 50),
            CornerRadiusSmall = 6,
            CornerRadiusMedium = 8,
            GridRowHeight = 36,
            GridHeaderHeight = 34
        };

        public DarkProductivityPalette()
        {
            Colors.FontRegular12 = new Font("Segoe UI", 12f);
            Colors.FontRegular13 = new Font("Segoe UI", 13f);
            Colors.FontRegular14 = new Font("Segoe UI", 14f);
            Colors.FontSemibold14 = new Font("Segoe UI Semibold", 14f);
            Colors.FontSemibold16 = new Font("Segoe UI Semibold", 16f);
            Colors.FontBold18 = new Font("Segoe UI", 18f, FontStyle.Bold);
        }
    }
}
