src/Config/Themes.ps1

# Themes — 8 paletas hardcoded + slot para custom (ADR-006).
# Cada theme = hashtable con todas las llaves del CSS de tokens.css.
# Si agregás keys nuevas, populá las 8 paletas en este archivo.

$global:RNThemes = @{

    midnight = @{
        name        = 'Midnight'
        sub         = 'default · 2026'
        isLight     = $false

        # Backgrounds. bg0=chromeBg=bg2 a propósito: header/footer y body
        # comparten fondo. Las HRules separan visualmente. (Tino lo pidió
        # explícito — no le gustaba el chrome con tono distinto.)
        bg0         = '#0a0d11'
        bg1         = '#0f1318'
        bg2         = '#0a0d11'
        bg3         = '#1d242d'
        bg4         = '#262e38'
        bgSel       = '#1a3a5e'
        bgSelSoft   = '#122a45'

        line        = '#1f2731'
        lineStrong  = '#2a333f'

        # Foregrounds
        fg0         = '#e6edf3'
        fg1         = '#b9c4d0'
        fg2         = '#7d8898'
        fg3         = '#4f5969'
        fgInv       = '#0a0d11'

        # Acento
        acc         = '#6ee7ff'
        accDeep     = '#2dd1ff'

        # Estados Git
        gitClean    = '#7ee787'
        gitDirty    = '#ffa657'
        gitUnpushed = '#d2a8ff'
        gitConflict = '#ff7b72'
        gitNoGit    = '#6e7681'
        gitAhead    = '#79c0ff'
        gitBehind   = '#ffa657'

        # Diff
        diffAdd     = '#56d364'
        diffDel     = '#f85149'
        diffMod     = '#d29922'

        # Branch graph cycle (6 colores)
        graph       = @('#6ee7ff', '#d2a8ff', '#7ee787', '#ffa657', '#ff7b72', '#79c0ff')

        # Alias/tag palette (10 colores)
        palette     = @(
            '#ff7b72', '#ffa657', '#f0d05a', '#7ee787', '#56d4d4',
            '#79c0ff', '#a5d6ff', '#d2a8ff', '#f778ba', '#ff9ec3'
        )

        chromeBg     = '#0a0d11'
        chromeBorder = '#1a2129'
    }

    # Aurora — paleta menta + lavanda sobre fondo azul-verde profundo.
    aurora = @{
        name        = 'Aurora'
        sub         = 'aurora boreal'
        isLight     = $false

        bg0         = '#0a0e14'
        bg1         = '#101620'
        bg2         = '#0a0e14'
        bg3         = '#212939'
        bg4         = '#2b3447'
        bgSel       = '#1a3c52'
        bgSelSoft   = '#11293a'

        line        = '#1f2738'
        lineStrong  = '#2c3a4f'

        fg0         = '#e0f2f1'
        fg1         = '#a8c5c8'
        fg2         = '#6e8a8e'
        fg3         = '#3e555a'
        fgInv       = '#0a0e14'

        acc         = '#56e6b4'
        accDeep     = '#2dd1ff'

        gitClean    = '#90e0a4'
        gitDirty    = '#f7c98a'
        gitUnpushed = '#bd8cf5'
        gitConflict = '#f57b8b'
        gitNoGit    = '#5a6e74'
        gitAhead    = '#7fb6e0'
        gitBehind   = '#f7c98a'

        diffAdd     = '#56d364'
        diffDel     = '#f57b8b'
        diffMod     = '#f7c98a'

        graph       = @('#56e6b4', '#bd8cf5', '#90e0a4', '#f7c98a', '#f57b8b', '#7fb6e0')

        palette     = @(
            '#f57b8b', '#f7c98a', '#f0d05a', '#90e0a4', '#56d4d4',
            '#7fb6e0', '#a5d6ff', '#bd8cf5', '#f778ba', '#ff9ec3'
        )

        chromeBg     = '#0a0e14'
        chromeBorder = '#16202c'
    }

    # Default — paleta neutra balanceada. Dark base con grises cálidos
    # y acentos sobrios. Pensada como fallback "no me importa el theme,
    # solo dame algo que se vea bien".
    default = @{
        name        = 'Default'
        sub         = 'neutro · sobrio'
        isLight     = $false

        bg0         = '#15171a'
        bg1         = '#1b1d21'
        bg2         = '#15171a'
        bg3         = '#2a2e34'
        bg4         = '#34383f'
        bgSel       = '#2e3a4d'
        bgSelSoft   = '#1d2735'

        line        = '#262a30'
        lineStrong  = '#363b43'

        fg0         = '#e8e9eb'
        fg1         = '#bcbfc4'
        fg2         = '#8a8d92'
        fg3         = '#5a5d62'
        fgInv       = '#15171a'

        acc         = '#7aa2f7'
        accDeep     = '#3d59a1'

        gitClean    = '#9ece6a'
        gitDirty    = '#e0af68'
        gitUnpushed = '#bb9af7'
        gitConflict = '#f7768e'
        gitNoGit    = '#737a86'
        gitAhead    = '#7dcfff'
        gitBehind   = '#e0af68'

        diffAdd     = '#9ece6a'
        diffDel     = '#f7768e'
        diffMod     = '#e0af68'

        graph       = @('#7aa2f7', '#bb9af7', '#9ece6a', '#e0af68', '#f7768e', '#7dcfff')

        palette     = @(
            '#f7768e', '#e0af68', '#e3d77b', '#9ece6a', '#73daca',
            '#7dcfff', '#7aa2f7', '#bb9af7', '#ee99c6', '#ffaad8'
        )

        chromeBg     = '#15171a'
        chromeBorder = '#26292f'
    }

    # Ocean — azul profundo. Tonos fríos, contrastes marítimos.
    # Acento cyan brillante; rojo cálido para conflicts (preserva legibilidad).
    ocean = @{
        name        = 'Ocean'
        sub         = 'azul profundo'
        isLight     = $false

        bg0         = '#06121d'
        bg1         = '#0a1828'
        bg2         = '#06121d'
        bg3         = '#152c44'
        bg4         = '#1f3a57'
        bgSel       = '#1d4870'
        bgSelSoft   = '#143654'

        line        = '#152a40'
        lineStrong  = '#244766'

        fg0         = '#dde9f5'
        fg1         = '#a8c0d8'
        fg2         = '#6e8aa6'
        fg3         = '#425b76'
        fgInv       = '#06121d'

        acc         = '#5cdfff'
        accDeep     = '#1aa6cf'

        gitClean    = '#5fc3a9'
        gitDirty    = '#f4a261'
        gitUnpushed = '#a896f0'
        gitConflict = '#ff6b6b'
        gitNoGit    = '#4d6680'
        gitAhead    = '#5cdfff'
        gitBehind   = '#f4a261'

        diffAdd     = '#5fc3a9'
        diffDel     = '#ff6b6b'
        diffMod     = '#f4a261'

        graph       = @('#5cdfff', '#a896f0', '#5fc3a9', '#f4a261', '#ff6b6b', '#7fc1ff')

        palette     = @(
            '#ff6b6b', '#f4a261', '#f0d35a', '#5fc3a9', '#5cdfff',
            '#7fc1ff', '#a8d4ff', '#a896f0', '#e87fb5', '#f99cc7'
        )

        chromeBg     = '#06121d'
        chromeBorder = '#102035'
    }

    # Forest — verdes profundos sobre marrones oscuros. Natural, orgánico.
    # Acento verde lima fresco; rojo terroso para conflicts.
    forest = @{
        name        = 'Forest'
        sub         = 'bosque · natural'
        isLight     = $false

        bg0         = '#0d1410'
        bg1         = '#121a14'
        bg2         = '#0d1410'
        bg3         = '#222e25'
        bg4         = '#2c3a30'
        bgSel       = '#2d4a2f'
        bgSelSoft   = '#1f3520'

        line        = '#1d271f'
        lineStrong  = '#2e3d31'

        fg0         = '#e3ebd9'
        fg1         = '#b6c4a7'
        fg2         = '#7e8d72'
        fg3         = '#4d5a45'
        fgInv       = '#0d1410'

        acc         = '#a3d977'
        accDeep     = '#5b8a3a'

        gitClean    = '#a3d977'
        gitDirty    = '#e8b86b'
        gitUnpushed = '#c9a8ed'
        gitConflict = '#e87a6b'
        gitNoGit    = '#5e6e54'
        gitAhead    = '#7fc99c'
        gitBehind   = '#e8b86b'

        diffAdd     = '#a3d977'
        diffDel     = '#e87a6b'
        diffMod     = '#e8b86b'

        graph       = @('#a3d977', '#c9a8ed', '#7fc99c', '#e8b86b', '#e87a6b', '#82c4e0')

        palette     = @(
            '#e87a6b', '#e8b86b', '#e6d27a', '#a3d977', '#7fc99c',
            '#82c4e0', '#a8c8e6', '#c9a8ed', '#e090b9', '#f0a8c8'
        )

        chromeBg     = '#0d1410'
        chromeBorder = '#1c241e'
    }

    # Solarized — dark variant del clásico de Ethan Schoonover.
    # Hex matchea la spec original (base03/base02/base0/yellow/orange/etc).
    solarized = @{
        name        = 'Solarized'
        sub         = 'dark · Schoonover'
        isLight     = $false

        bg0         = '#002b36'    # base03
        bg1         = '#073642'    # base02
        bg2         = '#002b36'    # = bg0 para chrome flat
        bg3         = '#0f4d5e'
        bg4         = '#155b6f'
        bgSel       = '#1a5e75'
        bgSelSoft   = '#0e4655'

        line        = '#0a3d4a'
        lineStrong  = '#155060'

        fg0         = '#fdf6e3'    # base3
        fg1         = '#93a1a1'    # base1
        fg2         = '#839496'    # base0
        fg3         = '#586e75'    # base01
        fgInv       = '#002b36'

        acc         = '#268bd2'    # blue
        accDeep     = '#1a6da3'

        gitClean    = '#859900'    # green
        gitDirty    = '#cb4b16'    # orange
        gitUnpushed = '#6c71c4'    # violet
        gitConflict = '#dc322f'    # red
        gitNoGit    = '#586e75'    # base01
        gitAhead    = '#268bd2'    # blue
        gitBehind   = '#cb4b16'    # orange

        diffAdd     = '#859900'    # green
        diffDel     = '#dc322f'    # red
        diffMod     = '#b58900'    # yellow

        graph       = @('#268bd2', '#6c71c4', '#859900', '#b58900', '#dc322f', '#2aa198')

        palette     = @(
            '#dc322f', '#cb4b16', '#b58900', '#859900', '#2aa198',
            '#268bd2', '#6c71c4', '#d33682', '#cb4b16', '#b58900'
        )

        chromeBg     = '#002b36'
        chromeBorder = '#073642'
    }

    # HC — high contrast. Negros/blancos puros con acentos saturados.
    # Pensado para accesibilidad visual o terminales con contraste pobre.
    hc = @{
        name        = 'HighContrast'
        sub         = 'a11y · alto contraste'
        isLight     = $false

        bg0         = '#000000'
        bg1         = '#0a0a0a'
        bg2         = '#000000'
        bg3         = '#1f1f1f'
        bg4         = '#2a2a2a'
        bgSel       = '#0044aa'
        bgSelSoft   = '#002266'

        line        = '#3a3a3a'
        lineStrong  = '#5a5a5a'

        fg0         = '#ffffff'
        fg1         = '#dcdcdc'
        fg2         = '#a0a0a0'
        fg3         = '#707070'
        fgInv       = '#000000'

        acc         = '#00d4ff'
        accDeep     = '#0099cc'

        gitClean    = '#00ff7f'
        gitDirty    = '#ffaa00'
        gitUnpushed = '#cc88ff'
        gitConflict = '#ff3030'
        gitNoGit    = '#909090'
        gitAhead    = '#00d4ff'
        gitBehind   = '#ffaa00'

        diffAdd     = '#00ff7f'
        diffDel     = '#ff3030'
        diffMod     = '#ffdd00'

        graph       = @('#00d4ff', '#cc88ff', '#00ff7f', '#ffaa00', '#ff3030', '#ffff00')

        palette     = @(
            '#ff3030', '#ffaa00', '#ffff00', '#00ff7f', '#00ffd4',
            '#00d4ff', '#88aaff', '#cc88ff', '#ff66cc', '#ffaadd'
        )

        chromeBg     = '#000000'
        chromeBorder = '#3a3a3a'
    }

    # Light — fondo claro estilo papel. Colores oscuros para texto/acentos.
    # Útil para terminales claras o ambientes con mucha luz.
    light = @{
        name        = 'Light'
        sub         = 'fondo claro · papel'
        isLight     = $true

        bg0         = '#fafaf7'
        bg1         = '#f3f3ee'
        bg2         = '#fafaf7'
        bg3         = '#dedcd2'
        bg4         = '#cfccc1'
        bgSel       = '#c8d8ee'
        bgSelSoft   = '#dde7f5'

        line        = '#dcdacf'
        lineStrong  = '#b8b5a8'

        fg0         = '#1a1c20'
        fg1         = '#3d4147'
        fg2         = '#6b6f76'
        fg3         = '#999da4'
        fgInv       = '#fafaf7'

        acc         = '#1d6ec5'
        accDeep     = '#0e4d92'

        gitClean    = '#3a7a2e'
        gitDirty    = '#b35e1a'
        gitUnpushed = '#7a4ecc'
        gitConflict = '#c63d3d'
        gitNoGit    = '#7d8088'
        gitAhead    = '#1d6ec5'
        gitBehind   = '#b35e1a'

        diffAdd     = '#3a7a2e'
        diffDel     = '#c63d3d'
        diffMod     = '#b35e1a'

        graph       = @('#1d6ec5', '#7a4ecc', '#3a7a2e', '#b35e1a', '#c63d3d', '#0a8a8a')

        palette     = @(
            '#c63d3d', '#b35e1a', '#a8861a', '#3a7a2e', '#0a8a8a',
            '#1d6ec5', '#5a8ad6', '#7a4ecc', '#b1428f', '#cf5fa3'
        )

        chromeBg     = '#fafaf7'
        chromeBorder = '#c8c5b6'
    }
}