/* -------- DIRECT STYLES FOR TAGS-----------*/
body {
   color: #333333; padding:0px; margin:0px;
   font-size: 0.7em;
   font-family: Verdana, "Verdana CE",  Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
   height:500px;
}
body.blue-bg {
   background-color:#b4dae0;
   background-image:url('/images/v6/body-bg.png');background-repeat:repeat-x;
}
h1 {
   font-size: 1.6em;color: #D20106;font-weight : normal;padding:0px;margin:0px 0px 10px 0px;
   text-align:left;
}

h1.light {
   padding:0px;margin:0px 0px 10px 0px;
   text-align:left;
   color:#868585;
}
h1 A:link:hover, h1 A:visited:hover  {
   font-weight:bold;
}

h2 {
   font-size: 1.45em;color: #EE6B00;  font-weight : normal; padding:5px 0px 2px 0px;margin:0px 0px 5px 0px;
   border-bottom:1px solid #D1d1d1; text-align:left;
}

h2 tt { color: #EE6B00; }  
h1 tt { color: #D20106; }
h3 tt { color: #2D3F8E; }

h3 {
   font-size: 1.3em;color: #2D3F8E; font-weight : normal; padding:10px 0px 3px 0px;margin:0px;
   text-align:left;
} 
h4 {
   font-size: 1.15em;color: #3D3D3D; font-weight : bold; padding:10px 0px 3px 0px;margin:0px; text-align:left;
}
h5 {
   font-size: 1.15em;color: #1E2A60; font-weight : bold; padding:10px 0px 3px 0px;margin:0px;
   color: #5E5966; text-align:left;
}

A:link, A:visited {
   color: #1E2A60; font-weight : normal; text-decoration: underline;
}

A:link:hover, A:visited:hover  {
   color: #1E2A60; font-weight : normal; text-decoration : underline; background-color: #CAE8ED;
}

.nav A:link {
   color: #EE6B00;
}

A.tutorial-link {
   background-color: #e6f6fe;
   background-image:url('/images/v6/tutorial.gif');
   background-repeat:no-repeat;
   background-position:left;
   padding:3px 7px 7px 30px;
   vertical-align:middle;	
}
A.demo-link {
   background-color: #e6f6fe;
   background-image:url('/images/v6/demo.gif');
   background-repeat:no-repeat;
   background-position:left;
   padding:3px 7px 7px 30px;
   vertical-align:middle;	
}

p {
   margin:0px 0px 0px 0px;
   padding:0px 0px 10px 0px;
}

pre {
   background-color:#FFF8E4;
   padding:10px;
   font-size: 1.3em;
   _font-size: 1.2em;
}
pre,samp,code,tt {
   font-family: "Courier New", monospace;
   font-size:1.1em;
   color:black;
}

ol li {
   margin-bottom:9px;margin-top:0px;
}

ul li {
   margin-bottom:10px;margin-top:0px;
}

ul {
   padding-top:0px;
   margin: 0px;
   _margin-left: 15px;
}
ul li ul {margin-top:8px;}
li p { margin:0px;padding:0px 0px 3px 0px;}
/* TOC list styles */
ul.toc {margin-bottom:15px;}
ul.toc > ul {margin-bottom:0px;}
ul.toc li {padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:4px;}

img.box { 
   /*border: 1px solid #CCCCCC;} */
   border: 1px solid #BBBBBB;}
img.left { 
   margin-left:  0px; 
   margin-right: 	10px;
   margin-bottom:  10px; 	 
   float:left;}
img.right { 
   margin-right: 0px; 
   margin-left:  	10px; 
   margin-bottom:  10px; 	
   float:right; }
.margin-around {margin: 10px;}
/* --------------------------- */

/* ------- SHARED STYLE FOR BOTH FLEX AND FIXED PAGES  -----------*/
/* top level div, keeps page centered. both fix and flex*/
#center-container {
   text-align:center;
}
/* layer holding footer links both flex and fix*/
#footer-text {
   margin:0px 25px 0px 25px;
   padding:10px 0px 10px 0px;
}
/* layer holding terms of use text and link */
#tof {
   font-size:0.9em;
   margin-top:3px;
}
/* navigation breadcrumbs for both flex and fix pages */
#navig-breadcrumbs {
   height:12px;
   margin-left:-1px;
   margin-right:-1px;
   background-image:url('/images/v5/path-bg.png');background-repeat:repeat-x;background-position:bottom;
   padding:2px 0px 4px 20px;
   font-size: 0.9em;
   text-align:left;
   border-left: 1px solid #5fa1a6;
   border-right: 1px solid #5fa1a6;
}
#download-box {
   height:166px;_height:170px;
}
#print {
   float:right;
   margin-top:6px;
   z-index:1000;
}

/* top netbeans logo link, if absolute it fill overlay wings which looks nice */
.logo-link {
   position:absolute;
}
/* layer with login box*/
#loginbox {
   padding:5px 5px 5px 13px;
}
#f-page-news h2 {
   font-weight:bold;border: 0px;
}
#f-partner {
   _margin-top:10px;
   padding:10 10px 10px 10px;
}
.product-list-box {
   margin:15px 0px 0px 545px;
}

#products-navig { 
   float:left;
   width:166px;
   margin:15px 0px 0px 14px;
   _margin:15px 0px 0px 9px;
   background-image: url('/images/v6/products-navig-bg.png');background-repeat: no-repeat;
   background-color: #b7dce1;
   
}

#products-navig-table {
   border-collapse: collapse;
   width:166px;
}
#products-navig-table td { 
   border-bottom:1px solid white; 
   padding:8px 4px 10px 4px;
}
.products-navig-submenu {
   padding:5px 0px 0px 5px;
   _padding:5px 0px 0px 8px;	
}

#products-text { margin-left:180px;}
#companion-projects {
   text-align:center;
   width:910px;
   margin-left:auto;
   margin-right:auto;
}
#companion-projects a:hover { background-color:#b4dae0;}
.companions-left {padding-left:7px;}
.companions-right {padding-right:5px;}
.rcol {
   width:249px
}
#features-dir-header {
   background-image: url('/images/v6/products-top-bg.gif');
   background-repeat:no-repeat;
   height:57px;
}
#features-dir-header div {
   float:right;
   padding:20px 15px 0px 0px;
}
#features-dir-header h1 {
   font-size:1.8em;
   color:0e1b55;
   padding:25px 0px 0px 15px;
}

.trail-box {margin:10px 10px 10px 10px;}
.trail-box-header {
   background-color: #c7e3e8;
   height:21px;
}
.trail-box-header h1 {
   color:#0e1b55;
   margin:0px;
   padding:2px 0px 0px 0px;
   _padding:7px 0px 0px 0px;
   font-size:1.3em;
}
.trail-box-content {
   padding: 10px 10px 0px 10px;
   border-right:1px solid #c7e3e8;
   border-left:1px solid #c7e3e8;
   border-bottom:1px solid white;
}
.trail-box-content ul {
   margin-bottom:0px;
   padding-bottom:0px;
}
.trail-box-content li.line {
   border-bottom:1px dashed #adadad;
   padding-bottom:10px;
   margin-bottom:10px;
}
.trail-box-bottom {
   background-image:url('https://netbeans.org/images/v6/trails/trails-box-bm.png');
   background-repeat:repeat-x;
   height:6px;
   margin:0px;
   padding:0px;
   line-height:1%;
}
/* ------------------------- */

/* --------- FIXED WIDTH PAGE STYLE ----------- */
/* left and right shaded border for fix pages*/
#page-border {
   width:912px;
   padding-top:7px; margin-left:auto; margin-right:auto;
   border-left: 1px solid #5fa1a6;
   border-right: 1px solid #5fa1a6;
   padding:0px;
   text-align:left;
}
/* layer holding navig tabs for fix pages */
#fixed-tabs {
   margin:0px -1px 0px -1px;
   background-image:url('/images/v6/tabs-bg.png');background-repeat:repeat-x;
   height:26px;
   text-align:center;
   _margin-left:-4px;
}
/* navig tabs has no border*/
#fixed-tabs img {
   border:0px;
   _margin-bottom: -2px;
}
/* layer holding main content table. must have L+R marging because shaded borders in layer below*/
#fixed-contentarea {
   margin:0px;
   background-color: white;
}
/* top content box over main and right cols. only for fixed pages*/
#fixed-top-contentbox {
   padding-top:2px;
   _padding-top:0px;
}

#top-box-bg img {
   border:0px;
}
/* layer holding main content table - IE hack*/
#fixed-contentbox-ie {
   margin:-1px;
   _margin:0px;
}
/* layer holding fix page footer */
#fixed-footer {	
   width:914px;
   padding-top:0px; margin-left:auto; margin-right:auto;
   height:36px;
   background-image:url('/images/v6/footer-bg.png');background-repeat:no-repeat;
   margin-bottom:5px;
}
/* layer holding netbeans logo at the very top of the page */
#fixed-logo {
   width:910px;
   height:50px; 
   padding-bottom:10px;
   _padding-bottom:0px;
   _padding-top:0px;
   text-align:left;
   margin-left:auto;margin-right:auto;
   
}
/* ----------------------------- */

/* --------- FLEXIBLE PAGE STYLE ------------- */
/* margins for whole flex page*/
#floating-page {
   text-align:left; margin: 0px 25px 15px 25px;
   padding-top:10px;
   _padding-top:0px;
}
/* style for top level table cells */
.floating-wrap-table, #floating-contenttable td.valign-top {
   padding:0px;	
}
#wrap-table{
   width:100%;
   _width:96%;
   border-collapse:collapse;
}
#floating-contenttable {
   margin:0px;
   background-color: white; 
   width:auto;
   border-left: 1px solid #5fa1a6;
   border-right: 1px solid #5fa1a6;
   border-collapse:collapse;
}
/* hack for IE width */
#ie-width-hack {_width:97%;}

/* layer holding flex page navig tabs images */
#floating-tabs {
   display:block;
   margin-left:auto; margin-right:auto;
   min-width:725px;
   _margin-bottom:-2px;
   
}
/* layer wrapping flex page tabs and wings */
#floating-tabs-container {
   margin:0px;
   padding:0px;
   background-image:url('/images/v6/tabs-bg.png');background-repeat:repeat-x;
   height:26px;
   text-align:center;
}
#floating-tabs img {
   border:0px;
}
/* layer holding lfex page footer */
#floating-footer {
   margin:0px;
   padding:0px;
   background-image:url('/images/v6/footer-floating-bg.png');background-repeat:repeat-x;
   height:36px;
}
/* layer holding right content column*/
#floating-col-right {
   /*float:right;*/
   width:230px;
   padding: 0px 0px 0px 0px;
   margin:0px;
}
#floating-col-right h2 {
   border: 0px;
   padding-top:0px;margin-top:0px;
   font-weight:normal;
}
#floating-col-right h1 {
   font-size: 1.50em;
   border: 0px;
   font-weight:normal;
}
/* layer holding floating page logo*/
#floating-logo {
   padding:2px 27px 0px 27px;
   text-align:left;
   
}
/* -------------------------- */

/* ----------- Docs & Suport spec styles -------------*/
/* D&S pages are wrapped by this, can set extra style here */
#doc {
   line-height:165%;
   padding-left:20px;
   _width:98%;
}
#doc h2 {
   font-size: 1.45em;color: #EE6B00;  font-weight : normal; padding:5px 0px 2px 0px;margin:10px 0px 8px 0px;
   border-bottom:1px solid #D1d1d1; text-align:left;
}
#doc ul  {margin-bottom:15px;}
#doc table {margin-bottom:15px;}
#doc table.colapse td { padding:3px; }

#sample-project {
   float:right;
   margin:5px 0px 5px 5px;
   border: 1px dotted silver;
   background-color:#FFF4EE;
}
/* D&S feedback box */
.feedback-box {
   float: right;
   padding:5px;
   margin:5px;
   background-color: #F2F7FB;
   border: 1px black dotted;
   font-style:italic;
}

.notes {
   background-image:url('/images/v6/notes_small.gif');
   background-repeat:no-repeat;
   background-position:left;
   padding:5px 7px 7px 35px;
   vertical-align:middle;
}

.tips {
   background-image:url('/images/v6/tips_small.gif');
   background-repeat:no-repeat;
   background-position:left;
   padding:5px 7px 7px 40px;
   vertical-align:middle;	
}

#bookmarks {
   float:right;
   margin:10px 10px 10px 0px;
   padding:5px;
   border:1px dotted grey;
}

.stamp {
   float:right;
   margin:0px 0px 10px 10px;
}

/* ----------- VARIOUS DESIGN CLASSES-------------- */
a img {border:none;}
/* backgrounds */
.bg-bege {
   background-color: #FFFCF4;
}
.bg-face {
   background-color:#FFF4EE;
}
.bg-silver {
   background-color:#EFEFEF;
}
.bg-silver2 {
   background-color:#F2F2F2;
}
.bg-sky {
   background-color:#F4F7FF;
}
.bg-white {
   background-color:white;
}

.innerpadding {
   padding:5px;
}

/* floating */
.float-left {
   float:left;
}
.float-right {
   float:right;
}

/* borders */
.b-all {border:1px solid #adadad;}
.b-left {
   border-left:1px solid #ADADAD;
}
.b-right {
   border-right:1px solid #ADADAD;
}
.b-top {
   border-top:1px solid #ADADAD;
}
.b-bottom {
   border-bottom:1px solid #ADADAD;
}
.b-top-dashed {
   border-top:1px dashed #ADADAD;
}
.b-left-dashed {
   border-left:1px dashed #ADADAD;
}
.b-right-dashed {
   border-right:1px dashed #ADADAD;
}
.b-bottom-dashed {
   border-bottom:1px dashed #ADADAD;
}
.b-green-left {
   border-left:1px solid #69b5c2;
}
.b-green-right {
   border-right:1px solid #69b5c2;
}
.b-none {
   border:none;
}

/* text cells padding */
.f-page-cell, .f-page-auto-cell {
   padding:15px;
   vertical-align:top;
   line-height:140%;
}
.cell {padding:5px;}

/* tables  styles */
table {
   color: #333333; font-size:1em;
   font-family: Verdana, "Verdana CE",  Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
}
table.t-packs td {
   padding-bottom:10px;
}
.colapse {
   border-collapse:collapse;
}

.f-page-table {
   width:767px;
   _width:700px;
}
.f-page-table-2col {
   width:797px;
   _width:790px;
}
.full-width {
   width:100%;
}
.half-width {
   width:50%;
}
.f-page-rcol {
   width:307px;_width:306px;
}


/* font styles */
.font-light { 
   color: #AEADAD;
}
.font-13 {
   font-size:1.1em;
}  
.font-14 {
   font-size:1.2em;
}
.font-15 {
   font-size:1.3em;
}
.font-16 {
   font-size:1.4em;
}
.font-10 {
   font-size:0.8em;
}
.font-11 {
   font-size:0.9em;
}
.font-9 {
   font-size:0.75em;
}
.bold {
   font-weight:bold;
}
.u {
   text-decoration:underline;
}

/* text color styles */
.orange {
   color: #EE6B00;
}
.blue {
   color: #1E2A60;
}

b {
   font-size:1em;
}
.normal {
   font-weight:normal;
}

/* vertical and horizontal alignments */
.valign-top {
   vertical-align:top;
}
.valign-center {
   vertical-align:middle;
}
.valign-bottom { 
   vertical-align:bottom;
}
.align-justify {
   text-align: justify;
} 
.align-right {
   text-align: right;
}  
.align-center {
   text-align: center;
}
.align-left {
   text-align:left;
}

/* forms styles */
form {
   padding:0px;margin:0px;
}
input.field {
   border:1px solid #1E2A60;
}	
.clear {
   clear:both;
}
select {
   border:1px solid #1E2A60;
}
input.button {
   border:1px solid #1E2A60;
   background-color:#FFF8E4;
}
input.toplogininp {
   width:120px;
}

/* others */
/* example code will have scrollbars if too big*/
.examplecode  {
   background-color:#FFF8E4;
   overflow:auto;
   width:95%;
}

em.Code {
   background-color:#FFF8E4;
   overflow:auto;
   width:500px;
}

.img-left {
   margin:5px 10px 5px 0px;
   float:left;
}
.img-right {
   margin:5px 0px 5px 10px;
   float:right;
}

.news-image {
   float:right;
   margin:3px 0px 5px 12px;
}
/*------------- LEGACY STYLES -----------------*/
/* .leftnavtitle {
font-family: Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
font-size: 1.4em;
font-weight:normal;
margin-top:15px;
margin-bottom:20px;
padding-bottom:0px;
color:#0E1B55;
}*/

/*
*netbeans/look/www/overrides/templates/NavColumn.vm:
*/
.moduletitle {
   font-family: Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
   font-size: 22px;
   font-weight:normal;
   margin-top:4px;
   margin-bottom:20px;
   padding-bottom:0px;
   border-bottom:1px solid #AFAFAF;
   color:#0E1B55;
   background-image:url("/images/v4/bg_icon.gif");
   background-repeat:no-repeat;
   background-position:right;
}
/*
.leftmenuarrow {
margin-top:8px;
background-image:url("/images/v4/arr_r3.gif");
background-repeat:no-repeat;
font-weight:bold;
padding-bottom:10px;
border-bottom:1px solid #EFEFEF;
}
*/
/*
.leftmenuarrdn {
margin-top:8px;
background-image:url("/images/v4/arr_dn.gif");
background-repeat:no-repeat;
font-weight:bold;
padding-bottom:10px;
border-bottom:1px solid #EFEFEF;
}
*/


/*
*netbeans/webserver/www/qs-wa-ws61.html:            <div class="leftmenuplus">
* netbeans/look/www/overrides/templates/NavColumn.vm:  <div class="leftmenuplus">
*/
.leftmenuplus {
   margin-top:8px;
   background-image:url("/images/v4/menu_mark_plus.gif");
   background-repeat:no-repeat;
   font-weight:bold;
   padding-bottom:10px;
   border-bottom:1px solid #EFEFEF;
}
/*
.leftmenusq {
margin-top:8px;
background-image:url("/images/v4/menu_mark_sq.gif");
background-repeat:no-repeat;
font-weight:bold;
padding-bottom:10px;
border-bottom:1px solid #EFEFEF;
}
*/


/*too many records*/
.leftmenug {
   margin-top:8px;
   background-image:url("/images/v4/menu_mark_gt.gif");
   background-repeat:no-repeat;
   font-weight:bold;
   padding-bottom:10px;
}
/* neet to contact ja and webserver ... records in __leftsubmenug

.leftsubmenug {
margin-top:6px;
background-image:url("/images/v4/menu_mark_gt.gif");
background-repeat:no-repeat;
} */

/*
.leftsubmenusq {
margin-top:6px;
background-image:url("/images/v4/menu_mark_ssq.gif");
background-repeat:no-repeat;
}*/

/*netbeans/webserver/www/qs-wa-ws61.html
.leftmenuminus {
margin-top:8px;
background-image:url("/images/v4/menu_mark_minus.gif");
background-repeat:no-repeat;
font-weight:bold;
padding-bottom:10px;
border-bottom:1px solid #EFEFEF;
}*/

/* too many records, mainly in javascript... list is in _+leftmenuitem*/
.leftmenuitem {
   margin-left:15px;
   padding:0px;
   border:0px;
}


/* too many records, mainly in javascript... list is in _+leftsubmenuitem*/
.leftsubmenuitem {
   margin-left:15px;
   padding:0px;
   border:0px;
}

/*commenter above*/
.leftmenuitem SELECT {
   font-size:10px;
   font-weight:bold;
   font-family: Verdana, "Verdana CE",  Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
   color:#3F3F3F;
   width:140px;
}

/*tooooo many .... in _+rrrarticle*/
.rrrarticle {
   margin-top:5px;
   background-image:url("/images/v4/tl.gif");
   background-repeat:no-repeat;
   background-position: 0px 2px;
}
/*toooo many .... _+rarticle */
.rarticle {
   margin-top:8px;
   background-image:url("/images/v4/arr_r_trans.gif");
   background-repeat:no-repeat;
}
/*toooo many ... _+rarticletitle*/
.rarticletitle {
   margin-left:15px;
   font-weight:bold;
}
/*too many ... _+rarticletext*/
.rarticletext {
   margin-left:15px;
   margin-right:10px;
}

/*tooo many ... _+ml15 */
.ml15 {
   margin-left:15px;
}
/*too many ... _+threelinesarticle*/	
.threelinesarticle {
   background-image:url("/images/v4/tl.gif");
   background-repeat:no-repeat;
   background-position: 0px 4px;
   padding-left:15px;
   font-weight:bold;
}
/* a few files contain this. Notigy the owners ASAP -- list of owners in _article file
.article {
background-image:url("/images/v4/bg_article.gif");
background-repeat:no-repeat;
}*/

/*tooo many ... in _+articledate*/
.articledate {
   color: #4E4E4E;
   margin-bottom:7px;
   font-style: italic;
}
/* tooo many ... in _+articletitle*/
.articletitle {
   margin-left:15px;
   font-weight:bold;
   font-size:12px;
}
/*too many ... in _+articleperex*/
.articleperex {
   margin-left:15px;
}

/* too many */
.articleborder {
   margin-left:15px;
   margin-top:9px;
   background-image:url("/images/v4/bg_art_dot.gif");
   background-repeat:repeat-x;
   height:10px;
}
/* too many */
.articleall {
   margin-top:9px;
   text-align:right;
   font-weight:bold;
}
/* not that many ~20-30 records */
#articleall {
   margin-top:9px;
   text-align:right;
   font-weight:bold;
}
/*too many*/
.tbltd1 {
   background-color:#F2F2F2;
   padding:3px;
}
/* too many */
.tbltd0 {
   background-color:#FAFAFA;
   padding:3px;
}
/*
.tbltd2 {
background-color:#FFFFFF;
padding:3px;
}*/
/*too many*/
.tblheader {
   background-color:#CAD7F0;
   color:#000000;
   font-weight:bold;
   padding:3px;
}
/* a few times... need to correct or notify owners */ 
.actionbox {
background-color: #F2F7FB;
border: 1px solid gray;
padding: 10px;
margin: 10px;
}

/*too many*/
.indent{
   padding-left:20px;
}

/** -------- DROPDOWN LANGUAGE MENU ------------- */
/* language menu style */
div.lang-dropdown {
   float:right;
   margin-right:3px;
   _margin-right:1px;
   padding-top:23px;
   _padding-top:27px;
   text-align:right;
}
div.lang-dropdown ul {
   margin: 0;
   padding: 0;
   list-style: none;
   text-align:left;
}
div.lang-dropdown ul li {
   position: relative;
}
ul.submenu {
   position: absolute;
   left: -1px; 
   display: none;
   background-color:white;
   border:1px solid gray;
   width:140px;
}

/* Styles for Menu Items */
div.lang-dropdown ul li a {
   display: block;
   text-decoration: none;
   border-bottom: 0;
}

/* Fix IE. Hide from IE Mac \*/
* _div.lang-dropdown ul li { float: left; height: 1%; }
* _div.lang-dropdown ul li a { height: 1%; }
/* End */
div.lang-dropdown ul li ul li {height:20px;margin:0px;padding:0px;}
div.lang-dropdown ul li ul li a:hover { color: #E2144A; background: #EEEEEE; } /* Hover Styles */

div.lang-dropdown ul li ul li a { padding: 2px 3px 0px 10px; text-decoration: underline;} /* Sub Menu Styles */

li:hover ul, li.over ul { display: block; } /* The magic */

/* ---------------------- */

/* --------- SEARCH BOX  --------------*/
#search {
   float:right;
   margin-right:3px;
   padding-top:20px;
   margin-left:10px;
}
#search input.text {
   width:110px;
   height:18px;
   font-size:11px;
   border:1px solid gray;
}
#search table { 
   display:inline;
}

/* mouse-over ruled table styles------------------------------------ */
table.ruled {
   border: 1px solid gray;
   border-collapse: collapse;
}

table.ruled td {
   font: 11px Verdana, Geneva, Arial, Helvetica, sans-serif;
   border: 1px solid gray;
   padding: 2px;
}

table.ruled tr:hover td {
   background-color: #cccccc;
}

.ok {
   background-color: #00ff00;
}

.warn {
   background-color: yellow;
}

.problem {
   background-color: red;
}