/* The standard CSS for doxygen */

body, table, div, p, dl 
{
	font-family: Lucida Grande, Calibri, Verdana;
	font-size: 14px;
}

body
{
	margin:0px;
	padding:0px;
	background-color:#bf6000;
	background-repeat:no-repeat;
	background-position:center center;
	background-attachment:fixed;
/*
	background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFF8F0 5%, #FFEEDD 95%, #FFDDBB);
	background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFF8F0), color-stop(0.05,#FFF8F0), color-stop(0.95,#FFEEDD), to(#FFDDBB));
*/
	min-height:1200px;
	overflow:auto;
}

p
{
	background-color:#FFFFFF;
}

/* @group Heading Levels */

h1 
{
    color:#FF8000;
	font-family: Lucida Grande, Cambria, Georgia;
	font-size: 24px;
	font-weight: bold;
}

h2 
{
    color:#FF8000;
	font-family: Lucida Grande, Cambria, Georgia;
	font-size: 18px;
	font-weight: bold;
}

h3 {
	font-family: Lucida Grande, Cambria, Georgia;
	font-size: 14px;
	font-weight: bold;
}

dt {
	font-weight: bold;
}

div.multicol {
	-moz-column-gap: 1em;
	-webkit-column-gap: 1em;
	-moz-column-count: 3;
	-webkit-column-count: 3;
}

p.startli, p.startdd, p.starttd {
	margin-top: 2px;
}

p.endli {
	margin-bottom: 0px;
}

p.enddd {
	margin-bottom: 4px;
}

p.endtd {
	margin-bottom: 2px;
}

/* @end */

caption {
	font-weight: bold;
}

span.legend {
        font-size: 70%;
        text-align: center;
}

h3.version {
        font-size: 90%;
        text-align: center;
}

div.qindex, div.navtab{
	background-color: #FFF8F0;
	border: 0px solid #FF8000;
	text-align: center;
	margin: 2px;
	padding: 2px;
}

div.qindex, div.navpath {
	width: 100%;
	line-height: 140%;
}

div.navtab {
	margin-right: 15px;
}

/* @group Link Styling */

a {
	color: #000000;
	font-weight: normal;
	/*text-decoration: none;*/
}

.contents a:visited {
	color: #606060;
}

.contents{
	background-color: #FFFFFF;
	margin:0px;
	margin-left:auto; 
	margin-right:auto;
	padding-top:8px;
	padding-bottom:8px;
	padding-left:32px; 
	padding-right:32px;
	width:936px;
}

div.textblock{
	background-color: #FFFFFF;
	padding-top: 4px;
	padding-bottom: 4px;
	padding-left: 32px;
	padding-right: 32px;
}

a:hover {
	text-decoration: underline;
}

a.qindex {
	font-weight: bold;
}

a.qindexHL {
	font-weight: bold;
	background-color: #9CAFD4;
	color: #ffffff;
	border: 0px double #869DCA;
}

.contents a.qindexHL:visited {
        color: #ffffff;
}

a.el {
	font-weight: bold;
}

a.elRef {
}

a.code {
	color: #4665A2;
}

a.codeRef {
	color: #4665A2;
}

/* @end */

dl.el {
	margin-left: -1cm;
}

.fragment {
	font-family: monospace, consolas, "courier new";
	font-size: 12px;
}

pre.fragment {
	border: 0px solid #FF8000;
	background-color: #FFF8F0;
	padding: 4px 6px;
	margin: 4px 8px 4px 2px;
	overflow: auto;
	word-wrap: break-word;
	line-height: 125%;
}

div.ah {
	background-color: black;
	font-weight: bold;
	color: #ffffff;
	margin-bottom: 3px;
	margin-top: 3px;
	padding: 0.2em;
	border: solid thin #333;
	border-radius: 0.5em;
	-webkit-border-radius: .5em;
	-moz-border-radius: .5em;
	box-shadow: 2px 2px 3px #999;
	-webkit-box-shadow: 2px 2px 3px #999;
	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
}

div.groupHeader {
	margin-left: 16px;
	margin-top: 12px;
	font-weight: bold;
}

div.groupText {
	margin-left: 16px;
	font-style: italic;
}

td.indexkey {
	font-weight: bold;
	border: 0px solid #C4CFE5;
	margin: 2px 0px 2px 0;
	padding: 4px 10px;
}

td.indexvalue {
	border: 0px solid #C4CFE5;
	padding: 2px 10px;
	margin: 2px 0px;
}

tr.memlist {
	background-color: #FFF8F0;
}

p.formulaDsp {
	text-align: center;
}

img.formulaDsp {
	
}

img.formulaInl {
	vertical-align: middle;
}

div.center {
	text-align: center;
        margin-top: 0px;
        margin-bottom: 0px;
        padding: 0px;
}

div.center img {
	border: 0px;
}

address.footer {
	margin-left:auto; 
	margin-right:auto;
	width:1000px;

	text-align: right;
	padding-right: 12px;
	color: #FFEEDD;
}

img.footer {
	border: 0px;
	vertical-align: middle;
}

/* @group Code Colorization */

span.keyword {
	color: #008000
}

span.keywordtype {
	color: #604020
}

span.keywordflow {
	color: #e08000
}

span.comment {
	color: #800000
}

span.preprocessor {
	color: #806020
}

span.stringliteral {
	color: #002080
}

span.charliteral {
	color: #008080
}

span.vhdldigit { 
	color: #ff00ff 
}

span.vhdlchar { 
	color: #000000 
}

span.vhdlkeyword { 
	color: #700070 
}

span.vhdllogic { 
	color: #ff0000 
}

/* @end */

/*
.search {
	color: #003399;
	font-weight: bold;
}

form.search {
	margin-bottom: 0px;
	margin-top: 0px;
}

input.search {
	font-size: 75%;
	color: #000080;
	font-weight: normal;
	background-color: #e8eef2;
}
*/

td.tiny {
	font-size: 10px;
}

.dirtab {
	padding: 4px;
	border-collapse: collapse;
	border: 0px solid #A3B4D7;
}

th.dirtab {
	background: #EBEFF6;
	font-weight: bold;
}

hr {
	height: 0px;
	border: none;
	border-top: 0px solid #FF8000;
}

hr.footer {
	height: 1px;
	margin-left:auto; 
	margin-right:auto;
	width:1000px;
}

/* @group Member Descriptions */

table.memberdecls {
	border-spacing: 0px;
	padding: 0px;
}

.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
	font-family: monospace, consolas, "courier new";
	font-size: 12px;
	background-color: #FFFCF8;
	border: none;
	margin: 4px;
	padding: 1px 0 0 8px;
}

.mdescLeft, .mdescRight {
	padding: 0px 8px 4px 8px;
	color: #000000;
}

.memItemLeft, .memItemRight, .memTemplParams {
	border-top: 4px solid #FFFFFF;
}

.memItemLeft, .memTemplItemLeft {
        white-space: nowrap;
}

.memTemplParams {
	color: #404040;
        white-space: nowrap;
}

/* @end */

/* @group Member Details */

/* Styles for detailed member documentation */

.memtemplate {
	color: #000000;
	font-weight: normal;
	margin-left: 9px;
}

.memnav {
	background-color: #000000;
	border: 0px solid #A3B4D7;
	text-align: center;
	margin: 2px;
	margin-right: 15px;
	padding: 2px;
}

.memitem {
	padding: 8px;
	margin-bottom: 10px;
}

.memname {
	font-family: monospace, consolas, "courier new";
    font-weight: bold;
	font-size: 12px;
    white-space: nowrap;
    margin-left: 6px;
}

.memproto {
    border-top: 0px solid #FF8000;
    border-left: 0px solid #FF8000;
    border-right: 0px solid #FF8000;
    padding: 6px 0px 6px 0px;
    color: #000000;
    font-weight: bold;
    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
    /* opera specific markup */
    box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
    border-top-right-radius: 8px;
    border-top-left-radius: 8px;
    /* firefox specific markup */
    -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
    -moz-border-radius-topright: 8px;
    -moz-border-radius-topleft: 8px;
    /* webkit specific markup */
    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
    -webkit-border-top-right-radius: 8px;
    -webkit-border-top-left-radius: 8px;
    background-repeat:repeat-x;
    background-color: #FFFFFF;
	background-image: -moz-linear-gradient(center top, #FFF8F0 0%, #FFFFFF 60%, #FFFFFF 95%, #FFFFFF);
	background-image: -webkit-gradient(linear,center top,center bottom,from(#FFF8F0), color-stop(0.2,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#FFFFFF), to(#FFFFFF));
}

.memdoc {
	/*font-family: Lucida Grande, Calibri, Verdana;*/
    border-bottom: 0px solid #FF8000;      
    border-left: 0px solid #FF8000;      
    border-right: 0px solid #FF8000; 
    padding: 2px 5px;
    background-color: #FFFFFF;
    border-top-width: 0;
    /* opera specific markup */
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
    /* firefox specific markup */
    -moz-border-radius-bottomleft: 8px;
    -moz-border-radius-bottomright: 8px;
    -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
    background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #FFF8F0 90%, #FFEEDD);
    /* webkit specific markup */
    -webkit-border-bottom-left-radius: 8px;
    -webkit-border-bottom-right-radius: 8px;
    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
    background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.90,#FFF8F0), to(#FFEEDD));
}

.paramkey {
	text-align: right;
}

.paramtype {
	white-space: nowrap;
}

.paramname {
	color: #FF8000;
	white-space: nowrap;
}
.paramname em {
	font-style: normal;
}

.params, .retval, .exception, .tparams {
        border-spacing: 6px 2px;
}       

.params .paramname, .retval .paramname {
		color: #FF8000;
        font-family: monospace, consolas, "courier new";
        font-weight: bold;
		font-size: 12px;
        vertical-align: top;
}
        
.params .paramtype {
        font-style: italic;
        vertical-align: top;
}       
        
.params .paramdir {
        vertical-align: top;
}




/* @end */

/* @group Directory (tree) */

/* for the tree view */

.ftvtree {
	/*font-family: Lucida Grande, Calibri, Verdana;*/
	margin: 0px;
}

/* these are for tree view when used as main index */

.directory {
	font-weight: bold;
	margin: 5px;
}

.directory h3 {
	margin: 0px;
	margin-top: 1em;
}

/*
The following two styles can be used to replace the root node title
with an image of your choice.  Simply uncomment the next two styles,
specify the name of your image and be sure to set 'height' to the
proper pixel height of your image.
*/

/*
.directory h3.swap {
	height: 61px;
	background-repeat: no-repeat;
	background-image: url("yourimage.gif");
}
.directory h3.swap span {
	display: none;
}
*/

.directory > h3 {
	margin-top: 0;
}

.directory p {
	margin: 0px;
	white-space: nowrap;
}

.directory div {
	display: none;
	margin: 0px;
}

.directory img {
	vertical-align: -30%;
}

/* these are for tree view when not used as main index */

.directory-alt {
	font-size: 100%;
	font-weight: bold;
}

.directory-alt h3 {
	margin: 0px;
	margin-top: 1em;
}

.directory-alt > h3 {
	margin-top: 0;
}

.directory-alt p {
	margin: 0px;
	white-space: nowrap;
}

.directory-alt div {
	display: none;
	margin: 0px;
}

.directory-alt img {
	vertical-align: -30%;
}

/* @end */

div.dynheader {
        margin-top: 8px;
}

address {
	font-style: normal;
	color: #804000;
}

table.doxtable {
	border-collapse:collapse;
}

table.doxtable td, table.doxtable th {
	border: 0px solid #000000;
	padding: 3px 7px 2px;
}

table.doxtable th {
	background-color: #000000;
	color: #FFFFFF;
	font-size: 110%;
	padding-bottom: 4px;
	padding-top: 5px;
	text-align:left;
}

.tabsearch {
	top: 0px;
	left: 10px;
	height: 36px;
	/*background-image: url('tab_b.png');*/
	z-index: 101;
	overflow: hidden;
}

.navpath ul
{
	background-color: #FFEEDD;
	height:30px;
	line-height:30px;
	overflow:hidden;
	margin:0px;
	padding:0px;
}

.navpath li
{
	list-style-type:none;
	float:left;
	padding-left:10px;
	padding-right:15px;
	/*background-image:url('bc_s.png');*/
	background-repeat:no-repeat;
	background-position:right;
}

.navpath li.navelem a
{
	height:32px;
	display:block;
	text-decoration: none;
	outline: none;
}

.navpath li.navelem a:hover
{
	color:#FF8000;
}

.navpath li.footer
{
	list-style-type:none;
	float:right;
	padding-left:10px;
	padding-right:15px;
	background-image:none;
	background-repeat:no-repeat;
	background-position:right;
	color:#FFEEDD;
}

div.summary
{
	float: right;
	font-size: 12px;
	padding-right: 5px;
	width: 160px;
	text-align: right;
}       

div.summary a
{
	white-space: nowrap;
}

div.ingroups
{
	padding-left: 5px;
	width: 50%;
	text-align: left;
}

div.ingroups a
{
	white-space: nowrap;
}

div.header
{
    background-color:#FFEEDD;
	background-image: -moz-linear-gradient(center top, #FFEEDD 0%, #FFEEDD 5%, #FFEEDD 80%, #FFFFFF);
	background-image: -webkit-gradient(linear,center top,center bottom,from(#FFEEDD), color-stop(0.05,#FFEEDD), color-stop(0.05,#FFEEDD), color-stop(0.80,#FFEEDD), to(#FFFFFF));

	padding:0px;
    margin:0px;
	margin-left:auto; 
	margin-right:auto;
	width:1000px;
    border-bottom: 0px solid #FFC080;
}

div.headertitle
{
	margin:  0px;
	padding: 5px;
	padding-bottom:10px;
	padding-top:10px;
}

div.title
{
	font-family: Lucida Grande, Cambria, Georgia;
	font-size: 24px;
	color: #FF7F00;
}

dl
{
        padding: 0 0 0 10px;
}

dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
{
    border-color: #FF7F00;
    border-left:4px solid;
    padding: 0 0 0 6px;
}

dl.note
{
        border-color: #FFDDBB;
}

dl.warning, dl.attention
{
        border-color: #FF0000;
}

dl.pre, dl.post, dl.invariant
{
        border-color: #00D000;
}

dl.deprecated
{
        border-color: #505050;
}

dl.todo
{
        border-color: #00C0E0;
}

dl.test
{
        border-color: #3030E0;
}

dl.bug
{
        border-color: #C08050;
}

#projectlogo
{
	text-align: center;
	vertical-align: bottom;
	border-collapse: separate;
}
 
#projectlogo img
{ 
	border: 0px none;
}
 
#projectname
{
	/*font-family: Lucida Grande, Cambria, Georgia;*/
	font-size: 24px;
	margin: 0px;
	padding: 0px;
}
    
#projectbrief
{
	/*font-family: Lucida Grande, Cambria, Georgia;*/
	font-size: 18px;
	margin: 0px;
	padding: 0px;
}

#projectnumber
{
	/*font-family: Lucida Grande, Cambria, Georgia;*/
	font-size: 14px;
	margin: 0px;
	padding: 0px;
}

#titlearea
{
	padding: 0px;
	margin: 0px;
	width: 100%;
	border-bottom: 0px solid #FF8000;
	background-color:#FFFFFF;
}

#top
{
	margin-left:auto; 
	margin-right:auto;
	width:1000px;
}
