-- zSF_Style.lua
-- Visual style constants for the zSettingsFrame framework.
-- These are neutral defaults — load order places this file BEFORE the host addon's
-- Defaults.lua, so no addon globals are reachable here. The bridge file (loaded
-- after the host addon) should override any values it wants to theme (e.g. border color).

-- ── Colors ───────────────────────────────────────────────────────────────────
-- Main panel background (the content / right-hand area).
-- Deliberately very transparent so the panel bg images show through.
ZSF.COLOR_PANEL_BG    = { 0, 0, 0, 0.10 }

-- WoW class colors
ZSF.CLASS_DEATHKNIGHT = { 0.77, 0.12, 0.23 }
ZSF.CLASS_DEMONHUNTER = { 0.64, 0.19, 0.79 }
ZSF.CLASS_DRUID  = { 1.0,  0.49, 0.04 }
ZSF.CLASS_EVOKER = { 0.20, 0.58, 0.50 }
ZSF.CLASS_HUNTER = { 0.67, 0.83, 0.45 }
ZSF.CLASS_MAGE   = { 0.25, 0.78, 0.92 }
ZSF.CLASS_MONK   = { 0.0,  1.0,  0.60 }
ZSF.CLASS_PALADIN= { 0.96, 0.55, 0.73 }
ZSF.CLASS_PRIEST = { 1.0,  1.0,  1.0  }
ZSF.CLASS_ROGUE  = { 1.0,  0.96, 0.41 }
ZSF.CLASS_SHAMAN = { 0.0,  0.44, 0.87 }
ZSF.CLASS_WARLOCK= { 0.53, 0.53, 0.93 }
ZSF.CLASS_WARRIOR= { 0.78, 0.61, 0.43 }

-- Default theme accent colors used when no adapter.themeColors are supplied.
ZSF.DEFAULT_PRIMARY   = ZSF.CLASS_EVOKER
ZSF.DEFAULT_SECONDARY = ZSF.CLASS_PALADIN

-- Sidebar, title bar, tab strip, and status bar overlay.
-- Semi-transparent so the bg images bleed through, but darker than the content
-- area to give the layout chrome-vs-content distinction.
ZSF.COLOR_SIDEBAR_BG  = { 0, 0, 0, 0.45 }

-- Row hover highlight — subtle warm tint so it reads against the dark bg.
ZSF.COLOR_ROW_HOVER   = { 1.0,  0.90, 0.65, 0.12 }

-- Outer frame border and widget edges.
-- OVERRIDE this in the bridge file to use the addon's accent color.
ZSF.COLOR_BORDER      = { 0.35, 0.35, 0.35, 0.65 }

-- Primary label text.
ZSF.COLOR_LABEL       = { 0.90, 0.90, 0.90, 1.0  }

-- Secondary description / sub-label text.
ZSF.COLOR_DESC        = { 0.58, 0.58, 0.58, 1.0  }

-- Section header text (warm tone, intentionally close to the border accent color
-- so both can be driven by the same override in the bridge).
ZSF.COLOR_HEADER_TEXT = { 0.85, 0.75, 0.30, 1.0  }

-- Disabled control text and icons.
ZSF.COLOR_DISABLED    = { 0.38, 0.38, 0.38, 1.0  }

-- Row frame alpha when disableWhen is active.
ZSF.DISABLED_ALPHA    = 0.40

-- Active / selected sidebar tab / nav item highlight.
-- Transparent so bg images still bleed through; slightly darker than SIDEBAR_BG.
ZSF.COLOR_TAB_ACTIVE  = { 0, 0, 0, 0.35 }

-- Thin horizontal separator lines inside the content area.
ZSF.COLOR_SEPARATOR   = { 0.22, 0.22, 0.22, 1.0  }

-- Alternating row stripe backgrounds.
-- ODD rows (1st, 3rd, …) get a subtle white lift; EVEN rows a mild dark wash.
-- Kept close so the alternation reads as subtle texture rather than banding.
ZSF.COLOR_ROW_STRIPE_ODD  = { 0.1, 0.1, 0.1, 0.25 }
ZSF.COLOR_ROW_STRIPE_EVEN = { 0.01, 0.01, 0.01, 0.5 }

-- 1px vertical divider drawn between packed columns in a multi-column row.
ZSF.COLOR_COL_DIVIDER     = { 1, 1, 1, 0.04 }

-- 1px border drawn around each section (header + rows below it).
-- Intentionally near-invisible; only provides definition on close inspection.
ZSF.COLOR_SECTION_BORDER  = { 1, 1, 1, 0.04 }

-- ── Dimensions (unscaled logical pixels) ─────────────────────────────────────
-- All standard setting rows share this single height so the list is visually
-- uniform regardless of widget type (toggle, slider, color, dropdown, input).
ZSF.ROW_HEIGHT        = 50

-- Desc rows used to be taller; now equal to ZSF.ROW_HEIGHT for uniformity.
ZSF.ROW_HEIGHT_DESC   = 50

-- Height of a section header row (larger font + 12px top-buffer built in).
ZSF.HEADER_HEIGHT     = 33

-- Extra space above the header text row so section titles have breathing room.
ZSF.HEADER_PAD_TOP    = 20

-- Blank vertical gap inserted by explicit spacers between sections.
ZSF.SPACER_HEIGHT     = 8

-- Width of the left sidebar (tab navigation column).
ZSF.SIDEBAR_WIDTH     = 225

-- Horizontal pad applied to each side of the content area (label indent and right margin).
ZSF.CONTENT_PAD_X     = 42

-- Vertical pad at the very top of the content area before the first row.
ZSF.CONTENT_PAD_TOP   = 10

-- Gap between consecutive rows (in addition to the row's own height).
ZSF.ROW_GAP_Y         = 0

-- Width reserved on the right for action controls (checkbox, slider, dropdown, swatch).
-- Equals hw (half of a half-cell) so full-row and half-row action widgets are the same pixel width.
-- Formula: floor(0.25 * (CONTENT_W - 5 * ZSF.CONTENT_PAD_X)) - ZSF.COL_INNER_PAD where CONTENT_W = 715.
ZSF.ACTION_COL_WIDTH  = 120

-- Logical thickness of PixelUtil border lines (usually stays 1).
ZSF.BORDER_SIZE       = 1

-- Left-side inner padding for widget content against a column divider.
-- Cells after the first in a multi-column row inset their label and control by
-- this many pixels so content isn't flush against the 1px separator.
ZSF.COL_INNER_PAD     = 6
