//
// Valkyre.ai (valkyre-ai@1.0.0)
// Palette: valkyre-ai@1.0.0
// Fonts:   heading=geist@1.0.0, body=inter@1.0.0, mono=jetbrainsmono-nerdfont@1.0.0
// Generated by brand-atoms converter — do not edit by hand.
//

import SwiftUI

/// Source-of-truth color swatches from the referenced palette.
public enum BrandSwatch {
    /// Black — Pure black — primary background
    public static let black = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Surface — Near-black surface for cards and panels
    public static let surface = Color(.sRGB, red: 0.0510, green: 0.0588, blue: 0.0784, opacity: 1.0000)
    /// Surface Elevated — Slightly lighter surface for elevated components
    public static let surfaceElevated = Color(.sRGB, red: 0.0863, green: 0.1020, blue: 0.1333, opacity: 1.0000)
    /// Border — Subtle border on dark backgrounds
    public static let border = Color(.sRGB, red: 0.1176, green: 0.1451, blue: 0.1882, opacity: 1.0000)
    /// Red — Crimson red — red team, offense, attack vectors
    public static let red = Color(.sRGB, red: 0.8314, green: 0.1059, blue: 0.1647, opacity: 1.0000)
    /// Red Bright — Brighter red for hover and interactive states
    public static let redBright = Color(.sRGB, red: 0.9412, green: 0.1333, blue: 0.2000, opacity: 1.0000)
    /// Red Muted — Deep crimson for backgrounds and subtle indicators
    public static let redMuted = Color(.sRGB, red: 0.4784, green: 0.0627, blue: 0.0941, opacity: 1.0000)
    /// Blue — Electric blue — blue team, defense, monitoring
    public static let blue = Color(.sRGB, red: 0.1059, green: 0.4039, blue: 0.9098, opacity: 1.0000)
    /// Blue Bright — Brighter blue for hover and interactive states
    public static let blueBright = Color(.sRGB, red: 0.1804, green: 0.4784, blue: 0.9608, opacity: 1.0000)
    /// Blue Muted — Deep blue for backgrounds and subtle indicators
    public static let blueMuted = Color(.sRGB, red: 0.0588, green: 0.2392, blue: 0.5412, opacity: 1.0000)
    /// Violet — Violet — AI cognitive layer; the convergence of red and blue
    public static let violet = Color(.sRGB, red: 0.4863, green: 0.2275, blue: 0.9294, opacity: 1.0000)
    /// Violet Bright — Brighter violet for hover states
    public static let violetBright = Color(.sRGB, red: 0.6235, green: 0.3608, blue: 0.9686, opacity: 1.0000)
    /// White — Pure white — primary text
    public static let white = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Gray 100 — Near-white — headings and high-emphasis text
    public static let gray100 = Color(.sRGB, red: 0.9020, green: 0.9098, blue: 0.9333, opacity: 1.0000)
    /// Gray 400 — Mid-gray — secondary text and metadata
    public static let gray400 = Color(.sRGB, red: 0.6118, green: 0.6392, blue: 0.6863, opacity: 1.0000)
    /// Gray 600 — Dark gray — muted text and disabled states
    public static let gray600 = Color(.sRGB, red: 0.2941, green: 0.3333, blue: 0.3882, opacity: 1.0000)
    /// Success — Green — engagement active, scan complete, finding resolved
    public static let success = Color(.sRGB, red: 0.0863, green: 0.6392, blue: 0.2902, opacity: 1.0000)
    /// Warning — Amber — degraded device, expiring artifact, elevated risk
    public static let warning = Color(.sRGB, red: 0.8510, green: 0.4667, blue: 0.0235, opacity: 1.0000)
    /// Error — Red error — distinct from brand red; critical system failure
    public static let error = Color(.sRGB, red: 0.8627, green: 0.1490, blue: 0.1490, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.white
    public static let surface = BrandSwatch.gray100
    public static let surfaceElevated = BrandSwatch.white
    public static let textPrimary = BrandSwatch.black
    public static let textSecondary = BrandSwatch.surfaceElevated
    public static let textTertiary = BrandSwatch.gray400
    public static let primary = BrandSwatch.blue
    public static let primaryHover = BrandSwatch.blueBright
    public static let accent = BrandSwatch.red
    public static let accentHover = BrandSwatch.redBright
    public static let mark = BrandSwatch.violet
    public static let warning = BrandSwatch.warning
    public static let error = BrandSwatch.error
    public static let success = BrandSwatch.success
    public static let border = BrandSwatch.border
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.black
    public static let surface = BrandSwatch.surface
    public static let surfaceElevated = BrandSwatch.surfaceElevated
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.gray100
    public static let textTertiary = BrandSwatch.gray400
    public static let primary = BrandSwatch.blue
    public static let primaryHover = BrandSwatch.blueBright
    public static let accent = BrandSwatch.red
    public static let accentHover = BrandSwatch.redBright
    public static let mark = BrandSwatch.violet
    public static let warning = BrandSwatch.warning
    public static let error = BrandSwatch.error
    public static let success = BrandSwatch.success
    public static let border = BrandSwatch.border
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.blue
    public static let onIdentity = BrandSwatch.white
    public static let primary = BrandSwatch.blue
    public static let primaryHover = BrandSwatch.blueBright
    public static let accent = BrandSwatch.red
    public static let accentHover = BrandSwatch.redBright
    public static let mark = BrandSwatch.violet
    public static let backgroundDark = BrandSwatch.black
    public static let surfaceDark = BrandSwatch.surface
    public static let surfaceElevatedDark = BrandSwatch.surfaceElevated
    public static let textPrimaryDark = BrandSwatch.white
    public static let textSecondaryDark = BrandSwatch.gray100
    public static let textTertiaryDark = BrandSwatch.gray400
    public static let borderDark = BrandSwatch.border
    public static let success = BrandSwatch.success
    public static let warning = BrandSwatch.warning
    public static let error = BrandSwatch.error
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Geist Sans (geist@1.0.0)
    public static let heading = "Geist"
    /// Inter (inter@1.0.0)
    public static let body = "Inter"
    /// JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)
    public static let mono = "JetBrainsMono Nerd Font"
}
