module.exports = function (e) {
  var n = {
    begin: /[A-Z\_\.\-]+\s*:/,
    returnBegin: !0,
    end: ";",
    endsWithParent: !0,
    contains: [
      {
        className: "attribute",
        begin: /\S/,
        end: ":",
        excludeEnd: !0,
        starts: {
          endsWithParent: !0,
          excludeEnd: !0,
          contains: [
            {
              begin: /[\w-]+\(/,
              returnBegin: !0,
              contains: [
                { className: "built_in", begin: /[\w-]+/ },
                {
                  begin: /\(/,
                  end: /\)/,
                  contains: [e.APOS_STRING_MODE, e.QUOTE_STRING_MODE],
                },
              ],
            },
            e.CSS_NUMBER_MODE,
            e.QUOTE_STRING_MODE,
            e.APOS_STRING_MODE,
            e.C_BLOCK_COMMENT_MODE,
            { className: "number", begin: "#[0-9A-Fa-f]+" },
            { className: "meta", begin: "!important" },
          ],
        },
      },
    ],
  };
  return {
    case_insensitive: !0,
    illegal: /[=\/|'\$]/,
    contains: [
      e.C_BLOCK_COMMENT_MODE,
      { className: "selector-id", begin: /#[A-Za-z0-9_-]+/ },
      { className: "selector-class", begin: /\.[A-Za-z0-9_-]+/ },
      { className: "selector-attr", begin: /\[/, end: /\]/, illegal: "$" },
      { className: "selector-pseudo", begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/ },
      {
        begin: "@(font-face|page)",
        lexemes: "[a-z-]+",
        keywords: "font-face page",
      },
      {
        begin: "@",
        end: "[{;]",
        illegal: /:/,
        contains: [
          { className: "keyword", begin: /\w+/ },
          {
            begin: /\s/,
            endsWithParent: !0,
            excludeEnd: !0,
            relevance: 0,
            contains: [
              e.APOS_STRING_MODE,
              e.QUOTE_STRING_MODE,
              e.CSS_NUMBER_MODE,
            ],
          },
        ],
      },
      {
        className: "selector-tag",
        begin: "[a-zA-Z-][a-zA-Z0-9_-]*",
        relevance: 0,
      },
      {
        begin: "{",
        end: "}",
        illegal: /\S/,
        contains: [e.C_BLOCK_COMMENT_MODE, n],
      },
    ],
  };
};
