/* page general styles */
body{
    padding:0px;
    margin:0px;
    /*width:1000px;*/
}
a{
    color:#557f95;
    text-decoration:none;
}
a:hover{
    color:#000000;
    text-decoration:underline;
}
body, td, tr, input,h1,h2,h3,h4,h5,h6,a{
    font: 12px Verdana, Arial, Helvetica, sans-serif;
    line-height:18px;
}
h2{
    padding:0px;
    margin:0px;
    font-size:14px;
    font-weight:bold;
    height:22px;
    background-color:#bcbcbc;
    text-indent:10px;
    margin-left:-15px;
    margin-right:-15px;
    margin-top:-5px;
    color:#000000;
}
h3{
    padding:0px;
    margin:0px;
    font-weight:bold;
}
h4{
    padding:0px;
    margin:0px;
    font-weight:bold;
    color:#777777;
}
p{
    padding-top:1.5px;
    padding-bottom:1.5px;
    line-height:18px;
}
pre{
    padding: 0px;
    margin-top: 5px;
    margin-left: 15px;
    margin-bottom: 5px;
    margin-right: 5px;
    text-align: left;
    background-color: #f0f0f0;
    padding: 3px;
    border: 1px dashed #3c78b5;
    font-size: 11px;
    font-family: Courier;
    margin: 10px;
    line-height: 13px;
    overflow: auto;
}
/* page styles */
.page-padding{
    padding-left:10px;
    padding-right:10px;
}
.composite{
/* Uncomment these lines to give a fixed width with centered positioning ....*/
    /*position:absolute;*/
    /*left:50%;*/
    /*width:980px;*/
    /*margin: 5px;*/
    /*border:solid 1px #83b0c0;*/
}

/* header styles */
#banner{
    background-image:url(../images/apache-synapse-banner-background.jpg);
    background-repeat:repeat-x;
    background-position:0px 0px;
    height:98px;
}
#bannerLeft{
    background-image:url(../images/apache-synapse-logo.jpg);
    background-repeat:no-repeat;
    background-position:0px 0px;
    height:103px;
    text-align:right;
    padding-right:10px;
    display:block;
}
#breadcrumbs{
    position:absolute;
    width:100%;
    top:85px;
    background-color:transparent;
    border-bottom:none;
    border-top:none;
    font-size:auto;
    margin:0pt;
    padding:0px;
}
#bannerRight{
    background-image:url(../images/apache-synapse-banner.jpg);
    background-repeat:no-repeat;
    background-position:right 0px;
    display:block;
    height:65px;
    position:absolute;
    right:0px;
    top:0px;
}

.top-menu a{
    color:#000000;
    text-decoration:none;
}
.top-menu a:hover{
    text-decoration:underline;
}
.top-menu-gap{
    padding-left:30px;
}

/* content text */
.content{

}
#leftColumn{
    width:179px;
    background-color:transparent;
    border:none;
    margin:10px 0px 0px 5px;
}
#navcolumn h5{
    text-indent:15px;
    height:23px;
    color:#ffffff;
    background-image:url(../images/apache-synapse-menu-top.jpg);
    background-repeat:no-repeat;
    background-position:left 0px;
}
#navcolumn{
    background-image:url(../images/apache-synapse-menu.jpg);
    background-repeat:no-repeat;
    background-position:0px 0px;
    background-color:#e5e5e5;
    border-bottom:solid 1px #b4b4b4;
    padding:0px 0px 0pt 0px;
    font-size:11px;
}
#navcolumn ul{
    padding:0px;
    margin:0px;
    list-style:none;
    padding-left:10px;
}
#navcolumn ul ul{
    margin-left:-10px;
}
#navcolumn li{
    margin-top:3px;
}
#navcolumn strong{
    font-weight:bold;
}
#navcolumn ul li a {
    text-indent:0px;
    font-size:12px;
    color:#224351;
}
#navcolumn li.expanded {
    background-image:url(../images/apache-synapse-menu-button.gif);
    background-repeat:no-repeat;
    background-position:0px 5px;
}
#navcolumn ul li ul li a{
    background-image:none;
    text-indent:0px;
    font-size:11px;
    color:#557f95;
    font-size:11px;
}
#bodyColumn{
    background-color:#F3F3F3;
    border:1px solid #B4B4B4;
    margin-right:10px;
    margin-left:194px;
    margin-top:10px;
    padding-left:10px;
    padding-right:10px;
}
.menu-bottom-left{
    background-image:url(../images/apache-synapse-menu-bottom.jpg);
    background-repeat:no-repeat;
    background-position:0px 0px;
    background-color:#e5e5e5;
    width:15px;
    height:13px;
    float:left;
}
.menu-bottom-right{
    background-color:#e5e5e5;
    border-bottom:solid 1px #b4b4b4;
    height:13px;
    float:right;
    width:164px;
}
.content-back1{
    background-image:url(../images/apache-synapse-spliter.jpg);
    background-repeat:no-repeat;
    background-position:0px 0px;
}
.content-back2{
    background-image:url(../images/apache-synapse-content-back.jpg);
    background-repeat:repeat-y;
    background-position:0px 0px;
    background-color:#f3f3f3;
    border-bottom:solid 1px #b4b4b4;
    border-right:solid 1px #b4b4b4;
    margin-right:10px;
}
.content-display{
    margin-left:32px;
    padding-bottom:10px;
}
.poweredBy{
    margin-left:30px;
    margin-top:5px;
}
.footer{
    color:#929292;
    margin-top:10px;
    margin-left:10px;
}
.command {
    overflow: auto;
    border: 1px dashed #3c78b5;
    text-align: left;
    background-color: #f0f0f0;
    padding: 3px;
    font-size: 11px;
    font-family: Courier;
    margin: 10px;
    line-height: 13px;
}
.consoleOutput {
    overflow: auto;
    white-space: pre;
    border: 1px dashed #3c78b5;
    font-size: 11px;
    font-family: Courier;
    margin: 10px;
    line-height: 13px;
    background-color: #f0f0f0;
    border-bottom: 1px dashed #3c78b5;
    padding: 3px;
    border-style: solid;
}
.info {
    border-style: solid;
    border-width: 1px;
    border-color: #090;
    background-color: #dfd;
    text-align:left;
    margin-top: 5px;
    margin-bottom: 5px;
}
.data-table{
    font-family:Verdana,Arial,Helvetica,sans-serif;
    font-size:11px;
    border:0px;
    margin:0px;
    border:solid 1px #cdcdcd;
}
.data-table th{
    background-color:#eeeeee;
    border-bottom:solid 1px #8d8d8d;
    padding-top:5px;
    padding-left:3px;
    text-align:left;
}
.data-table td{
    padding-top:4px;
    padding-left:3px;
    border-bottom:solid 1px #e1e1e1;
}
.download-pre {
    font-family:Verdana,Arial,Helvetica,sans-serif;
    font-size:11px;
    font-style:normal;
    margin:0;
    padding-bottom:3px;
    padding-top:3px;
}

.download-header-pre {
    font-family:Verdana,Arial,Helvetica,sans-serif;
    font-size:12px;
    font-weight:bold;
    margin:0;
    padding-top:3px;
    padding-bottom:3px;
    border: medium none;
    background-color: #BBBBBB;
}