dashboards/HerdManager/Styles.ps1

# HerdManager Dashboard Styles
# Centralized styling system that works well in both light and dark modes

# Color Palette - Using CSS variables for theme-aware colors
# Using Global scope so it's accessible in Universal Dashboard page contexts
$Global:HerdStyles = @{
    
    # Primary Colors (using transparency and theme-aware colors)
    Colors = @{
        Primary      = '#4CAF50'  # Green
        PrimaryLight = '#81C784'
        PrimaryDark  = '#388E3C'
        Secondary    = '#2196F3'  # Blue
        Accent       = '#FF9800'  # Orange
        Success      = '#4CAF50'
        Warning      = '#FF9800'
        Error        = '#F44336'
        Info         = '#2196F3'
    }
    
    # Card Styles - Theme-aware with proper contrast
    Card = @{
        Default = @{
            borderRadius = '12px'
            boxShadow    = '0 2px 8px rgba(0,0,0,0.1)'
            border       = '1px solid rgba(0,0,0,0.08)'
            marginBottom = '20px'
        }
        
        Elevated = @{
            borderRadius = '16px'
            boxShadow    = '0 4px 12px rgba(0,0,0,0.15)'
            border       = '1px solid rgba(0,0,0,0.06)'
            marginBottom = '30px'
        }
        
        Accent = @{
            borderRadius = '12px'
            boxShadow    = '0 3px 10px rgba(76, 175, 80, 0.2)'
            border       = '2px solid rgba(76, 175, 80, 0.3)'
            marginBottom = '20px'
        }
    }
    
    # Page Header Styles
    PageHeader = @{
        Hero = @{
            borderRadius = '12px'
            padding      = '24px'
            marginBottom = '24px'
            boxShadow    = '0 4px 6px rgba(0,0,0,0.1)'
        }
        
        Title = @{
            marginBottom = '8px'
            fontWeight   = '600'
        }
        
        Subtitle = @{
            opacity = '0.8'
        }
    }
    
    # Button Styles
    Button = @{
        Primary = @{
            backgroundColor = '#4CAF50'
            color           = 'white'
            borderRadius    = '8px'
            textTransform   = 'none'
            fontWeight      = '500'
            padding         = '8px 16px'
        }
        
        Secondary = @{
            borderRadius  = '8px'
            textTransform = 'none'
            fontWeight    = '500'
            padding       = '8px 16px'
        }
        
        Danger = @{
            backgroundColor = '#d32f2f'
            color           = 'white'
            borderRadius    = '8px'
            textTransform   = 'none'
        }
    }
    
    # Modal/Dialog Styles
    Modal = @{
        Container = @{
            borderRadius = '12px'
            boxShadow    = '0 8px 32px rgba(0,0,0,0.3)'
        }
        
        Header = @{
            padding      = '20px'
            margin       = '-20px -20px 20px -20px'
            borderRadius = '12px 12px 0 0'
        }
        
        HeaderGradient = @{
            padding    = '20px'
            background = 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)'
            color      = 'white'
            margin     = '-20px -20px 20px -20px'
            borderRadius = '12px 12px 0 0'
        }
        
        HeaderSuccess = @{
            padding         = '20px'
            backgroundColor = '#4CAF50'
            color           = 'white'
            margin          = '-20px -20px 20px -20px'
            borderRadius    = '12px 12px 0 0'
        }
        
        HeaderWarning = @{
            padding         = '20px'
            backgroundColor = '#FF9800'
            color           = 'white'
            margin          = '-20px -20px 20px -20px'
            borderRadius    = '12px 12px 0 0'
        }
    }
    
    # Form Styles
    Form = @{
        Container = @{
            padding = '16px'
        }
        
        Section = @{
            marginBottom = '24px'
        }
        
        FieldSpacing = @{
            marginBottom = '16px'
        }
    }
    
    # Grid/Layout Styles
    Layout = @{
        Container = @{
            marginBottom = '20px'
        }
        
        Section = @{
            marginBottom = '32px'
        }
        
        Spacer = @{
            marginTop    = '16px'
            marginBottom = '16px'
        }
    }
    
    # Table Styles - Works with Universal Dashboard's built-in dark mode
    Table = @{
        Container = @{
            borderRadius = '8px'
            overflow     = 'hidden'
        }
    }
    
    # Typography Styles
    Typography = @{
        PageTitle = @{
            marginBottom = '20px'
            fontWeight   = '600'
        }
        
        SectionTitle = @{
            marginBottom = '16px'
            marginTop    = '8px'
            fontWeight   = '500'
        }
        
        Muted = @{
            opacity = '0.7'
        }
        
        Emphasis = @{
            fontWeight = '600'
        }
    }
    
    # Alert/Banner Styles
    Alert = @{
        Default = @{
            borderRadius = '8px'
            marginBottom = '16px'
        }
    }
    
    # Stat/Metric Card Styles
    StatCard = @{
        Default = @{
            borderRadius = '12px'
            padding      = '20px'
            textAlign    = 'center'
            boxShadow    = '0 2px 8px rgba(0,0,0,0.1)'
            border       = '1px solid rgba(0,0,0,0.06)'
        }
        
        Success = @{
            borderRadius = '12px'
            padding      = '20px'
            textAlign    = 'center'
            boxShadow    = '0 2px 8px rgba(76, 175, 80, 0.2)'
            border       = '2px solid rgba(76, 175, 80, 0.3)'
        }
        
        Warning = @{
            borderRadius = '12px'
            padding      = '20px'
            textAlign    = 'center'
            boxShadow    = '0 2px 8px rgba(255, 152, 0, 0.2)'
            border       = '2px solid rgba(255, 152, 0, 0.3)'
        }
    }
}