/************************
colors:
    tab - active/focus color
    background-color: #105E9E !important;

ONLab darker blue select :: background-color: #004775;
#0170BB
    left-nav
    background-color: #448CCA;
    background-color // normal: #B4CADF
91BFE4

*************************/

html, body, body.login {
  height: 100%;
  min-height: 100%;
  margin: 0;
}

body{
  max-width: 100%;
  overflow-x: hidden;
}

#wrap {
  min-height: 100%;
}

/* ************************* LOGIN PAGE ************************* */

body.login img.logo{
   width: 250px;
   display: block;
   margin: 20px auto;
   padding-top: 20px;
}

/* ************************* SIDENAV TOGGLE ************************* */

#wrapper {
    padding-left: 0;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
    min-height: 900px;
}

#wrapper.toggled {
    padding-left: 250px;
}

#sidebar-wrapper {
  z-index: 1000;
  position: fixed;
  left: 250px;
  width: 0;
  height: 100%;
  margin-left: -250px;
  overflow-y: auto;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
  background: white;
}

#wrapper.toggled #sidebar-wrapper {
  width: 250px;
  padding: 10px;
}

#page-content-wrapper {
    width: 100%;
    position: absolute;
    padding: 15px;
    min-height: 900px;
}

#page-content-wrapper .container-fluid {
  min-height: 900px;
}

.ui-tabs-panel {
    min-height: 700px;
}

#wrapper.toggled #page-content-wrapper {
    position: absolute;
    margin-right: -250px;
}

@media(min-width:768px) {
    #wrapper {
        padding-left: 250px;
    }

    #wrapper.toggled {
        padding-left: 0;
    }

    #sidebar-wrapper {
      width: 250px;
      padding: 10px;
    }

    #wrapper.toggled #sidebar-wrapper {
        width: 0;
    }

    #page-content-wrapper {
        padding: 20px;
        position: relative;
    }

    #wrapper.toggled #page-content-wrapper {
        position: relative;
        margin-right: 0;
    }
}

.navbar-toggle{
  border: 1px solid #08C;
}

.navbar-toggle .icon-bar{
  background: #08C;
}
/* ************************* END SIDENAV TOGGLE ************************* */

/* ************************* HEADER STYLE ************************* */

.header{
  background-color: #ffffff !important;
  border-bottom: 3px solid #C5CCD4;
  margin-bottom: 14px;
  height: 85px;
}

.header .logo{
  max-height: 80px;
}

.nav-quick-search{
  margin: 30px -10px 0px 0px !important;
  padding:0 25px 0 0 !important;
  float:right !important;
}

.nav-quick-search .search-query{
  border-radius:5px;
  border:none;
  box-shadow:0px;
  background-color:lightGrey;
  padding-left: 27px;
}


.header #branding {
  width: 100%;
  height:60px;
  border-right:none;
}

.header a {
  color: #08C;
  font-weight: bold;
  /*border-bottom: 1px solid #C5CCD4;*/
}
a {
  color: #08C;
  font-weight: bold;
  /*border-bottom: 1px solid #C5CCD4;*/
}


#branding2{
height:20px;
width:100%;
color: #333;
/*background-color: #000000;*/
margin-bottom: 10px;
}

.header #user-tools {
    padding: 12px 20px 0px 0px;
    float: right;
    margin-top: -5px;
}

.header .header-content .date{
padding-left:10px;
}

.header .header-content .time {
font-weight: normal;
}
.header .header-content.header-content-first{
height: 15px;
padding-bottom: 0px;
}

.header .header-content {
padding-bottom: 0px;
padding: 7px 0 0 0px;
}

/************************* END HEADER *************************/

/************************* FOOTER *************************/

.footer{
  z-index: 1001;
  position: fixed;
}

/* FIXME */
@media(max-width:768px) {
  .footer{
    display: none;
  }

  #page-content-wrapper{
    padding-bottom: 60px;
  }
}

.footer .content .statusMsg {
    float: right;
    padding: 15px 20px 0 0;
    display: block;
}
/************************* END FOOTER *************************/

/************************* NAV *************************/

#sidebar-wrapper {
  -webkit-box-shadow: 3px 0px 5px 0px rgba(50, 50, 50, 0.75);
  -moz-box-shadow:    3px 0px 5px 0px rgba(50, 50, 50, 0.75);
  box-shadow:         3px 0px 5px 0px rgba(50, 50, 50, 0.75);
}

#sidebar-wrapper .logo{
  max-width: 100%;
}

.icon-home ,.icon-deployment ,.icon-site ,.icon-slice ,.icon-user, .icon-reservation, .icon-app, .icon-cog {
  background-position: left center;
  width:22px;
  height:22px;
  display: inline-block;
  margin-right: 10px;
  position: relative;
  top: 5px;
}

.icon-app {
background-image: url("opencloudApp.png");
}
.icon-home {
/*  Going with darker standard color nav -- so using over png's background-image: url("Home.png"); */
background-image: url("Home.png");
}
.icon-deployment{
background-image: url("Deployments.png");
}
.icon-site{
background-image: url("Sites.png");
}
.icon-slice{
background-image: url("Slices.png");
}
.icon-user{
background-image: url("Users.png");
}
.icon-reservation{
background-image: url("Reservations.png");
}
.icon-cog{
background-image: url("Services.png");
}

#sidebar-wrapper>ul>li.active>a>.icon-home ,
/*#sidebar-wrapper>ul>li:hover>a>.icon-home ,*/
#sidebar-wrapper>ul>li.focus>a>.icon-home{
  background-image: url("Home_over.png");
}

#sidebar-wrapper>ul>li.active>a>.icon-deployment,
/*#sidebar-wrapper>ul>li:hover>a>.icon-deployment,*/
#sidebar-wrapper>ul>li.focus>a>.icon-deployment{
  background-image: url("Deployments_over.png");
}
#sidebar-wrapper>ul>li.active>a>.icon-site,
/*#sidebar-wrapper>ul>li:hover>a>.icon-site,*/
#sidebar-wrapper>ul>li.focus>a>.icon-site{
  background-image: url("Sites_over.png");
}
#sidebar-wrapper>ul>li.active>a>.icon-slice,
/*#sidebar-wrapper>ul>li:hover>a>.icon-slice,*/
#sidebar-wrapper>ul>li.focus>a>.icon-slice{
  background-image: url("Slices_over.png");
}
#sidebar-wrapper>ul>li.active>a>.icon-user,
/*#sidebar-wrapper>ul>li:hover>a>.icon-user,*/
#sidebar-wrapper>ul>li.focus>a>.icon-user{
  background-image: url("Users_over.png");
}
#sidebar-wrapper>ul>li.active>a>.icon-reservation,
/*#sidebar-wrapper>ul>li:hover>a>.icon-reservation,*/
#sidebar-wrapper>ul>li.focus>a>.icon-reservation{
  background-image: url("Reservations_over.png");
}

#sidebar-wrapper>ul>li.active>a>.icon-cog,
/*#sidebar-wrapper>ul>li:hover>a>.icon-cog,*/
#sidebar-wrapper>ul>li.focus>a>.icon-cog{
  background-image: url("Services_over.png");
}
/************************* END NAV *************************/

/************************* FORM TWEAKS *************************/
@media (min-width: 992px){
    .form-column.col-lg-4 {
        width: 66.66666667%;
    }
}
/************************* FORM TWEAKS *************************/

/*   CSS for jquery Tabs */
#hometabs {
border-bottom: 1px solid #105E9E;
font-size: 12px;
border: 0px;
}

.ui-tabs .ui-tabs-nav {
  padding: 0 !important;
}

.ui-tabs-active {
    color: #ffffff;
    background-color: #105E9E;
    text-shadow: rgb(46, 43, 43) 0.1em 0.1em 0.2em;
    font-weight: normal;
}
.nav > li > a:active {
    color: #ffffff;
    background-color: #105E9E;
    text-shadow: rgb(46, 43, 43) 0.1em 0.1em 0.2em;
    
}
.nav > li > a:focus {
    color: #ffffff;
    background-color: #105E9E;
    text-shadow: rgb(46, 43, 43) 0.1em 0.1em 0.2em;
    
}
.ui-state-focus a,
.ui-state-focus a:link{
    color: #ffffff;
    background-color: #105E9E;
    text-shadow: rgb(46, 43, 43) 0.1em 0.1em 0.2em;
}

.ui-state-default a {
    padding: 20px !important;
    line-height: 20px !important;
    transition: all .5s ease-in-out;
}

.ui-state-active a,
.ui-state-active a:link{
    color: #ffffff !important;
    background-color: #105E9E !important;
    text-shadow: rgb(46, 43, 43) 0.1em 0.1em 0.2em;
    font-weight: normal;
    font-size: 20px;
}


.alignCenter {
    text-align: center !important;
    align: center !important;
}
table.dataTable tr.odd {
background-color: white !important;
}
table.dataTable tr.odd td.sorting_1 {
background-color: white !important;
}
table.dataTable tr.even td.sorting_1 {
background-color: white !important;
}
table.dataTable thead th div.DataTables_sort_wrapper {
    font-weight: bold;
}
.dashboard-hpc-instance .ui-widget-header, .dashboard-hpc-instance .ui-dialog-title, .dashboard-hpc-instance .ui-dialog-titlebar{
}
.ui-widget-overlay {
    background: black !important;
}
.ui-corner-all {
border-bottom-left-radius: 0px !important;
border-bottom-right-radius: 0px !important;
}

#suit-center {
  /* min-width: 977px !important; */
}
#openCloudTopPage {
   margin-top: -25px;
   margin-right: -90;
   float: right;
}
#minDashboard {
  /*min-width:625px; */
  display:inline;
  float: right;
  border: 2px darkGrey;
}
.ui-state-default #hometabs, .ui-widget-content .ui-state-default #hometabs, .ui-widget-header .ui-state-default {
background: none !important;
border-top: 0px !important;
border-left: 0px !important;
border-right: 0px !important;
}
.ui-widget-header {
background: none !important;
border-top: 0px !important;
border-left: 0px !important;
border-right: 0px !important;
}
#suit_form_tabs {
/*border-bottom: 1px solid #B5D1EA;*/
border-bottom: 1px solid #105E9E !important;
border-bottom-width: 5px !important;
border-bottom-style: solid;
/*border-bottom-color: rgb(181, 209, 234);*/
border-bottom-color: #448CCA;
color:#105E9E;
}
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
color: #105E9E ;
}
.save-box {
  background-color: #ffffff;
  margin: 2px;
}
.save-box .btn-info {
  font-size: 14px;
  padding: 10px 20px 10px 20px;
}
.btn-success {
  font-size: 12px;
  font-weight: normal;
  padding: 5px 10px 5px 10px;
}
.btn-success, .save-box .btn-info {
  background: #27AE5F;
  background-image: -webkit-linear-gradient(top, #27AE5F, #27ae60);
  background-image: -moz-linear-gradient(top, #27AE5F, #27ae60);
  background-image: -ms-linear-gradient(top, #27AE5F, #27ae60);
  background-image: -o-linear-gradient(top, #27AE5F, #27ae60);
  background-image: linear-gradient(to bottom, #27AE5F, #27ae60);
  -webkit-border-radius: 5;
  -moz-border-radius: 5;
  border-radius: 5px;
  text-shadow: 1px 1px 3px #666666;
  font-family: Arial;
  color: #ffffff;
  text-decoration: none;
  letter-spacing: 1px;
}

.btn-success:hover, .save-box .btn-info:hover {
  background: #2ecc71;
  text-decoration: none;
}



.required:after {
  color: red !important;
  font-size: 18px;
}
/*.btn-success {color:black}*/
#suit-center {
padding: 20px;
width: 100%;
/*min-width:650px;*/
}
.inner-two-columns .inner-center-column .tab-content {
overflow-x: auto;
margin-bottom: 15px;
/*min-width: auto;*/
width:100%;
}
/*.inner-two-columns .inner-center-column {
  margin-right: 200px;
  background-color: rgb(158, 163, 159);
}*/
label {
display: block;
font-weight: bold;
margin-bottom: 5px;
}

/*For changing background color of suit center*/
#suit-center {
background-color: #ffffff;
}

.ui-tabs .ui-tabs-panel {
  position:relative;
}


.nav-tabs-suit li{
/*background-color: #CDE7FF;*/
background-color: #FFFFFF;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}

.nav-tabs-suit li a {

/*background-color: #CDE7FF;*/
font-weight: normal;
color: #105E9E;
/*border-radius: 3px;*/
border-top-left-radius: 3px;
border-top-right-radius: 3px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
border: none;
box-shadow: none;
}

.nav-tabs-suit li.active{
/*Changed on Dec 11*/
/*background-color: #448CCA;*/
     background-position: 50% 100%; 
background-image:url('down_arrow.png');
}

.nav-tabs-suit li.hover{
/*Changed on Dec 11*/
/*background-color: #448CCA;*/
color:#ffffff;
/*font-size: 1.2em;*/
font-weight: bold;
}

.nav-tabs-suit li.active a {
background-color: #ffffff;
/*background-color: #448CCA;*/
background-color: #105E9E;
color:#ffffff;
font-weight:normal;
padding-top:10px;
text-decoration:none;
}

.nav-tabs-suit li.active a:after{ /*arrow added to downarrowdiv DIV*/
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid #2f2f2f;
font-size: 0;
line-height: 0;
}

.nav-tabs-suit li.active a:hover,
.nav-tabs-suit li a:hover{
  background-color: #105E9E;
  /*background-color: #515151;*/
  font-weight:normal;
  /*font-size: 1.2em;*/
  color:#ffffff;
  /*padding-top:10px;
  text-decoration:none;*/
}

.nav-tabs>.active>a{
  border: none;
}

.nav-tabs-suit li a{
  font-weight: normal;
}

.nav-tabs-suit li a:hover{
  border: none;
  color: #ffffff;
  padding-top:10px;
  /*border: 1px solid;*/
  /*letter-spacing: 1px;*/
  /*text-shadow: rgb(46, 43, 43) 0.1em 0.1em 0.2em;*/
}

.nav-tabs-suit li.active a:hover{
  /*border: none;*/
}

.nav-tabs-suit > li.active > a:focus {
  background-color: #105E9E;
  font-weight: normal;
}

.breadcrumb li a {
/*font-weight:bold;*/
}

.nav-tabs {
/*
border-bottom: 1px solid #B5D1EA;*/
}

.nav-tabs>li {
margin-bottom: 0px;
}

/*.icon-home {
background-image: url('home.png');
background-repeat: no-repeat;
background-position: 85%;
}*/

/*Changed Dec11*/

/*
.icon-home {
background-image: url('home.png');
background-repeat: no-repeat;
background-position: 40%;
width: 25px;
height: 25px;
vertical-align: middle;
}
*/


.left-nav>ul>li.active>a:after {
content: none;

}

/**
* login page
*/


/*.login #wrap {
background-color: #ffffff;
}*/

.login #content-main {
width: 280px !important;
min-width: 180px;
height: 265px;
  -webkit-border-radius: 5;
  -moz-border-radius: 5;
  border-radius: 5px;
/*background: #EBF0F2;*/
background: rgba(255,255,255,0.85);
/*background: rgba(235,240,242,0.6);*/
overflow: visible !important;
}

.login #content-main h1 {
/*background: #EBF0F2;*/
/*background: url("open-cloud-login-themed-light.png") no-repeat scroll 40% center / 89% auto rgba(235, 240, 242, 0);*/
/*background: url("cord_logo_3.png") no-repeat scroll 40% center / 89% auto rgba(235, 240, 242, 0);*/
/*background-position: 40%;*/
height: 55px;
background-repeat: no-repeat;
font-size: 0px;
padding-top: 70px;
}
.login #content-main h1 i {
display:none;
}

.login #content-main h1 img{
padding-left: 8px;
}

.login #content-main .control-group .control-label{
display:none;
}

.login #content-main form input[type=text], .requestDialog.ui-widget input{
width: 94%;
padding:4px 6px;
border-radius: 0px;
height: 30px;
background-color: rgb(250, 255, 189);
/*background-image: url('name.png');*/
background-repeat: no-repeat;
background-position: 95%;
font-size: 12px;
}

.login #content-main form input[type=password] {
  width: 94%;
padding:4px 6px;
font-size: 12px;
border-radius: 0px;
height: 30px;
background-color: #E5E5E5;
background-image: url('password.png');
background-repeat: no-repeat;
background-position: 95%;
}

.login #content-main .submit-row{
background: #EBF0F215px;
background: rgba(235,240,242,0.0);
border-top:none;
padding-top:0px;
box-shadow: none;
}

.login #content-main .submit-row .btn-info {
background-color : #448CCA;
background-image: none;
height: 40px;
border-radius: 0px;
width: 100%;
margin-bottom: 4px;
}
#forgot_pwd{
font-size: 11px;
font-style: normal;
text-decoration: none;
}

#create_acct{
font-size: 11px;
font-style: normal;
text-decoration: none;
padding-left: 45px;
}

/*Dec 11 2013*/

.nav-tabs-suit li.active a{
letter-spacing: 1px;
text-shadow: rgb(46, 43, 43) 0.1em 0.1em 0.2em;
/*text-shadow: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
*/
}

/*.nav-tabs-suit li.active {*/
 /*background: transparent url('home.png') no-repeat scroll center bottom;*/
  /*border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid #2f2f2f;
font-size: 0;
line-height: 0;
width: 0;;
height: 0;
   margin: 0;
}*/

.login {
  background-image: url('bg.jpg');
  background-size: cover;
  background-position: center; 
  background-repeat: no-repeat;
}


.login #content-main {
	float: none;
    height: 330px;
    margin: 100px auto 0;
    width: 265px;
}

/** Leave room for scroll bar now that contents can be appropriately scrolled **/
.form-horizontal .inline-group .add-row {
    margin: -1px -1px 15px 0px;
}

/** Setting overflow and 1kpx to deal with inlines/forms overlapping on 
    browser resizes **/
#content-main {
    overflow-x:auto;
    /*min-width: 1000px;*/
}

.tab-content tab-content-main {
    overflow-x: auto !important;
}

#wrap{
background:none;
}

.noclearfix {
    display:block; clear:left; width:0px; height:0px;
}

body{
background-color:#ffffff;
}

.suit-column{
background-color:#ffffff;
}
/*Added on 13th*/

/*.input-icon {
margin-right: 30px;
}

.icon-search{

margin-left: -165px;
}*/

.login #content-main form {
margin: 5px 15px 0;
}

.login {
height: 84.5%;
}


.login #wrap {
    background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
    overflow: hidden;
    padding: 0f;
}
#wrap {
    background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
}
#wrap {
    padding-bottom: 60px;
}

.forgotLink {
	width: 45%;
	text-align: left;
	float: left;
}

#request-account-form{
	display:none;
}

#requestAccountLink {
	width: 55%;
	text-align: right;
	float: left;
	padding-left: 21%;
	cursor: pointer;
	color: #448CCA;
	text-decoration: underline;	
}

.login .btn-info {
	color: #FFF;
}

.nav-tabs > .active > a, .nav-tabs > .active > a:hover, .nav-tabs > .active > a:focus {
	/*background-color: #448CCA;*/
	background-color: #105E9E;
	color: #FFF;
	border: none;
}

/*Added by Beena for adding the three components in dashboard*/
.breadcrumb{
	display:inline-block;
	background-color: #fff;

}

.nodetextbox{
	/*background-color: #ededed;*/
	line-height: 25px;
	width: 150px; 
	text-align: center;
	font-weight: bold;
	margin-left:0px;
	display:inline-block;
	border:none;
	font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
	font-size: 8px;
}

.nodelabel{
width: 20px;
display: inline-block;
border-radius: 0px;
border:1px solid #000;
/*line-height: 23px;*/
text-align: center;
font-weight: normal;
}

#user-tools {
  font-weight: bold;
}
.header-content .header-column {
	display: none;
}
.header .input-icon {
    background-image: url("Search.png");
    background-repeat: no-repeat;
background-position:left center;
opacity:1;
    background-size: 100%;
    vertical-align:middle;
	margin-right: -30px;
    /*margin-top: 5px;*/
    position: relative;
    height: 22px;
    width: 22px;
}

.header .icon-search {
	/*background-image: url("search.png") !important;
    background-repeat: no-repeat !important;
    background-size: 120% auto !important;
    background-position: 0;*/
}

#dashboardHPC {
    padding-bottom: 10px;
}
.summary-attr {
    padding-right: 20px;
}
.summary-attr-util {
    padding-right: 20px;
    color: green;
}
.SiteDetail {
color: darkBlue;
    font-size: 1.5em;
}
#addInstances {
 color: green;
text-decoration: underline;
    padding-right: 20px;
}
#remInstances {
 color: red;
 text-decoration: underline;
}
#map-us {
    padding-top: 10px;
    width: 700px;
    height: 400px;
}

.minidashbutton {
	-moz-box-shadow:inset 0px 1px 0px 0px #ffffff;
	-webkit-box-shadow:inset 0px 1px 0px 0px #ffffff;
	box-shadow:inset 0px 1px 0px 0px #ffffff;
	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #ffffff), color-stop(1, #f6f6f6));
	background:-moz-linear-gradient(top, #ffffff 5%, #f6f6f6 100%);
	background:-webkit-linear-gradient(top, #ffffff 5%, #f6f6f6 100%);
	background:-o-linear-gradient(top, #ffffff 5%, #f6f6f6 100%);
	background:-ms-linear-gradient(top, #ffffff 5%, #f6f6f6 100%);
	background:linear-gradient(to bottom, #ffffff 5%, #f6f6f6 100%);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f6f6f6',GradientType=0);
	background-color:#ffffff;
	-moz-border-radius:6px;
	-webkit-border-radius:6px;
	border-radius:6px;
	border:1px solid #dcdcdc;
	display:inline-block;
	cursor:pointer;
	color:#666666;
	font-family:arial;
	font-size:15px;
	font-weight:bold;
	padding:6px 24px;
	text-decoration:none;
	text-shadow:0px 1px 0px #ffffff;
}
.minidashbutton:hover {
	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #f6f6f6), color-stop(1, #ffffff));
	background:-moz-linear-gradient(top, #f6f6f6 5%, #ffffff 100%);
	background:-webkit-linear-gradient(top, #f6f6f6 5%, #ffffff 100%);
	background:-o-linear-gradient(top, #f6f6f6 5%, #ffffff 100%);
	background:-ms-linear-gradient(top, #f6f6f6 5%, #ffffff 100%);
	background:linear-gradient(to bottom, #f6f6f6 5%, #ffffff 100%);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f6f6f6', endColorstr='#ffffff',GradientType=0);
	background-color:#f6f6f6;
}

.newMiniDashboard {
    border: 1px solid green;
    width: auto;
}

.endDashPair {
    clear: left;
}
.miniDashPair {
    float: left;
    width: auto;
    margin-left: 20px;
}

.miniDashPair label {
 text-align: center;
}
/* Charts CSS */
p.numeral
{
	font-size:32pt;
	color:#ffffff;
	opacity: 0.7;
	font-family:Helvetica Neue;
	font-weight:100;
	text-align:center;
	line-height:75%;
}

.helper-text
{
	border: 1px solid #fff;
	padding: 7px;
	border-radius: 18px;
	font-size:13pt;
	color:#ffffff;
	opacity: 0.7;
	font-family:Helvetica Neue;
	font-weight:200;
	text-align:center;
	line-height:100%;
}
p.osobject
{
	font-size:12pt;
	color:#ffffff;
	opacity: 0.7;
	font-family:Helvetica Neue;
	font-weight:200;
	text-align:center;
	line-height:100%;
}

p.heading
{
	font-size:20px;
        letter-spacing: 1px;
	color: black;
	font-family:Arial;
	font-weight:bold;
	text-align:center;
}

/*p.heading
{
	font-size:32pt;
	color:#ffffff;
	opacity: 0.7;
	font-family:Helvetica Neue;
	font-weight:200;
	text-align:center;
}*/

div.graph 
{
	height:340px;
}

div.numeral 
{
	height:120px;
}

div.heading 
{
	height:10px;
}

div.padding 
{
	height:20px;
}

div.chartContainer
{
	/*background-image:url('chartsBg.jpg');*/
	width:527px;
	height:400px;
	border:1px;
}

/* D3 */

.axis path,
.axis line {
  fill: none;
  stroke: #ffffff;
  opacity: 0.7;
  shape-rendering: crispEdges;
}


.x.axis path {
  display: none;
}

.x.axis text {
  fill: white;
  opacity: 0.5;
}

.y.axis text {
  opacity: 0.5;
  fill: white;
}

.y.axis text.legend {
  opacity: 1.0;
  fill: white;
  font-size:8pt;
}

.line {
  fill: none;
  stroke: white;
  stroke-width: 3px;
  opacity: 0.6;
}


/******  Added in so that we can have a loader show as charts get ready to render ***/
.loading {
    //background-color: orange;
    background-image: url(spinner.gif) no-repeat center middle;
    text-align: center;
    font-size: 20px;
    height: 100%;
/*    width: auto;*/
    float: left;
    padding: 10px;
}
/* Charts CSS */

#tabs-4 {
    margin: 40px;
    font-size: 24px;
    font-weight: bold;
}

.tenant-row{
   padding-bottom: 0.7%;
}

/***********TENANT VIEW*************/

#image-dropdown,#slice-image-value,#adv-slice-image-value{
 margin-left: 5%;
}


#adv-slice-image-value{
margin-right: 0.5%;
}

#adv-network-value {
margin-right: 0.3%;
}

#network-dropdown,#adv-network-dropdown,#adv-network-value{
 margin-left: 3.7%;
}

#service-level-dropdown,#service-level-value,#adv-service-level-dropdown,#adv-service-level-value{
 margin-left: 0.2% !important;
}

#slice-name-value,#adv-slice-name-value{
   margin-left: 2%;
}
#adv-dataset-dropdown{
margin-left: 3.7%;
}
#advanced-tenant,#basic-tenant,#instance-btn,#save-btn{
  float:right;
}
 #delete-slice-btn,#download-details,#add-user-btn{
	margin-left:1%;
}

#instance-btn,#save-btn,#create-slice-btn,#delete-slice-btn,#add-user-btn,#download-details{
  margin-top:1%;
}

.tenantDialog.ui-widget input{
        border-radius: 0px !important;
	height: 12px !important;
	width: 180px !important;
	margin-right: 10% !important;
	float: right;
}

.tenantDialog .ui-dialog-buttonset .ui-button{
border-radius: 0 !important;
background-color: grey !important;
font-weight: bold !important;
font-size: 0.9em !important;
}

.tenantDialog .ui-dialog-titlebar{
border-radius: 0 !important;
background-color: grey !important;
}

.create-slice-row{
	margin-bottom: 4%;
	clear: both;
	height: 25px;
}

.create-slice-row label, .tenantDialog label{
   margin-right:1%;
   float:left;
}

.create-slice-row select{
   height:24px;
   width: 196px;
   font-size: 0.9em !important;
}

.tenant-create-slice{
	float:right;
	margin-right: 10% !important;
}

#delete-slice{
float: right;
}

#tooltip,#adv-tooltip,#basic-tooltip{
font-size:0.7em;
color:red;
display:none;
}

#tenantSliceDataWrapper {
	padding: 1% 0;
}

#advancedTenantSliceDataWrapper .help-inline{
	font-size: 11px;
	color: #999;
	padding-bottom: 1%;
}

.create-slice-row label{
	clear:both;
	margin-right: 1%;
}

#advNumOfInstances{
        margin-right: 1% !important;
}

#private-vol-checkbox{
margin: 0 0 1% 1%;
}

.public-key-warning{
text-align: center;
display:none;
}

#private-vol{
margin-right: 15% !important;
}
.customize_row {
  display: table;
}
.customize_column {
  display: table-cell;
  padding: 10px;
}

.request-form-row{
padding:1% 8%;
}

.requestDialog{
background-color: white;
border-radius: 8px;
width: 30% !important;
height: 40% !important;
margin-top: -16%;
top: -103.703125px !important;
}

.request-form-row label{
	float: left;
}


.requestDialog .ui-dialog-buttonset .ui-button{
border-radius: 0 !important;
background-color: grey !important;
font-weight: bold !important;
font-size: 0.9em !important;
}

.requestDialog .ui-dialog-titlebar-close{
float:right;
}

#request-signup{
height: 40px !important;
margin: 0 14%;
float: left;
background-color: #448CCA;
background-image: none;
width: 70% !important;
}

.requestDialog .ui-dialog-titlebar{
border-radius: 0 !important;
height: 25px;
padding-top: 2%;
}

.requestDialog #ui-id-1{
padding-left: 28%;
font-size: medium;
}

#request-site-name{
	width: 98%;
}

/* SUIT CHANGES */

.form-buttons {
    margin-top: 20px;
    padding: 10px;
    border-top: 1px solid #cccccc;
}

.form-buttons a.deletelink {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;

  display: inline-block;
  margin-bottom: 0;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 5px 12px;
  font-size: 12px;
  line-height: 1.42857143;
  border-radius: 4px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* MODAL */
.ui-dialog{
  z-index: 4000 !important;
}

button.ui-dialog-titlebar-close{
  font-family: 'Glyphicons Halflings' !important;
  display: inline-block;
}

button.ui-dialog-titlebar-close:after {
    content: "\e014";
}
/* VCPe ADMIN FIX
form#vcpeservice_form ul li {
    display: inline-block;
    background: red;
    margin-top: 10px;
    width: auto;
    padding: 10px;
    border-radius: 5px;
}
*/