pragma Singleton
import QtQuick
import Quickshell

QtObject {
    id: theme

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

    // ── Base Backgrounds ───────────────────────────────────────────────────────
    readonly property color bg:      "#cc14110d" // Deepest foreground shadow
    readonly property color bgPanel: "transparent"
    readonly property color bgPopup: "#dd19140f" // Near-black building silhouettes
    readonly property color bgFrame: bg

    // ── Separators ────────────────────────────────────────────────────────────
    readonly property color separator: "#44caa01f" // Muted sky blue-gray

    // ── Text ──────────────────────────────────────────────────────────────────
    readonly property color textMain:  "#fff1dfbf" // Bright cloud highlight white
    readonly property color textDim:   "#99a88b62" // Hazy horizon gray

    // ── Accent & Borders ──────────────────────────────────────────────────────
    readonly property color accent:       "#ffffa51f" // Warm hazy horizon gold
    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:      "#22f1dfbf"
    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 (Variation: Skyline Pulse) ───────────────────────────────
    readonly property color statsBg:          bgPanel
    readonly property color statsBorder:      border
    readonly property color statsCpuColor:    "#ffffa51f" // Horizon gold
    readonly property color statsMemColor:    "#ff8f1018" // Building window blue
    readonly property color statsDiskColor:   "#ff5b6b1f" // Teal office light
    readonly property color statsTrackColor:  "#15f1dfbf"
    readonly property color statsCpuTempColor: "#fff38ba8" // Warm rose red
    readonly property color statsGpuColor:    "#ffe05230" // Terracotta


    // ── 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 (Variation: Hazy Dusk) ──────────────────────────────────
    readonly property color volBg:           bgPanel
    readonly property color volBgHover:      "#33f2b425"
    readonly property color volBorder:       border
    readonly property color volBorderHover:  "#ff8f1018"
    readonly property color volPopupBg:      bgPopup
    readonly property color volPopupBorder:  borderPopup
    readonly property color volIcon:         "#ff8f1018" 
    readonly property color volIconMuted:    "#ff6b2d2d"
    readonly property color volTrack:        "#22f1dfbf"
    readonly property color volHandle:       accent
    readonly property color volHandleBorder: "#33f1dfbf"
    readonly property color volMuteBg:       "#44f2b425"
    readonly property color volPickerHover:  "#15d97a1e"

    // ── Volume Limit Buttons ────────────────────────────────────────────────
    readonly property color volLimitBtn:       "transparent"
    readonly property color volLimitBtnHover:  "#33f2b425"
    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:     "#11f1dfbf"
    readonly property color clockBorder:      border
    readonly property color clockBorderHover: accent
    readonly property color clockTime:        textMain
    readonly property color clockSeconds:     "#ffffa51f" // Sun-glow gold
    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:       "#11f1dfbf"
    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:   "#ffffa51f"
    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:         "#11f1dfbf"
    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:     "#ffffa51f"
    readonly property color netPopupText:       textMain
    readonly property color netPopupDim:        textDim
    readonly property color netFieldBg:         "#22f1dfbf"
    readonly property color netCancelBgHover:   "#22f1dfbf"
    readonly property color netConnectText:     "#ff0c0e12"
    readonly property color netApActiveBg:      Qt.alpha(accent, 0.15)
    readonly property color netApHoverBg:       calArrowBgHover
    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"   // soft sage green
    readonly property color netWifiIconErr:   "#fff38ba8"   // soft rose pink
    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:        "#fff8e7c9"
    readonly property color clockPopupHeader: "#ffffa51f"
    readonly property color clockPopupText:   textMain
    readonly property color clockPopupDim:    textDim
    readonly property color clockPopupDate:   textMain  // Numeric date in the popup (month/day/year)
    readonly property color clockPopupUtc:    textDim   // UTC offset label (e.g. UTC +2)
    readonly property color calArrowIcon:      textDim             // Default arrow glyph color
    readonly property color calArrowIconHover: "#ffffa51f"         // Hovered arrow — horizon gold
    readonly property color calArrowBg:        "transparent"       // Default button background
    readonly property color calArrowBgHover:   "#33f2b425"         // Hovered button — soft gold tint
    readonly property color calArrowBgPress:   "#ffffa51f"         // Pressed button — full horizon gold


    // ── 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:   "#15f1dfbf"
    readonly property color wsHoverBg:      "#334a5d6e"
    readonly property color wsActiveText:   "#ff0c0e12" 
    readonly property color wsInactiveText: textMain
    readonly property color wsHoverText:    "#fff8e7c9"
    readonly property color wsMagicActiveBg:   "#ff9b6df5"
    readonly property color wsMagicActiveText: "#ff0c0e12"

    // ── Tray Module ────────────────────────────────────────────────────────────
    readonly property color trayBg:          bgPanel
    readonly property color trayBgHover:     "#11f1dfbf"
    readonly property color trayBorder:      border
    readonly property color trayBorderHover: "#22f1dfbf"
    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:     "#33f2b425"   // soft gold tint
    readonly property color trayMenuCheck:     accent
    readonly property color trayMenuSeparator: separator

    // ── Launcher (Variation: Shanghai Mist) ───────────────────────────────────
    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:              textDim
    readonly property color launcherStar:      launcherDim
    readonly property color launcherStarHover: accent
    readonly property color launcherAccent:           accent
    readonly property color launcherHover:            "#33f2b425"
    readonly property color launcherSelected:         "#44c19375"
    readonly property color launcherModeActiveText:   "#fff8e7c9"
    readonly property color launcherModeActiveBg:     accent

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

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

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

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

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

    // ── History popup ──────────────────────────────────────────────────────────
    readonly property color notifHistoryBg:     bgPopup
    readonly property color notifHistoryBorder: borderPopup
    readonly property color notifHistoryHover:  "#11c19375"
    readonly property color notifHistoryEmpty:  textDim

    // ── BgDate Module ──────────────────────────────────────────────────────────
    readonly property color bgDateText:        "#fff8e7c9"       // Pure white (brightest possible)
    readonly property color bgDateShadow:      "#88000000"       // Slightly softer shadow to let the white glow
    readonly property color bgDateSecondsText: bgDateText       // Brighter, more "sunlight" gold/yellow

    // ── Crypto Module ──────────────────────────────────────────────────────────
    readonly property color cryptoBg:          bgPanel
    readonly property color cryptoBgHover:     "#15f1dfbf"           // subtle hover wash (matches other modules)
    readonly property color cryptoBorder:      border
    readonly property color cryptoBorderHover: accent                // horizon gold on hover / when popup is open

    readonly property color cryptoIcon:        accent                 // coin glyph colour
    readonly property color cryptoLabel:       textDim               // "BTC/USD: " prefix
    readonly property color cryptoValue:       textMain              // price number on chip

    readonly property color cryptoUp:          "#ffb4c9a1"           // ▲ positive change — soft green
    readonly property color cryptoDown:        "#fff38ba8"           // ▼ negative change — soft red

    // Popup card
    readonly property color cryptoPopupBg:     bgPopup
    readonly property color cryptoPopupBorder: borderPopup
    readonly property color cryptoPopupHeader: "#ffffa51f"           // horizon gold (matches clock popup)
    readonly property color cryptoPopupText:   textMain
    readonly property color cryptoPopupDim:    textDim

    // Tinted surfaces (derived from main colours)
    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:       "#15f1dfbf"
    readonly property color cryptoFieldBgFocus:  "#22f1dfbf"
    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 ──────────────────────────────────────────────────────────
    // Overlay
    readonly property color polkitOverlayBg:          "#bb000000"    // dim backdrop behind the card

    // Card chrome
    readonly property color polkitCardBg:             bgPopup    // near-opaque deep shadow (matches bgPopup family)
    readonly property color polkitCardBorder:         border    // faint horizon-gold ring

    // Lock icon
    readonly property color polkitIconBg:             "#1ec19375"    // translucent gold fill
    readonly property color polkitIconBorder:         "#44c19375"    // stronger gold ring
    readonly property color polkitIconColor:          accent         // glyph — horizon gold

    // Text hierarchy
    readonly property color polkitTitle:              textMain       // "Authentication Required"
    readonly property color polkitMessage:            "#cce8eef2"    // main message (slightly dimmed)

    // Action-ID pill
    readonly property color polkitPillBg:             "#1a4a5d6e"    // muted sky-blue tint
    readonly property color polkitPillText:           "#667a8996"    // monospace action-id label

    // Divider between pill and supplementary area
    readonly property color polkitDivider:            "#334a5d6e"    // separator line

    // Supplementary message — error state
    readonly property color polkitSuppErrBg:          "#1af38ba8"    // translucent rose fill
    readonly property color polkitSuppErrBorder:      "#44f38ba8"    // rose ring
    readonly property color polkitSuppErrText:        statusErr      // rose icon + text

    // Supplementary message — info / ok state
    readonly property color polkitSuppOkBg:           "#1ab4c9a1"    // translucent sage fill
    readonly property color polkitSuppOkBorder:       "#44b4c9a1"    // sage ring
    readonly property color polkitSuppOkText:         statusOk       // sage icon + text

    // Fields (password input & identity selector share the same palette)
    readonly property color polkitFieldBg:            "#44080a0d"    // deep dark fill
    readonly property color polkitFieldBorder:        "#22f1dfbf"    // inactive border
    readonly property color polkitFieldBorderFocus:   accent         // focused border — horizon gold

    // Identity selector text
    readonly property color polkitUserLabel:          "#997a8996"    // "User:" prefix
    readonly property color polkitUserValue:          accent         // selected identity name

    // Input prompt label above the password field
    readonly property color polkitInputPrompt:        "#887a8996"    // dim label

    // TextInput inside the password field
    readonly property color polkitInputText:          textMain       // typed text
    readonly property color polkitInputSelection:     "#55c19375"    // selection highlight
    readonly property color polkitInputSelectedText:  bg             // text over selection

    // Eye / show-password toggle
    readonly property color polkitEyeIcon:            "#667a8996"    // default glyph
    readonly property color polkitEyeIconHover:       accent         // hovered glyph

    // Authenticate button
    readonly property color polkitAuthBg:             "#ddc19375"    // slightly-muted gold fill
    readonly property color polkitAuthBgHover:        accent         // full gold on hover
    readonly property color polkitAuthText:           bg             // dark label on gold

    // Cancel button
    readonly property color polkitCancelBg:           "#0dffffff"    // ghost fill
    readonly property color polkitCancelBgHover:      "#22f1dfbf"    // brighter ghost on hover
    readonly property color polkitCancelBorder:       "#22f1dfbf"    // outline
    readonly property color polkitCancelText:         "#cce8eef2"    // slightly-dimmed white label
}
