"""
Style Engine Module.
====================

Centralized design system for the 2026 Premium UI.
Defines color palettes, glassmorphism templates, and modern font loading.
"""

from PySide6.QtGui import QColor, QFont, QFontDatabase
import os

class Theme:
    """Premium Dark Theme Palette (2026 Edition)."""
    # Backgrounds
    BG_DARK = "#0d0d12"          # Deep cosmic black
    BG_CARD = "#16161e"          # Slightly lighter for components
    BG_GLASS = "rgba(22, 22, 30, 0.7)" # Semi-transparent for glass effect
    
    # Neons & Accents
    ACCENT_CYAN = "#00f2ff"      # Electric cyan
    ACCENT_PURPLE = "#7000ff"    # Deep cyber purple
    ACCENT_GREEN = "#00ff88"     # Mint neon
    
    # Text
    TEXT_PRIMARY = "#ffffff"     # Pure white
    TEXT_SECONDARY = "#9499b0"   # Muted blue-gray
    TEXT_MUTED = "#565f89"       # Darker blue-gray
    
    # Borders
    BORDER_SUBTLE = "rgba(100, 100, 150, 0.2)"
    BORDER_GLOW = "rgba(0, 242, 255, 0.5)"

class StyleGenerator:
    """Generates QSS strings for complex effects."""
    
    @staticmethod
    def get_glass_card(radius=12, border=True):
        """Returns QSS for a glassmorphism card."""
        border_css = f"border: 1px solid {Theme.BORDER_SUBTLE};" if border else "border: none;"
        return f"""
            background-color: {Theme.BG_GLASS};
            border-radius: {radius}px;
            {border_css}
        """

    @staticmethod
    def get_glow_border(color=Theme.ACCENT_CYAN):
        """Returns QSS for a glowing border state."""
        return f"border: 1px solid {color};"

def load_modern_fonts():
    """Attempts to load a modern font stack for the 2026 look."""
    # Preferred order: Segoe UI Variable, Inter, Segoe UI, sans-serif
    families = ["Segoe UI Variable Text", "Inter", "Segoe UI", "sans-serif"]
    
    for family in families:
        font = QFont(family, 10)
        if QFontDatabase.families().count(family) > 0:
            return font
            
    # Absolute fallback
    return QFont("Arial", 10)
