import type { Config } from "tailwindcss";

const config: Config = {
  content: [
    "./templates/**/*.{templ,html}",
    "./web/static/**/*.{html,js}",
    "./web/src/**/*.ts",
  ],
  safelist: [
    "theme-tokyo-night",
    "theme-dracula",
    "theme-nord",
    "theme-solarized-dark",
    "theme-monokai",
    "theme-one-dark-pro",
    "theme-material-dark",
    "theme-catppuccin-mocha",
    "theme-catppuccin-macchiato",
    "theme-catppuccin-frappe",
    "theme-catppuccin-latte",
  ],
  theme: {
    extend: {
      screens: {
        nav: "970px",
      },
      fontFamily: {
        sans: [
          "ui-sans-serif",
          "system-ui",
          "sans-serif",
          '"Noto Sans SC"',
          '"Noto Sans TC"',
          '"Noto Sans JP"',
          '"Noto Sans KR"',
          '"PingFang SC"',
          '"Microsoft YaHei"',
          '"Hiragino Sans"',
          '"Apple SD Gothic Neo"',
          "Apple Color Emoji",
          "Segoe UI Emoji",
          "Segoe UI Symbol",
          "Noto Color Emoji",
        ],
      },
      colors: {
        // Semantic surface tokens (page bg, cards, raised layers)
        surface: {
          DEFAULT: "var(--bg-primary)",
          raised: "var(--bg-secondary)",
          hover: "var(--surface-hover)",
          overlay: "var(--surface-overlay)",
        },
        // Text tokens
        content: {
          DEFAULT: "var(--text-primary)",
          muted: "var(--text-secondary)",
        },
        // Accent / brand
        brand: {
          DEFAULT: "var(--accent)",
          muted: "var(--accent-muted)",
        },
        // Borders / hairlines
        line: {
          DEFAULT: "var(--border)",
          strong: "var(--border-strong)",
        },
        // Status colors (theme-aware via vars, fall back to fixed)
        success: "var(--status-success)",
        warning: "var(--status-warning)",
        danger: "var(--status-danger)",
        info: "var(--status-info)",
      },
      borderRadius: {
        xl: "0.875rem",
        "2xl": "1.25rem",
      },
      boxShadow: {
        card: "var(--shadow-card)",
        "card-hover": "var(--shadow-card-hover)",
        pop: "var(--shadow-pop)",
        bar: "var(--shadow-bar)",
      },
      backgroundImage: {
        "wood-light": "url('/static/textures/wood-light.png')",
        "wood-dark": "url('/static/textures/wood-dark.png')",
        "wood-mahogany": "url('/static/textures/wood-mahogany.png')",
      },
      typography: ({ theme }) => ({
        invert: {
          css: {
            "--tw-prose-pre-bg": "var(--bg-secondary)",
            code: {
              backgroundColor: "var(--bg-primary)",
              color: "var(--text-primary)",
              fontWeight: "400",
            },
            "code::before": {
              content: '""',
            },
            "code::after": {
              content: '""',
            },
            "pre code": {
              backgroundColor: "transparent",
              color: "inherit",
            },
            pre: {
              backgroundColor: "var(--bg-secondary)",
              color: "var(--text-primary)",
            },
          },
        },
      }),
    },
  },
  plugins: [require("@tailwindcss/forms"), require("@tailwindcss/typography")],
};

export default config;
