1. Yes. Around line 482 you will see:
# line: This sets the colour for lines or boxes drawn in the quest scene
line: :system_color,
# line_shadow: This sets the colour of the shadow for lines or boxes drawn
# in the quest scene
line_shadow: [0, 0, 0, 128],
As explained above those lines at line 461:
# COLOURS - This lets you change the colour for various aspects of the
# quest scene. Each can be set in one of three ways:
# :symbol - If you use a symbol, the colour will be the result of calling
# the method of the same name. For instance, if you set something to
# :system_color, it will set the colour to the result of the Window_Base
# system_color method.
# Integer - If you set the colour to an integer, then it will take its
# colour from the windowskin palette, just like using \c[x] in messages.
# Array - You can also set the rgba values directly with an array in the
# format: [red, green, blue, alpha]. alpha can be excluded, but you must
# have values for red, green, and blue.
2. Yes, but it has to be done manually. As you can see at line 363:
# CATEGORIES - This array allows you to set which categories are available
# in the Quest scene. The default categories are :all, :active, :complete,
# and :failed, and their names are self-explanatory. You can add custom
# categories as well, but note that you will need to make sure that each new
# category has an icon set in the ICONS hash, as well as a label set in the
# CATEGORY_VOCAB hash (if you are using SHOW_CATEGORY_LABEL). It is also
# advisable to give it a sort type, unless you are fine with it being sorted
# by ID, as is default.
CATEGORIES = [:all, :active, :complete, :failed]
Those will be the default categories. You can remove any of them, but if it is empty then the :all category will be forced into it. If you later want to add a category (for instance, :failed) in the course of a game, you would need to use the following code in a script call:
s = $game_system
s.quest_categories << :failed
You could also set it directly, but you might need to make space. Ie, like:
s = $game_system
a = [:active, :complete, :failed]
s.quest_categories = a
However, as should be apparent, there is currently no way for a quest to automatically be added only when the first quest which fits in it is. You would have to do it manually.
3. Yes, through a script call. See line 48:
# You can activate and access a quest with this code in the Script event
# command:
#
# quest(quest_id)
# quest_id : the integer ID of the quest you want to access
#
# From that, you can access or alter any relevant data stored in the quest,
# like name, description, objectives, etc... Example:
# quest(1).name = "Rest in Pieces"
So, if you wanted to change the description of quest 2, you would just do something like this:
quest(2).description = "bla bla"
Due to the space restrictions in a script call, you may need to break it up into various parts. One way to do that would be:
d1 = "bla bla bla"
d2 = " bla2 bla2 bla2"
quest(2).description = d1 + d2