/* -------- 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;
}
body.blue-bg {
  background-color:#E2EDF9;
  background-image:url('/images_www/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; line-height:105% ;
}

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_www/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_www/v6/demo.gif');
  background-repeat:no-repeat;
  background-position:left;
  padding:3px 7px 7px 30px;
  vertical-align:middle;
}

A.nobg:link:hover, A.nobg:visited:hover  {background-color:transparent;}

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;
  top:-6px;
  position:relative;
  text-align: right;
}
/* navigation breadcrumbs for both flex and fix pages */
#navig-breadcrumbs {
  height:12px;
  margin-left:-1px;
  margin-right:-1px;
  background-image:url('/images_www/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:10px 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_www/v6/products-navig-bg.png');background-repeat: no-repeat;
  background-color: #b7dce1;

}
#products-platform-navig {
  float:left;
  width:166px;
  margin:15px 0px 0px 14px;
  _margin:15px 0px 0px 9px;
  background-image: url('/images_www/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;
  line-height: 170%;
}
#products-platform-navig  h1 {
  margin-bottom:0px;
  color: #333333;
}

#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
}
.rcol ul { margin-left:0px;padding-left:15px;margin-top:10px; }
#heading-stripe {
  background-image: url('/images_www/v6/products-top-bg.png');
  background-repeat:no-repeat;
  height:57px;
}
#heading-stripe-platform {
  background-image: url('/images_www/v6/products-platform-top-bg.gif');
  background-repeat:no-repeat;
  height:57px;
}
#heading-stripe div, #heading-stripe-platform div {
  float:right;
  padding:20px 15px 0px 0px;
}
#heading-stripe 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;
  min-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('/images_www/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_www/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;
}
#fixed-top-contentbox h1 {
  font-size:1.8em;
  color:#0e1b55;
  padding:25px 0px 0px 15px;
}
#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_www/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;

}
h1#platform-header {
  padding:8px 0 0 15px;
  margin-bottom:3px;
}
p#platform-subheader {
  padding-left:15px;
  color:#ff8e00;
  font-size:12px;
}
/* ----------------------------- */

/* --------- 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_www/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_www/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;
}

.alert {
  background-image:url('images_www/v6/alert.gif');
  background-repeat:no-repeat;
  background-position:left top;
  padding:2px 0px 8px 30px;
  vertical-align:middle;
}

.notes {
  background-image:url('images_www/v6/notes_small.gif');
  background-repeat:no-repeat;
  background-position:left top;
  padding:2px 0px 8px 32px;
}

.tips {
  background-image:url('images_www/v6/tips_small.gif');
  background-repeat:no-repeat;
  background-position:left top;
  padding:1px 0px 8px 34px;
}

.new-badge {
  background-image:url('images_www/v6/new_small.png');
  background-repeat:no-repeat;
  background-position:left;
  padding:5px 0px 2px 34px;
}

.new-bullet {
  list-style-image: url('images_www/v6/new_small.png');
  background-repeat:no-repeat;
  background-position:left;
  margin:-5px 0 10px;
}

.circle-bullet { list-style: circle }

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

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

/* ----------- VARIOUS DESIGN CLASSES-------------- */
small {
  font-size:0.85em;
}
a img {border:none;background-color:transparent;}
/* 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 {
  padding:15px;
  vertical-align:top;
  line-height:140%;
}
.f-page-auto-cell {
  padding:15px;
  vertical-align:top;
  line-height:140%;
  _width:96%;
}
.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;
}
.green {
  color: #6d9633;
}
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:680px;
  white-space: pre;
}

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 -----------------*/

/*
*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_www/v4/bg_icon.gif");
  background-repeat:no-repeat;
  background-position:right;
}

/*
*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_www/v4/menu_mark_plus.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_www/v4/menu_mark_gt.gif");
  background-repeat:no-repeat;
  font-weight:bold;
  padding-bottom:10px;
}

/* 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_www/v4/tl.gif");
  background-repeat:no-repeat;
  background-position: 0px 2px;
}
/*toooo many .... _+rarticle */
.rarticle {
  margin-top:8px;
  background-image:url("/images_www/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_www/v4/tl.gif");
  background-repeat:no-repeat;
  background-position: 0px 4px;
  padding-left:15px;
  font-weight:bold;
}


/*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_www/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;
}

/*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;
  z-index:99999;
}

/* 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:120px;
  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;
}

.hidden {
  display: none;
}
.errmsg {
  background-color:white;
  width:50%;
  padding:5px;
  margin-bottom:5px;
  border:1px dotted red;
}
.errmsg li {
  margin:0px;
  padding:0px;
  color:red;
}
/* PRINT stryle tweaks */
@media print {
  .examplecode, pre  {
    white-space: pre-wrap;       /* css-3 */
    white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
    white-space: -pre-wrap;      /* Opera 4-6 */
    white-space: -o-pre-wrap;    /* Opera 7 */
    word-wrap: break-word;       /* Internet Explorer 5.5+ */

  }
}
