/* Javadoc style sheet */

/* Define colors, fonts and other style attributes here to override the defaults */

/* Page background color */
body { background-color: #FFFFFF }

/* Headings */
h1 { font-size: 145% }

/* Table colors */
.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */
.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */
.TableRowColor         { background: #FFFFFF } /* White */

/* Font used in left-hand frame lists */
.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif }
.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }
.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }

/* Navigation bar fonts and colors */
.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */
.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */
.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}
.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}

.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}

	
    /**
     * align equations along "=".
     */
    td.equation {
    	text-align: "=";
    }
    
    /**
     * align maps along "&rarr;", "&#8614;" etc.
     * Use like in
        <table>
          <tr>
            <td class="nameOfMap" rowspan="2"><span class="function">f</span></td>
            <td class="leftOfMap"><span class="set">A</span></td>
            <td class="arrowOfMap">&rarr;</td>
            <td class="rightOfMap"><span class="set">B</span></td>
          </tr>
          <tr>
            <td class="leftOfMap">x</td>
            <td class="arrowOfMap">&#8614;</td>
            <td class="rightOfMap">f(x)</td>
          </tr>
        </table>
     */
    td.nameOfMap {
    	text-align: left;
	vertical-align: top;
    }
    td.nameOfMap:after {
	content: ":";
    }
    td.leftOfMap {
    	text-align: right;
	vertical-align: top;
    }
    td.arrowOfMap {
    	text-align: center;
	vertical-align: top;
    }
    td.rightOfMap {
    	text-align: left;
	vertical-align: top;
    }

  /* extended style classes (could be transformed into XML tags) */
    
    /* type style classes */

    /**
     * XML for signifiers of semiotics.
     */
    *.signifier {
    	font-family: monotype;
    }
    *.signifier:before {content: "/";}
    *.signifier:after {content: "/";}

    /**
     * XML for signifieds of semiotics.
     */
    *.signified {
    	font-family: italic;
	quotes: "«" "»"
    }
    *.signified:before {content: close-quote;}
    *.signified:after {content: open-quote;}
    
    /**
     * XML for objects (referents) of semiotics.
     */
    *.referent {
    }

    /* identifiers */
    
    /**
     * XML for type identifiers.
     */
    *.type {
	font-style: italic;
    }

    /**
     * For variable identifiers.
     */
    var {
    }
    
    /**
     * For meta-variable identifiers.
     */
    var.meta {
    	font-family: "Monotype Corsiva", "FreestyleScrD", "Arioso", "CroissantD", "Merlin", "Vivienne", "Script", script, italic;
    }

    /* special type identifiers */

    /**
     * identifies vector symbols.
     */
    *.vector {
    	font-weight: bold;
    }

    /**
     * identifies matrix symbols.
     */
    *.matrix {
    	font-weight: 600;
	text-transform: capitalize;
    }
    
    /**
     * identifies tensor symbols.
     */
    *.tensor {
	font-size: larger;
	text-transform: lowercase;
    }

    /**
     * identifies set symbols.
     */
    *.ens, *.set {
    	font-style: italic;
    	font-family: cursive, italic;
    }

    /**
     * identifies family (f.ex. family of sets) symbols.
     */
    *.family {
    	font-style: italic;
    	font-family: "Vivienne", "Arioso", "Monotype Corsiva", "FreestyleScrD", "CroissantD", "Merlin", "Script", script, cursive, italic;
    }

    /**
     * identifies category symbols.
     */
    *.categorie, *.category    {
	font-family: "Arioso", "Monotype Corsiva", "FreestyleScrD", "Vivienne", "CroissantD", "Merlin", "Script", script, cursive, italic;
	text-decoration: underline;
    }

    /**
     * identifies symbols for objects of a category.
     */
    *.objet    {
    }

    /**
     * identifies symbols for morphisms of a category.
     */
    *.morphisme    {
    }

    /**
     * identifies symbols for functors between categories.
     */
    *.foncteur    {
	font-style: italic;
    }

    /**
     * identifies symbols for natural transformations of functors.
     */
    *.transformationNaturelle    {
	font-weight: 500;
	font-size: larger;
    }

    /**
     * identifies symbols for universal algebras.
     */
    *.UniversalAlgebra    {
	font-family: "Arioso", "Monotype Corsiva", "FreestyleScrD", "Vivienne", "CroissantD", "Merlin", "Script", script, cursive, italic;
    }

    /**
     * Style for embedded formulas.
     */
    *.Formula {
    }

  /* composed operator styles */

    /* operators */

    /**
     * Operator denoting the construction of a series (a_n)_n in N.
     */
    span.seriesOperator {
	font-size: 140%;
    }

    /**
     * closed hull operator.
     */
    span.closed {
    	text-decoration: overline;
    }

    /**
     * complex-conjugate operator.
     */
    *.conjugate {
    	text-decoration: overline;
    }

    /**
     * For inference relation |~ or satisfaction relation |=
     */
    *.inference, *.satisfaction {
    	letter-spacing: -1px;
    }
    
    /**
     * For inference operation C
     */
    *.inferenceOperation {
    	font-style: italic;
    }
    
    /**
     * For term evaluation function [[_]]
     */
    *.evaluation {
    	vertical-align: middle;
    	letter-spacing: -3px;
    	font-family: serif;
    }
    
    /**
     * For functional catamorphism banana brackets (|x,y|)
     */
    *.bananaBracket {
    	letter-spacing: -1px;
    	font-family: serif;
    }
    /**
     * For functional anamorphism lense brackets |(x,y)|
     */
    *.lenseBracket {
    	letter-spacing: -1px;
    	font-family: serif;
    }
    /**
     * For functional hylomorphism envelope brackets |[x,y]| or [[x,y]]
     */
    *.envelopeBracket {
    	letter-spacing: -3px;
    	font-family: serif;
    }
    /**
     * For functional paramorphism barbed wire brackets {|x,y|}
     */
    *.barbedwireBracket {
    	letter-spacing: -3px;
    	font-family: serif;
    }



  /* ....  */

    /**
     * XML For double index terms like <span class="doubleIndex"><sup>n</sup><sub>k</sub></span>.
     */
    *.doubleIndex {
    	letter-spacing: -.4em
    }
    /**
     * XML For double index of big operator terms like <big>&#931;</big><span class="doubleIndex"><sup>n</sup><sub>k</sub></span>.
     */
    big + *.doubleIndex {
    	letter-spacing: 0
    }
    
    /**
     * xml:lang="la" according to iso639a marked as a foreign language.
     * Or matches anything that has the "lang" attribute set.
     */
    :lang(fr), :lang(la), [lang] {
    	font-style: italic;
    }




  /* programming language syntax highlighting */

    /**
     * For language keywords.
     */
    *.keyword {
    	/*font-family: monospace;*/
    	font-weight: bold;
    	color: #0000A5;
    }
    /**
     * For predefined primitive types.
     */
    *.primitiveType {
    	font-weight: bold;
    	color: #0000A5;
    }
    /**
     * For operators.
     */
    *.operator {
    	color: #0000A5; /*#008200;*/
    }
    /**
     * For assignment operation.
     */
    *.assignment {
    	color: #008200;
    }

    /**
     * For comments.
     */
    *.comment {
    	font-style: italic;
    	color: #008284;
    }
    
    /* literals */
    
    /**
     * For String terminals.
     */
    *.string, *.String {
    	color: #848284;
    }
    /* Specify pairs of quotes for two levels in two languages */
    /* *.String:lang(en) { quotes: '"' '"' "'" "'" } */ 
    
    /* Insert quotes before and after *.String element content */
    /* *.String:before { content: open-quote; }
    *.String:after  { content: close-quote; } */

    /**
     * For number terminals.
     */
    *.number, *.float, *.integer, *.Number {
    	color: red;
    }
    
    /* known classes */
    
    /**
     * For java core classes.
     */
    *.Class {
    	color: blue;
    }
    /**
     * For classes in the Orbital library.
     */
    *.Orbital {
    	color: blue;
    }



/* pure styling output @todo move to an enclosing .css */

	/**
	 * Alternate choices in a list.
	 */
	ul.or, ol.or {
		list-style-type: circle;
	}

	/**
	 * Conjunct choices in a list.
	 */
	ul.and, ol.and {
		list-style-type: disc;
	}

	/**
	 * Equivalent choices in a list.
	 */
	ul.equiv, ol.equiv {
		list-style-type: lower-roman;
	}

	/**
	 * Headings appearing inside the next paragraph on the first line.
	 */
	*.inner {
		display: run-in;
		font-weight: bold;
	}

	/**
	 * Brief headings of a paragraph that are in fact displayed in compact mode.
	 */
	h5.compact {
		display: inline;
	}
	h5.compact:after {
		content: ":";
	}

	/**
	 * style for diagrams that annotate a presented concept on the right sidebar.
	 */
	img.annotatingDiagram {
		float: right;
		clear: both;
	}

    /**
     * Mark the terms defined. Definition Terms
     * //TODO: still needed?
     */
    dl dt {		/* definition term */
    	/*display: compact;*/
    	/*float: left;*/
    }
    dl.def dt {		/* definition term */
    	/*display: compact;*/
    	float: left;
    	font-style: italic;
    }
    dl.def dd {		/* definition */
    	margin-left: 4em;
    }

	@media screen { a:link, a:visited {color:blue} }
	
