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

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

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

.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-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;
}
/*************************/
/*  Header elements      */

.logo {
}
.header{
    background-color: #ffffff !important;
    /*background-image: url('bg2.jpg');*/
    background-size: 100% auto;
    background-image: none !important;
    text-shadow: none;
    border-bottom: 3px solid #C5CCD4;
    margin-bottom: 14px;
    margin-top: -120px;
    height: 85px;
    /*min-width: 1321px;*/
}

.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;
}

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

.header #branding {
border-right:none;
}

#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;
}

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

.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-sliver .ui-widget-header, .dashboard-hpc-sliver .ui-dialog-title, .dashboard-hpc-sliver .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, .ui-widget-content .ui-state-default, .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 the background color of the left side navigation list items*/
/*For changing the color of the left side navigation list items*/
/*For changing the font of the left side navigation list items*/
.left-nav>ul>li>a {
/*background-color: #CDE7FF;*/
/* Light color nav choices */
/*background-color: #DFECF8;*/
/*background-color: #91BFE4;*/
/*background-color: #DAECFC;*/
background-color: #448CCA;
/*ONlab.us reg color blue*/
/*background-color: #ccffff;*/
font-weight: normal;
/*color: #105E9E;*/
color: #ffffff;
text-shadow: rgb(46, 43, 43) 0.1em 0.1em 0.2em;
letter-spacing: 1px;
font-size: 12px;
border-bottom: none;
}

/*For giving the padding for the left side navigation*/
.left-nav>ul {
padding-left: 5px;
}

/*For increasing the height of left side navigation list items*/
.left-nav>ul>li {
padding-top:4px;
line-height: 35px;
width: 200px;
}

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

.left-nav>ul>li.active>a {
/*background-color: #448CCA;*/
/* Last Active
background-color: #0061B7; */
background-color: #515151;
/*background-color: #448CCA;*/
font-weight:normal;
color:#ffffff;
text-shadow: rgb(46, 43, 43) 0.1em 0.1em 0.2em;
letter-spacing: 1px;

left: 10px;
background-image: url("right_arrow.png");
    background-position: 97% center;
}


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


/* create an arrow that points down */


.left-nav>ul>li.active>a:hover{
/*background-color: #448CCA;*/
/*background-color: #91BFE4;*/
/*background-color: #D6E7F8;*/
font-weight:normal;
font-size: 1.2em;
font-weight: bold;
color:#ffffff;
padding-top:10px;
text-decoration:none;
}

/* Adjust font weight to normal on hover, else white blurs */
.left-nav>ul>li>a:hover{
/*background-color: #448CCA;*/
/*background-color: #004775;*/
background-color: #515151;
color:#ffffff;
font-weight:normal;
font-size: 1.2em;
/*padding-top:10px;*/
text-decoration:none;
/*border-left: 15px solid #105E9E ;*/
border-left: 10px solid #ffffff;
text-shadow: rgb(46, 43, 43) 0.1em 0.1em 0.2em;
letter-spacing: 1px;
}
.nav-tabs-suit li.active a:hover,.nav-tabs-suit li a:hover{
/*background-color: #448CCA;*/
background-color: #515151;
font-weight:normal;
font-size: 1.2em;
/*color:#ffffff;*/
padding-top:10px;
text-decoration:none;
}

.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-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]{
width: 94%;
padding:4px 6px;
border-radius: 0px;
height: 30px;
background-color: #E5E5E5;
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>.active>a{
border: none;
}

.nav-tabs-suit li a:hover{
border: none;
color: #ffffff;
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 {*/
 /*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: 100%;
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);
}
#wrap {
    background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
}
#wrap {
    background: url("../img/bg_left_white.gif") repeat-y scroll left top rgba(0, 0, 0, 0);
}
#wrap {
    height: auto !important;
    margin: 0 auto -60px;
    min-height: 100%;
}

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

.createAccountLink {
	width: 55%;
	text-align: right;
	float: left;
	
}

.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{
		width: 37%;
	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;*/
}

.icon-home ,.icon-deployment ,.icon-site ,.icon-slice ,.icon-user, .icon-reservation, .icon-app{
background-position: left center;
width:22px;
height:22px;	
}

.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_over.png");
}
.icon-deployment{
background-image: url("Deployments_over.png");
}
.icon-site{
background-image: url("Sites_over.png");
}
.icon-slice{
background-image: url("Slices_over.png");
}
.icon-user{
background-image: url("Users_over.png");
}
.icon-reservation{
background-image: url("Reservations_over.png");
}

.left-nav>ul>li.active>a>.icon-home , .left-nav>ul>li:hover>a>.icon-home , .left-nav>ul>li.focus>a>.icon-home{
background-image: url("Home_over.png");
}

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

#dashboardHPC {
    padding-bottom: 10px;
}
.summary-attr {
    padding-right: 20px;
}
.summary-attr-util {
    padding-right: 20px;
    color: green;
}
.SiteDetail {
color: darkBlue;
    font-size: 1.5em;
}
#addSlivers {
 color: green;
text-decoration: underline;
    padding-right: 20px;
}
#remSlivers {
 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%;
}

#network-dropdown,#adv-network-dropdown{
 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%;
}
#advanced-tenant,#basic-tenant,#sliver-btn,#save-btn{
  float:right;
}
 #delete-slice-btn,#download-details{
	margin-left:1%;
}

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

.tenantDialog.ui-widget input{
        border-radius: 0px !important;
margin: 0 0 0 5% !important;
height: 15px !important;
width: 164px !important;
}

.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:3%;
}

.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%;
}
