/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    './public/**/*.html',
    './src/**/*.{css,js}',
  ],
  safelist: [
    { pattern: /^wd-/ },
    { pattern: /^is-/ },
    'nav-dev-badge',
  ],
  darkMode: 'class',
  theme: {
    extend: {
      colors: {
        // ── Surfaces (5-step depth, tinted toward brand hue 266) ──
        'bg-deep':    'oklch(8% 0.011 266)',
        'bg-base':    'oklch(11% 0.010 266)',
        'bg-panel':   'oklch(15% 0.013 266)',
        'bg-surface': 'oklch(19% 0.014 266)',
        'bg-raised':  'oklch(24% 0.015 266)',
        'bg-hover':   'oklch(28% 0.015 266)',

        // ── Accent (brand) ──
        accent: {
          DEFAULT: 'oklch(45% 0.20 266)',
          subtle:  'oklch(55% 0.20 266 / 0.12)',
          border:  'oklch(55% 0.20 266 / 0.36)',
        },

        // ── Text ──
        'text-primary':   'oklch(94% 0.008 266)',
        'text-secondary': 'oklch(72% 0.014 266)',
        // tertiary bumped from 52% to 56% per a11y section in the spec
        'text-tertiary':  'oklch(56% 0.012 266)',
        'text-disabled':  'oklch(38% 0.010 266)',

        // ── Borders ──
        'border-faint':   'oklch(22% 0.013 266)',
        'border-default': 'oklch(28% 0.015 266)',
        'border-strong':  'oklch(38% 0.018 266)',

        // ── Status / semantic signal ──
        'signal-good': 'oklch(70% 0.18 148)',
        'signal-bad':  'oklch(64% 0.22 25)',
        'signal-warn': 'oklch(80% 0.16 90)',
        'signal-idle': 'oklch(58% 0.012 266)',
        'signal-good-bg': 'oklch(70% 0.18 148 / 0.12)',
        'signal-bad-bg':  'oklch(64% 0.22 25  / 0.12)',
        'signal-warn-bg': 'oklch(80% 0.16 90  / 0.12)',
      },
      fontFamily: {
        sans: ['Inter', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'system-ui', 'sans-serif'],
        mono: ['"JetBrains Mono"', 'ui-monospace', '"SF Mono"', 'Consolas', 'monospace'],
      },
      fontSize: {
        // tighter scale per density target
        'xs':   ['11px', { lineHeight: '1.4' }],
        'sm':   ['13px', { lineHeight: '1.5' }],
        'base': ['14px', { lineHeight: '1.5' }],
        'md':   ['16px', { lineHeight: '1.4' }],
        'lg':   ['18px', { lineHeight: '1.4' }],
        'xl':   ['22px', { lineHeight: '1.3' }],
        '2xl':  ['28px', { lineHeight: '1.2' }],
        '3xl':  ['40px', { lineHeight: '1.1' }],
        'tc':   ['64px', { lineHeight: '1' }], // tally-grade timecode
      },
      borderRadius: {
        'sm': '4px',
        'md': '6px',
        'lg': '8px',
      },
      transitionTimingFunction: {
        'out-quart': 'cubic-bezier(0.25, 1, 0.5, 1)',
        'out-expo':  'cubic-bezier(0.16, 1, 0.3, 1)',
      },
      transitionDuration: {
        '120': '120ms',
        '180': '180ms',
        '240': '240ms',
      },
      zIndex: {
        'dropdown': '40',
        'overlay':  '80',
        'panel':    '90',
        'toast':   '200',
      },
    },
  },
  plugins: [
    require('flyonui'),
  ],
};
