pragma Singleton
import QtQuick
import Quickshell

QtObject {
    id: theme

    // ── Wallpaper ──────────────────────────────────────────────────────────────
    readonly property string wallpaper: Quickshell.env("HOME") + "/.config/quickshell/wallpapers/tropicalnight.png"

    // ── Base Backgrounds ───────────────────────────────────────────────────────
    readonly property color bg:      "#fa161a22" // Deep navy-black from silhouettes
    readonly property color bgPanel: "transparent"
    readonly property color bgPopup: bg 
    readonly property color bgFrame: bg

    // ── Separators ────────────────────────────────────────────────────────────
    readonly property color separator: "#334a5d6e" // Muted sky blue-gray

    // ── Text ──────────────────────────────────────────────────────────────────
    // reduced whiteness — cooler/dimmer grays for primary text
    readonly property color textMain:  "#ffbfc6c9" // less-white moonlit gray
    readonly property color textDim:   "#ff92979b" // dimmer gray

    // ── Accent & Borders ──────────────────────────────────────────────────────
    readonly property color accent:       "#ff89b4fa" // Summer sky blue (Main Accent)
    readonly property color border:       "transparent"
    readonly property color frameBorder:  "transparent" 
    readonly property color borderPopup:  "transparent" 

    // ── Logo Module ───────────────────────────────────────────────────────
    readonly property color logoBg:           bgPanel
    readonly property color logoBgHover:      "#22ffffff"
    readonly property color logoBorder:       border
    readonly property color logoBorderActive: accent
    readonly property color logoIcon:         textMain
    readonly property color logoIconActive:   accent


    // ── Mpris Module ──────────────────────────────────────────────────────────
    readonly property color mprisAccent:       accent
    readonly property color mprisTextMain:     textMain
    readonly property color mprisTextDim:      textDim
    readonly property color mprisTrackColor:   statsTrackColor
    readonly property color mprisButtonText:   bgPopup
    readonly property color mprisAlbumBg:      Qt.alpha(accent, 0.08)
    readonly property color mprisAlbumBorder:  Qt.alpha(accent, 0.15)
    readonly property color mprisBtnBg:        Qt.alpha(accent, 0.10)
    readonly property color mprisBtnBgHover:   Qt.alpha(accent, 0.22)
    readonly property color mprisBtnBorder:    Qt.alpha(accent, 0.20)
    readonly property color mprisBtnBorderHover: Qt.alpha(accent, 0.45)
    readonly property color mprisBtnIcon:      accent
    readonly property color mprisBtnIconHover: Qt.lighter(accent, 1.3)
    // ── Stats Module ──────────────────────────────────────────────────────────
    readonly property color statsBg:          bgPanel
    readonly property color statsBorder:      border
    readonly property color statsCpuColor:    "#ff89b4fa" 
    readonly property color statsMemColor:    "#ffb4c9a1" // Soft moonlit green
    readonly property color statsDiskColor:   "#ff94e2d5" 
    readonly property color statsTrackColor:  "#15ffffff"
    readonly property color statsCpuTempColor: "#fff38ba8" // Warm rose red
    readonly property color statsGpuColor:    "#fffab387" // Warm peach


    // ── SysInfo Module ────────────────────────────────────────────────────────
    readonly property color sysInfoAccent:      accent
    readonly property color sysInfoTextMain:    textMain
    readonly property color sysInfoTextDim:     textDim
    readonly property color sysInfoCpuColor:    statsCpuColor
    readonly property color sysInfoMemColor:    statsMemColor
    readonly property color sysInfoDiskColor:   statsDiskColor
    readonly property color sysInfoCpuTempColor: statsCpuColor
    readonly property color sysInfoGpuColor:    statsGpuColor
    readonly property color sysInfoTrackColor:  statsTrackColor
    // ── Volume Module ─────────────────────────────────────────────────────────
    readonly property color volBg:           bgPanel
    readonly property color volBgHover:      "#224a5d6e"
    readonly property color volBorder:       border
    readonly property color volBorderHover:  accent
    readonly property color volPopupBg:      bgPopup
    readonly property color volPopupBorder:  borderPopup
    readonly property color volIcon:         accent 
    readonly property color volIconMuted:    "#ff5a6b78"
    readonly property color volTrack:        "#22ffffff"
    readonly property color volHandle:       accent
    readonly property color volHandleBorder: "#33ffffff"
    readonly property color volMuteBg:       "#33f38ba8"
    readonly property color volPickerHover:  "#1589b4fa"

    // ── Volume Limit Buttons ────────────────────────────────────────────────
    readonly property color volLimitBtn:       "transparent"
    readonly property color volLimitBtnHover:  "#22ffffff"
    readonly property color volLimitBtnPress:       accent
    readonly property color volOutputLimitBtnPress:  accent
    readonly property color volInputLimitBtnPress:   statusInfo
    readonly property color volOutputLimitBtnHover:  Qt.alpha(accent, 0.08)
    readonly property color volInputLimitBtnHover:   Qt.alpha(statusInfo, 0.08)

    // ── Clock Module ───────────────────────────────────────────────────────────
    readonly property color clockBg:          bgPanel
    readonly property color clockBgHover:     "#11ffffff"
    readonly property color clockBorder:      border
    readonly property color clockBorderHover: accent
    readonly property color clockTime:        textMain
    readonly property color clockSeconds:     "#ff89b4fa" 
    readonly property color clockIcon:        accent

    // ── Battery Module ────────────────────────────────────────────────────────
    readonly property color batteryFull:      accent
    readonly property color batteryCharging:  accent
    readonly property color batteryCritical:  statusErr
    readonly property color batteryLow:       statusWarn
    readonly property color batteryIcon:      clockIcon
    readonly property color batBg:            bgPanel
    readonly property color batBgHover:       "#11ffffff"
    readonly property color batBorder:        border
    readonly property color batBorderHover:   accent
    readonly property color batText:          textMain
    readonly property color batPopupBg:       bgPopup
    readonly property color batPopupBorder:   borderPopup
    readonly property color batPopupSeparator: separator
    readonly property color batPopupHeader:   accent
    readonly property color batPopupText:     textMain
    readonly property color batPopupDim:      "#ff92979b"
    readonly property color batProgressTrack: separator
    readonly property color batProfileActiveText: bg

    // ── Network Module ───────────────────────────────────────────────────────
    readonly property color netBg:              bgPanel
    readonly property color netBgHover:         "#11ffffff"
    readonly property color netBorder:          border
    readonly property color netBorderHover:     accent
    readonly property color netText:            textMain
    readonly property color netPopupBg:         bgPopup
    readonly property color netPopupBorder:     borderPopup
    readonly property color netPopupSeparator:  separator
    readonly property color netPopupHeader:     accent
    readonly property color netPopupText:       textMain
    readonly property color netPopupDim:        "#ff92979b"
    readonly property color netFieldBg:         "#22ffffff"
    readonly property color netCancelBgHover:   "#22ffffff"
    readonly property color netConnectText:     "#ff0c0e12"
    readonly property color netApActiveBg:      Qt.alpha(accent, 0.15)
    readonly property color netApHoverBg:       "#2289b4fa"
    readonly property color netDisconnectBg:    Qt.alpha(statusErr, 0.18)
    readonly property color netDisconnectBorder: Qt.alpha(statusErr, 0.45)
    readonly property color netWiredOkBg:       Qt.alpha(statusOk, 0.12)
    readonly property color netWiredErrBg:      Qt.alpha(statusErr, 0.12)
    readonly property color netWiredOkBorder:   Qt.alpha(statusOk, 0.4)
    readonly property color netWiredErrBorder:  Qt.alpha(statusErr, 0.4)
    readonly property color netWifiIconOk:    "#ffb4c9a1"   // moonlit sage green
    readonly property color netWifiIconErr:   "#fff38ba8"   // rose pink, night bloom
    readonly property color netEthIconOk:     "#ffb4c9a1"
    readonly property color netEthIconErr:    "#fff38ba8"

    // ── Calendar Popup ─────────────────────────────────────────────────────────
    readonly property color calCardBg:        bgPopup
    readonly property color calCardBorder:    borderPopup
    readonly property color calSeparator:     separator
    readonly property color calTodayBg:       accent
    readonly property color borderToday:	  accent
    readonly property color todayText:        "#ffccd1d4" // subdued off-white
    readonly property color clockPopupHeader: accent
    readonly property color clockPopupText:   textMain
    readonly property color clockPopupDim:    "#ff92979b"
    readonly property color clockPopupDate:   textMain  
    readonly property color clockPopupUtc:    "#ff92979b"   
    readonly property color calArrowIcon:      "#ff92979b"             
    readonly property color calArrowIconHover: accent         
    readonly property color calArrowBg:        "transparent"       
    readonly property color calArrowBgHover:   "#2289b4fa"         
    readonly property color calArrowBgPress:   accent         


    // ── Weather Module ──────────────────────────────────────────────────────
    readonly property color weatherAccent:      accent
    readonly property color weatherTextMain:    textMain
    readonly property color weatherTextDim:     textDim
    readonly property color weatherTempColor:   "#fff38ba8"
    readonly property color weatherFeelsColor:  "#ffcba6f7"
    readonly property color weatherHumidColor:  "#ff89b4fa"
    readonly property color weatherWindColor:   "#ff94e2d5"
    // ── Workspace Module ───────────────────────────────────────────────────────
    readonly property color wsPanelBg:      bgPanel
    readonly property color wsPanelBorder:  "transparent"
    readonly property color wsActiveBg:     accent
    readonly property color wsInactiveBg:   "#15ffffff"
    readonly property color wsHoverBg:      "#334a5d6e"
    readonly property color wsActiveText:   "#ff0c0e12" 
    readonly property color wsInactiveText: textMain
    readonly property color wsHoverText:    "#ffccd1d4"
    readonly property color wsMagicActiveBg:   "#ff9b6df5"
    readonly property color wsMagicActiveText: "#ff0c0e12"

    // ── Tray Module ────────────────────────────────────────────────────────────
    readonly property color trayBg:          bgPanel
    readonly property color trayBgHover:     "#11ffffff"
    readonly property color trayBorder:      border
    readonly property color trayBorderHover: "#22ffffff"
    readonly property color trayIcon:        textMain

    // ── Tray Context Menu ──────────────────────────────────────────────────────
    readonly property color trayMenuBg:        bgPopup
    readonly property color trayMenuBorder:    borderPopup
    readonly property color trayMenuText:      textMain
    readonly property color trayMenuDim:       "#ff92979b"
    readonly property color trayMenuHover:     "#2289b4fa"   
    readonly property color trayMenuCheck:     accent
    readonly property color trayMenuSeparator: separator

    // ── Launcher ─────────────────────────────────────────────────────────────
    readonly property color launcherBg:               bgPopup
    readonly property color launcherBorder:           borderPopup
    readonly property color launcherInput:            "#44080a0d"
    readonly property color launcherInputBorderFocus: accent
    readonly property color launcherPill:             "#444a5d6e"
    readonly property color launcherText:             textMain
    readonly property color launcherDim:              "#ff92979b"
    readonly property color launcherStar:      launcherDim
    readonly property color launcherStarHover: accent
    readonly property color launcherAccent:           accent
    readonly property color launcherHover:            "#2289b4fa"
    readonly property color launcherSelected:         "#4489b4fa"
    readonly property color launcherModeActiveText:   "#ffccd1d4"
    readonly property color launcherModeActiveBg:     accent

    // ── Status Colors ──────────────────────────────────────────────────────────
    readonly property color statusOk:   "#ffb4c9a1" 
    readonly property color statusWarn: "#ff89b4fa" 
    readonly property color statusErr:  "#fff38ba8" 
    readonly property color statusInfo: "#ff89b4fa"

    // ── Notifications Module ───────────────────────────────────────────────────
    readonly property color notifBg:           bgPanel
    readonly property color notifBgHover:      "#11ffffff"
    readonly property color notifBorder:       border
    readonly property color notifBorderActive: accent
    readonly property color notifIcon:         textMain
    readonly property color notifIconActive:   accent
    readonly property color notifBadgeBg:      statusErr
    readonly property color notifBadgeText:    "#ffccd1d4"
    readonly property color notifSeparator:    separator
    readonly property color notifDnd:          separator

    // ── Toast cards ───────────────────────────────────────────────────────────
    readonly property color notifToastBg:      bgPopup
    readonly property color notifToastBgHover: "#22ffffff"
    readonly property color notifToastBorder:  borderPopup
    readonly property color notifToastText:    textMain
    readonly property color notifToastDim:     "#ff92979b"
    readonly property color notifToastAppName: "#ff89b4fa"

    // ── Urgency colours ───────────────────────────────────────────────────────
    readonly property color notifUrgencyCritical: statusErr
    readonly property color notifUrgencyNormal:   statusInfo
    readonly property color notifUrgencyLow:      "#ff92979b"

    // ── Progress bar ───────────────────────────────────────────────────────────
    readonly property color notifProgressBg:   "#22ffffff"
    readonly property color notifProgressFill: accent

    // ── History popup ──────────────────────────────────────────────────────────
    readonly property color notifHistoryBg:     bgPopup
    readonly property color notifHistoryBorder: borderPopup
    readonly property color notifHistoryHover:  "#1189b4fa"
    readonly property color notifHistoryEmpty:  "#ff92979b"

    // ── BgDate Module ─────────────────────────────────────────────────────────
    readonly property color bgDateText:        accent       
    readonly property color bgDateShadow:      "#88000000"       
    readonly property color bgDateSecondsText: accent       

    // ── Crypto Module ─────────────────────────────────────────────────────────
    readonly property color cryptoBg:          bgPanel
    readonly property color cryptoBgHover:     "#15ffffff"     
    readonly property color cryptoBorder:      border
    readonly property color cryptoBorderHover: accent                
    readonly property color cryptoIcon:        accent                 
    readonly property color cryptoLabel:       "#ff92979b"               
    readonly property color cryptoValue:       textMain              
    readonly property color cryptoUp:          "#ffb4c9a1"           
    readonly property color cryptoDown:        "#fff38ba8"           
    readonly property color cryptoPopupBg:     bgPopup
    readonly property color cryptoPopupBorder: borderPopup
    readonly property color cryptoPopupHeader: accent           
    readonly property color cryptoPopupText:   textMain
    readonly property color cryptoPopupDim:    "#ff92979b"

    readonly property color cryptoUpBg:          Qt.rgba(cryptoUp.r, cryptoUp.g, cryptoUp.b, 0.13)
    readonly property color cryptoDownBg:        Qt.rgba(cryptoDown.r, cryptoDown.g, cryptoDown.b, 0.13)
    readonly property color cryptoChipRemoveBg:  Qt.rgba(cryptoDown.r, cryptoDown.g, cryptoDown.b, 0.27)
    readonly property color cryptoApplyIdleBg:   Qt.rgba(accent.r, accent.g, accent.b, 0.20)

    readonly property color cryptoFieldBg:       "#15ffffff"
    readonly property color cryptoFieldBgFocus:  "#22ffffff"
    readonly property color cryptoRangeTrack:    "#1affffff"
    readonly property color cryptoTextOnAccent:  "#ff0c0e12"
    readonly property color cryptoPlaceholder:   Qt.rgba(textDim.r, textDim.g, textDim.b, 0.33)

    // ── Polkit Dialog ──────────────────────────────────────────────────────────
    readonly property color polkitOverlayBg:          "#bb000000"   
    readonly property color polkitCardBg:             bgPopup    
    readonly property color polkitCardBorder:         border    
    readonly property color polkitIconBg:             "#1e89b4fa"    
    readonly property color polkitIconBorder:         "#4489b4fa"    
    readonly property color polkitIconColor:          accent         
    readonly property color polkitTitle:              textMain   
    readonly property color polkitMessage:            "#c2c8cb"    
    readonly property color polkitPillBg:             "#1a4a5d6e"    
    readonly property color polkitPillText:           "#ff92979b"    
    readonly property color polkitDivider:            "#334a5d6e"    
    readonly property color polkitSuppErrBg:          "#1af38ba8"    
    readonly property color polkitSuppErrBorder:      "#44f38ba8"    
    readonly property color polkitSuppErrText:        statusErr      
    readonly property color polkitSuppOkBg:           "#1ab4c9a1"    
    readonly property color polkitSuppOkBorder:       "#44b4c9a1"    
    readonly property color polkitSuppOkText:         statusOk       
    readonly property color polkitFieldBg:            "#44080a0d"    
    readonly property color polkitFieldBorder:        "#22929297"    
    readonly property color polkitFieldBorderFocus:   accent         
    readonly property color polkitUserLabel:          "#ff92979b"    
    readonly property color polkitUserValue:          accent         
    readonly property color polkitInputPrompt:        "#8892979b"    
    readonly property color polkitInputText:          textMain       
    readonly property color polkitInputSelection:     "#5589b4fa"    
    readonly property color polkitInputSelectedText:  bg             
    readonly property color polkitEyeIcon:            "#667a8996"    
    readonly property color polkitEyeIconHover:       accent         
    readonly property color polkitAuthBg:             "#dd89b4fa"    
    readonly property color polkitAuthBgHover:        accent         
    readonly property color polkitAuthText:           bg             
    readonly property color polkitCancelBg:           "#0dffffff" 
    readonly property color polkitCancelBgHover:      "#22ffffff"    
    readonly property color polkitCancelBorder:       "#22ffffff"    
    readonly property color polkitCancelText:         "#c2c8cb" 
}
