
/* The JDiff style sheet, derived from the Javadoc style sheet. */
/* Generated by the JDiff Javadoc doclet */
/* (http://www.jdiff.org) */

/* Define colors, fonts and other style attributes here to override the defaults  */

/* Page background color */
body { background: #CCFFFF url(background.gif); font-family: arial; }

/* 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: normal; font-family: normal }
.FrameHeadingFont { font-size: normal; font-family: normal }
.FrameItemFont    { font-size: normal; font-family: normal }

/* Example of smaller, sans-serif font in frames */
/* .FrameItemFont  { font-size: 10pt; font-family: Helvetica, Arial, sans-serif } */

/* Navigation bar fonts and colors */
.NavBarCell1    { background-color:#FFFFCC;} /* Changed to yellowish to make difference from Javadoc clear */
.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;}

/* 
 Links which become blue when hovered upon and show that they have been 
 visited. 
*/
a.hiddenlink:link      {color: black; text-decoration: none}
a.hiddenlink:visited   {color: purple; text-decoration: none}
a.hiddenlink:hover     {color: blue; text-decoration: underline;}

/* 
 Links which become blue when hovered upon but do not show that they have 
 been visited. 
*/
a.staysblack:link     {color: black; text-decoration: none}
a.staysblack:visited  {color: black; text-decoration: none}
a.staysblack:hover    {color: blue; text-decoration: underline;}
