pragma Singleton
import QtQuick
import Quickshell

QtObject {
    id: theme

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

    // ── Base Backgrounds ───────────────────────────────────────────────────────
    readonly property color bg:      "#cc0d140d" // Deep mossy shadow
    readonly property color bgPanel: "transparent"
    readonly property color bgPopup: "#cc0d140d" // Dark forest floor
    readonly property color bgFrame: bg

    // ── Separators ────────────────────────────────────────────────────────────
    readonly property color separator: "#338bc34a" // Muted leaf green

    // ── Text ──────────────────────────────────────────────────────────────────
    readonly property color textMain:  "#fff1f8e9" // Creamy mint highlight
    readonly property color textDim:   "#99a5ad94" // Sage horizon gray
    readonly property color todayText: "#ffffffff"

    // ── Accent & Borders ──────────────────────────────────────────────────────
    readonly property color accent:       "#ffff5722" // Fiery vermilion (throat)
    readonly property color border:       "transparent"
    readonly property color frameBorder:  "transparent"
    readonly property color borderPopup:  "transparent"
    readonly property color borderToday:  accent

    // ── 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

    // ── Stats Module (Variation: Canopy Pulse) ───────────────────────────────
    readonly property color statsBg:          bgPanel
    readonly property color statsBorder:      border
    readonly property color statsCpuColor:    "#ffff5722" // Vermilion
    readonly property color statsMemColor:    "#ff8bc34a" // Bright green
    readonly property color statsDiskColor:   "#ff90caf9" // Bokeh sky blue
    readonly property color statsTrackColor:  "#15ffffff"

    // ── Volume Module (Variation: Forest Echo) ──────────────────────────────────
    readonly property color volBg:           bgPanel
    readonly property color volBgHover:      "#222e7d32"
    readonly property color volBorder:       border
    readonly property color volBorderHover:  "#ff8bc34a"
    readonly property color volPopupBg:      bgPopup
    readonly property color volPopupBorder:  borderPopup
    readonly property color volIcon:         "#ff8bc34a"
    readonly property color volIconMuted:    "#ff5d665d"
    readonly property color volTrack:        "#22ffffff"
    readonly property color volHandle:       accent
    readonly property color volHandleBorder: "#33ffffff"
    readonly property color volMuteBg:       "#33f44336"
    readonly property color volPickerHover:  "#15ff5722"

    // ── 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:     "#ffff5722" // Fiery glow
    readonly property color clockIcon:        accent

    // ── Battery Module ────────────────────────────────────────────────────────
    readonly property color batteryFull:      accent
    readonly property color batteryCharging:  "#ff8bc34a"
    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:   "#ffff5722"
    readonly property color batPopupText:     textMain
    readonly property color batPopupDim:      textDim
    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:     "#ffff5722"
    readonly property color netPopupText:       textMain
    readonly property color netPopupDim:        textDim
    readonly property color netFieldBg:         "#22ffffff"
    readonly property color netCancelBgHover:   "#22ffffff"
    readonly property color netConnectText:     "#ff0d140d"
    readonly property color netApActiveBg:      Qt.alpha(accent, 0.15)
    readonly property color netApHoverBg:       "#22ff5722"
    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)

    // ── Calendar Popup ─────────────────────────────────────────────────────────
    readonly property color calCardBg:        bgPopup
    readonly property color calCardBorder:    borderPopup
    readonly property color calSeparator:     separator
    readonly property color clockPopupHeader: "#ffff5722"
    readonly property color clockPopupText:   textMain
    readonly property color clockPopupDim:    textDim
    readonly property color clockPopupDate:   textMain
    readonly property color clockPopupUtc:    textDim
    readonly property color calArrowIcon:      textDim
    readonly property color calArrowIconHover: "#ffff5722"
    readonly property color calArrowBg:        "transparent"
    readonly property color calArrowBgHover:   "#22ff5722"
    readonly property color calArrowBgPress:   "#ffff5722"

    // ── 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:      "#332e7d32"
    readonly property color wsActiveText:   "#ff0d140d"
    readonly property color wsInactiveText: textMain
    readonly property color wsHoverText:    "#ffffffff"

    // ── 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:       textDim
    readonly property color trayMenuHover:     "#22ff5722"
    readonly property color trayMenuCheck:     accent
    readonly property color trayMenuSeparator: separator

    // ── Launcher (Variation: Forest Shade) ───────────────────────────────────
    readonly property color launcherBg:               bgPopup
    readonly property color launcherBorder:           borderPopup
    readonly property color launcherInput:            "#440d140d"
    readonly property color launcherInputBorderFocus: accent
    readonly property color launcherPill:             "#442e7d32"
    readonly property color launcherText:             textMain
    readonly property color launcherDim:              textDim
    readonly property color launcherAccent:           accent
    readonly property color launcherHover:            "#22ff5722"
    readonly property color launcherSelected:         "#44ff5722"
    readonly property color launcherModeActiveText:   "#ffffffff"
    readonly property color launcherModeActiveBg:     accent

    // ── Status Colors ──────────────────────────────────────────────────────────
    readonly property color statusOk:   "#ff8bc34a" // Leaf green
    readonly property color statusWarn: "#ffffa726" // Amber
    readonly property color statusErr:  "#fff44336" // Red bird feather
    readonly property color statusInfo: "#ff90caf9" // Bokeh sky blue

    // ── 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:    "#ffffffff"
    readonly property color notifSeparator:    separator
    readonly property color notifDnd:          separator

    // ── Toast cards (Variation: Canopy Glow) ─────────────────────────────────────
    readonly property color notifToastBg:      bgPopup
    readonly property color notifToastBgHover: "#22ffffff"
    readonly property color notifToastBorder:  borderPopup
    readonly property color notifToastText:    textMain
    readonly property color notifToastDim:     textDim
    readonly property color notifToastAppName: "#ff90caf9"

    // ── Urgency colours ────────────────────────────────────────────────────────
    readonly property color notifUrgencyCritical: statusErr
    readonly property color notifUrgencyNormal:   statusInfo
    readonly property color notifUrgencyLow:      textDim

    // ── 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:  "#11ff5722"
    readonly property color notifHistoryEmpty:  textDim

    // ── BgDate Module ──────────────────────────────────────────────────────────
    readonly property color bgDateText:        "#ffffffff"
    readonly property color bgDateShadow:      "#aa000000"
    readonly property color bgDateSecondsText: "#ffff5722"

    // ── 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:       textDim
    readonly property color cryptoValue:       textMain
    readonly property color cryptoUp:          "#ff8bc34a"
    readonly property color cryptoDown:        "#fff44336"

    readonly property color cryptoPopupBg:     bgPopup
    readonly property color cryptoPopupBorder: borderPopup
    readonly property color cryptoPopupHeader: "#ffff5722"
    readonly property color cryptoPopupText:   textMain
    readonly property color cryptoPopupDim:    textDim

    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:  "#ff0d140d"
    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:             "#1eff5722"
    readonly property color polkitIconBorder:         "#44ff5722"
    readonly property color polkitIconColor:          accent
    readonly property color polkitTitle:              textMain
    readonly property color polkitMessage:            "#cce1f8e9"
    readonly property color polkitPillBg:             "#1a2e7d32"
    readonly property color polkitPillText:           "#66a5ad94"
    readonly property color polkitDivider:            "#332e7d32"
    readonly property color polkitSuppErrBg:          "#1af44336"
    readonly property color polkitSuppErrBorder:      "#44f44336"
    readonly property color polkitSuppErrText:        statusErr
    readonly property color polkitSuppOkBg:           "#1a8bc34a"
    readonly property color polkitSuppOkBorder:       "#448bc34a"
    readonly property color polkitSuppOkText:         statusOk
    readonly property color polkitFieldBg:            "#440d140d"
    readonly property color polkitFieldBorder:        "#22ffffff"
    readonly property color polkitFieldBorderFocus:   accent
    readonly property color polkitUserLabel:          "#99a5ad94"
    readonly property color polkitUserValue:          accent
    readonly property color polkitInputPrompt:        "#88a5ad94"
    readonly property color polkitInputText:          textMain
    readonly property color polkitInputSelection:     "#55ff5722"
    readonly property color polkitInputSelectedText:  bg
    readonly property color polkitEyeIcon:            "#66a5ad94"
    readonly property color polkitEyeIconHover:       accent
    readonly property color polkitAuthBg:             "#ddff5722"
    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:         "#cce1f8e9"
}
