/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
@import url(xxe-config:docbook5/css/docbook5.css);

/*
-------------------------------------------------------------------------------
Restricting the usage of "literal" elements:
-------------------------------------------------------------------------------
*/

/* Disallowed literal element types */ 
uri,
code,
constant,
envar,
markup,
prompt,
property,
sgmltag,
token,
type,
function,
parameter,
varname,
returnvalue,
errorcode,
errorname,
errortext,
errortype,
exceptionname,
interfacename,
structfield,
structname,
symbol {
    color: #ff0000;
}

/*
  Allowed literal element types
  that are possibly transformed to Java API documentation links, or otherwise
  can be checked for typos.
*/ 
classname,
methodname,
package {
    color: #8519f1;
}

/* The "default" literal element type. */ 
literal {
    color: #9f0000;
}

literal replaceable {
	color: #DD4400;
}

/*
-------------------------------------------------------------------------------
Indicate the presence of valid role and language attributes for programlistings
-------------------------------------------------------------------------------
*/

programlisting {
    border: 1px; 
	border-color: #000000;
    color: #000000;
	background-color: #E0E0E0;
}

/* The role attribute controlls the background color: */
programlisting[role] {
    /* 
    This selector is chosen if there is a role attribute, but it's value
    doesn't match any of the later listed values.
    */
	background-color: #FF5050;
}
programlisting[role=template] {
    background-color: #D8D8D8; 
}
programlisting[role=dataModel] {
    background-color: #99CCFF; 
}
programlisting[role=output] {
    background-color: #CCFFCC; 
}
programlisting[role=unspecified] {
    background-color: #F8F8F8; 
}
programlisting[role=metaTemplate] {
    background-color: #FFFFFF; 
	border: 0px;
}

/* The language attribute controlls the text color: */
programlisting[language] {
    /* 
    This selector is chosen if there is a language attribute, but it's value
    doesn't match any of the later listed values.
    */
    color: #FF0000;
}
programlisting[language=XML],
programlisting[language=HTML],
programlisting[language=CSS],
programlisting[language=JavaScript],
programlisting[language=PHP],
programlisting[language=JSP1],
programlisting[language=JSP2],
programlisting[language=Java],
programlisting[language=C],
programlisting[language="C++"],
programlisting[language="C#"],
programlisting[language=Python],
programlisting[language=Ruby],
programlisting[language=Groovy],
programlisting[language=Bash],
programlisting[language=bat],
programlisting[language="txt"],
programlisting[language=FTL],
programlisting[language=STA],
programlisting[language=SXA],
programlisting[language=STB],
programlisting[language=SXB],
programlisting[language=STC],
programlisting[language=SXC],
programlisting[language=SEL],
programlisting[language="unknown"] {
    color: #000080;
}

/*
-------------------------------------------------------------------------------
Fixing listing rendering bugs
-------------------------------------------------------------------------------
*/

listitem {
    margin-top: 1.33ex; 
    margin-bottom: 1.33ex; 
}

itemizedlist[spacing="compact"],
orderedlist[spacing="compact"],
itemizedlist[spacing="compact"] > listitem,
orderedlist[spacing="compact"] > listitem,
itemizedlist[spacing="compact"] > listitem > *:first-child,
orderedlist[spacing="compact"] > listitem > *:first-child {
    margin-top: 0ex; 
    margin-bottom: 0ex; 
}

/*
 * Out of convention we don't allow these inside "para"-s.
 * However, we can't just say "para itemizedlist", because for example
 * "para > footer > itemizedlist" is good.
 */
para > itemizedlist:before,
para > orderedlist:before,
para > programlisting:before,
para > mediaobject:before {
    display: block;
    background-color: #FF5050;
    color: #FFFF00;
    content: label(xpath, "'The element below must be outside <para>. (Tip: Click me, Ctrl+x, Ctrl+w)'");
}

informalfigure:before,
figure:before {
    display: block;
    background-color: #FF5050;
    color: #FFFF00;
    content: label(xpath, "'Unsupported element; use mediaobject instead.'");
}

/*
-------------------------------------------------------------------------------
"emphasis" special cases
-------------------------------------------------------------------------------
*/

programlisting emphasis {
	font-style: normal;
	font-weight: bold;
}

emphasis[role=term] {
	font-style: normal;
	font-weight: bold;
}

/*
-------------------------------------------------------------------------------
Further special roles
-------------------------------------------------------------------------------
*/

*[role=forProgrammers] {
	color: #333399;
	font-style: italic;
}

*[role=markedText] {
	background-color: #8acbfa;
}

*[role=markedInterpolation] {
	background-color: #ffb85d;
}

*[role=markedFTLTag] {
	background-color: #dbfe5e;
}

*[role=markedComment] {
	background-color: #6af666;
}

*[role=markedInvisibleText] {
	color: #999999;
}

*[role=markedTemplate] {
    background-color: #D8D8D8; 
}

*[role=markedDataModel] {
	background-color: #99CCFF;
}

*[role=markedOutput] {
    background-color: #CCFFCC;
}

/*
-------------------------------------------------------------------------------
Some attempts to mach the style of the final output better
-------------------------------------------------------------------------------
*/

remark {
	color: #808080;
	background-color: #FFFFA0;
}

title,
titleabbrev,
caption,
abstract:before {
    color: #0050B2;
}

note:before,
caution:before,
warning:before,
important:before,
footnote:before,
revision:before,
subtitle {
    color: #000000;
}

itemizedlist > listitem:before,
orderedlist > listitem:before {
	color: #000000;
}

link, olink, ulink, xref {
	color: #0000CC;
}

thead, tfoot {
  font-weight: normal;
}
