// Whalelens design tokens — injects CSS custom properties onto :root
// Loaded as plain <script> before the page stylesheet.
(function () {
  var THEMES = {
    linear: {
      '--app-bg':          '#2a2d3e',
      '--card-bg':         '#1e2030',
      '--border':          '#2e3350',
      '--ink':             '#e2e2e8',
      '--ink-muted':       '#8a8aaa',
      '--chrome-ink':      '#e2e2e8',
      '--chrome-ink-muted':'#8a8aaa',
      '--pos':             '#34d399',
      '--pos-bg':          'rgba(52,211,153,0.15)',
      '--neg':             '#f87171',
      '--neg-bg':          'rgba(248,113,113,0.15)',
      '--accent':          '#60a5fa',
      '--accent-fg':       '#0f172a',
      '--accent-bg':       'rgba(96,165,250,0.15)',
      '--amber':           '#fbbf24',
      '--amber-bg':        'rgba(251,191,36,0.15)',
      '--stage-fail-fg':   '#fb923c',
      '--stage-fail-bg':   'rgba(251,146,60,0.15)',
      '--stage-idle-fg':   '#6b7280',
      '--stage-idle-bg':   'rgba(107,114,128,0.12)',
      '--radius-sm':       '4px',
      '--radius-md':       '8px',
      '--radius-lg':       '12px',
      '--font-ui':         "'Inter', system-ui, sans-serif",
      '--font-mono':       "'JetBrains Mono', 'IBM Plex Mono', monospace",
    },
    terminal: {
      '--app-bg':          '#fafaf7',
      '--card-bg':         '#ffffff',
      '--border':          '#d4d4d0',
      '--ink':             '#1a1a1a',
      '--ink-muted':       '#5a5a5a',
      '--chrome-ink':      '#1a1a1a',
      '--chrome-ink-muted':'#5a5a5a',
      '--pos':            '#16a34a',
      '--pos-bg':         'rgba(22,163,74,0.10)',
      '--neg':            '#dc2626',
      '--neg-bg':         'rgba(220,38,38,0.10)',
      '--accent':         '#10b981',
      '--accent-fg':      '#ffffff',
      '--accent-bg':      'rgba(16,185,129,0.10)',
      '--amber':          '#b45309',
      '--amber-bg':       'rgba(180,83,9,0.10)',
      '--stage-fail-fg':  '#9a3412',
      '--stage-fail-bg':  'rgba(154,52,18,0.10)',
      '--stage-idle-fg':  '#737373',
      '--stage-idle-bg':  'rgba(115,115,115,0.08)',
      '--radius-sm':      '0px',
      '--radius-md':      '2px',
      '--radius-lg':      '4px',
      '--font-ui':        "'JetBrains Mono', monospace",
      '--font-mono':      "'JetBrains Mono', monospace",
    },
    paper: {
      '--app-bg':          '#fdf8f0',
      '--card-bg':         '#fffefb',
      '--border':          '#e8d5b7',
      '--ink':             '#2d1b00',
      '--ink-muted':       '#8b7355',
      '--chrome-ink':      '#2d1b00',
      '--chrome-ink-muted':'#8b7355',
      '--pos':            '#15803d',
      '--pos-bg':         'rgba(21,128,61,0.12)',
      '--neg':            '#b91c1c',
      '--neg-bg':         'rgba(185,28,28,0.10)',
      '--accent':         '#b45309',
      '--accent-fg':      '#ffffff',
      '--accent-bg':      'rgba(180,83,9,0.10)',
      '--amber':          '#92400e',
      '--amber-bg':       'rgba(146,64,14,0.12)',
      '--stage-fail-fg':  '#7c2d12',
      '--stage-fail-bg':  'rgba(124,45,18,0.12)',
      '--stage-idle-fg':  '#a8a29e',
      '--stage-idle-bg':  'rgba(168,162,158,0.10)',
      '--radius-sm':      '0px',
      '--radius-md':      '2px',
      '--radius-lg':      '4px',
      '--font-ui':        "'IBM Plex Mono', monospace",
      '--font-mono':      "'IBM Plex Mono', monospace",
    },
  };

  window.setTheme = function (name) {
    var t = THEMES[name] || THEMES.linear;
    var root = document.documentElement;
    for (var k in t) root.style.setProperty(k, t[k]);
    root.setAttribute('data-theme', name);
    localStorage.setItem('theme', name);
    if (window.S) window.S.theme = name;
  };

  // Apply immediately so the page never flashes dark
  setTheme(localStorage.getItem('theme') || 'linear');
})();
