
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

body {
  background:#eee;
  padding: 43px 0 0 30px;
  font-family:'Roboto', 'Helvetica Neue', 'Helvetica', 'Arial', 'sans-serif';
  font-size: 13px;
}

.fluid-layout .container,
.fluid-layout #top-navbar .container {
  padding-right: 30px;
  width: inherit;
}
.nav-button {
  display: none;
  float: right;
  font-size: 17px;
  margin-right: 12px;
}
#top-navbar .navbar-inner {
  background-color: none;
  background-image:linear-gradient(167deg, #333e47, #023259);
  box-shadow: none;
  -webkit-box-shadow:none;
  -moz-box-shadow:none;
  width: 100%;
}

#top-navbar .nav .dropdown-toggle .icon-caret-down {
  margin-right: -6px;
}

#top-navbar .logo:hover {
  opacity: 0.7;
}

#top-navbar .logo img{
  width: 120px;
}

#top-navbar .nav > li > a.usermenu > img {
  display: inline-block;
  height: 23px;
  vertical-align: top;
  width: 23px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}
#top-navbar .nav > li > a {
  color: #fff;
  display: block;
  line-height: 22px;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  text-shadow: rgba(0, 0, 0, 0.2) 0px -1px 0;
  height: auto;
  padding: 9px 15px;
}
#top-navbar .nav > li > a:hover {
  opacity: 0.7;
}
#top-navbar .nav > li.active > a,
#top-navbar .nav > li.open > a,
#top-navbar .nav > li.open > a:hover {
  background: rgba(0, 0, 0, 0.15);
  -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 5px inset;
  -moz-box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 5px inset;
  box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 5px inset;
  opacity: 1;
}
#top-navbar .dropdown-menu li a, #main-navbar .dropdown-menu a{
  font-size: 13px;
  padding: 4px 20px;
}

#top-navbar .dropdown-menu li a:hover, #main-navbar .dropdown-menu a:hover{
  color: #ffffff !important;
  background-color: #0B7FAD;
}

#main-footer {
  margin-top: 20px;
  padding: 20px 0;
  border-top: 1px solid #e3e3e3;
  color: #999;
  font-size: 13px;
  text-align: center;
}
#main-footer a {
  color: #999;
  text-decoration: underline;
}
#main-footer a:hover {
  color: #444;
}
#main-footer a.pull-right {
  text-decoration: none;
  line-height: 20px;
}
#main-footer a.pull-right i {
  font-size: 8px;
  position: relative;
  top: -1px;
}
.nav-tabs {
  border-bottom: 2px solid #e1e1e1;
  margin-bottom: 5px;
  padding: 0;
  /*margin-left: 20px;*/
  /*-webkit-box-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
  -moz-box-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
  box-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;*/
}
.nav-tabs > li > a,
.nav-tabs > li > a:focus,
.nav-tabs > li > a:active {
  background: none;
  border: 1px solid transparent;
  color: #999999;
  font-size: 14px;
  margin-bottom: -1px;
}
.nav-tabs > li > a:hover {
  background: #ffffff;
  color: #444;
}
.nav-tabs > .active > a,
.nav-tabs > .active > a:focus,
.nav-tabs > .active > a:active,
.nav-tabs > .active > a:hover {
  background: none;
  /*border: none;*/
  border-bottom: 2px solid #3ea211;
  color: #444;
}

.wrap {
  display: block;
  background-color: #fff;
  border: 1px solid #d6d6d6;
  margin: 0 0 20px 0;
  padding: 20px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  *zoom: 1;
}
.wrap:before,
.wrap:after {
  display: table;
  content: "";
  line-height: 0;
}
.wrap:after {
  clear: both;
}

.wrap-header {
  color: #222222;
  font-size: 16px;
  font-weight: 300;
  line-height: 20px;
  margin: 3px 0 0 0px;
  padding-bottom: 10px;
  text-transform: none;
}
.wrap-header > i {
  display: inline-block;
  font-size: 17px;
  width: 20px;
}

.wrap-header:hover .wrap-collapse {
  opacity: 1;
}
.wrap-collapse,
.wrap-expand {
  color: #888;
  font-size: 11px;
  font-weight: 600;
  margin: 2px 10px 0 0;
  position: relative;
  text-transform: none;
}
.wrap-collapse:hover,
.wrap-expand:hover {
  color: #444;
  text-decoration: none;
}
.wrap-collapse {
  opacity: 0.3;
}
.wrap-collapse i {
  position: relative;
  top: -1px;
}

.pagination ul {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
.pagination ul > li > a,
.pagination ul > li > span {
  border: 1px solid #ddd;
  color: #777777;
  margin-right: 5px;
  -webkit-border-radius: 3px !important;
  -moz-border-radius: 3px !important;
  border-radius: 3px !important;
}
.pagination ul > li > span {
  border: none;
}
.pagination ul > li > a:focus {
  background: none;
}
.pagination ul > li > a:hover {
  background: none;
  border-color: #3ea211;
  color: #444;
}
.pagination ul > li.active > a,
.pagination ul > li.active > a:hover,
.pagination ul > li.active > a:focus,
.pagination ul > li.active > span {
  background: #3ea211;
  border-color: #3ea211;
  color: #fff;
  font-weight: 700;
}
.pagination ul > li.disabled > a:hover {
  border-color: #ddd;
}

.toggle {
  height: 28px;
  width: 80px;
}
.toggle-slide {
  overflow: hidden;
  cursor: pointer;
  direction: ltr;
}
.toggle-slide .toggle-on,
.toggle-slide .toggle-off,
.toggle-slide .toggle-blob {
  float: left;
}
.toggle-slide .toggle-blob {
  position: relative;
  z-index: 3;
  cursor: hand;
  cursor: grab;
  cursor: -moz-grab;
  cursor: -webkit-grab;
}
.toggle-xa .toggle-slide {
  -webkit-box-shadow: #ffffff 0 1px 0;
  -moz-box-shadow: #ffffff 0 1px 0;
  box-shadow: #ffffff 0 1px 0;
  -webkit-border-radius: 9999px;
  -moz-border-radius: 9999px;
  border-radius: 9999px;
  overflow: hidden !important;
}
.toggle-xa .toggle-slide .toggle-on,
.toggle-xa .toggle-slide .toggle-off,
.toggle-xa .toggle-slide .toggle-blob {
  color: rgba(0, 0, 0, 0.7);
  font-size: 13px;
  font-weight: 600;
}
.toggle-xa .toggle-slide .toggle-on {
  background: #3ea211;
  color: #fff;
  -webkit-border-top-left-radius: 999px;
  -moz-border-radius-topleft: 999px;
  border-top-left-radius: 999px;
  -webkit-border-bottom-left-radius: 999px;
  -moz-border-radius-bottomleft: 999px;
  border-bottom-left-radius: 999px;
  background-color: #296b0b;
  background-image: -moz-linear-gradient(top, #1b4607, #3ea211);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#1b4607), to(#3ea211));
  background-image: -webkit-linear-gradient(top, #1b4607, #3ea211);
  background-image: -o-linear-gradient(top, #1b4607, #3ea211);
  background-image: linear-gradient(to bottom, #1b4607, #3ea211);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1b4607', endColorstr='#ff3ea211', GradientType=0);
  *background-color: #358b0f;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.toggle-xa .toggle-slide .toggle-off {
  background: #cccccc;
  -webkit-border-top-right-radius: 999px;
  -moz-border-radius-topright: 999px;
  border-top-right-radius: 999px;
  -webkit-border-bottom-right-radius: 999px;
  -moz-border-radius-bottomright: 999px;
  border-bottom-right-radius: 999px;
  background-color: #c7c7c7;
  background-image: -moz-linear-gradient(top, #b3b3b3, #e6e6e6);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#e6e6e6));
  background-image: -webkit-linear-gradient(top, #b3b3b3, #e6e6e6);
  background-image: -o-linear-gradient(top, #b3b3b3, #e6e6e6);
  background-image: linear-gradient(to bottom, #b3b3b3, #e6e6e6);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb3b3b3', endColorstr='#ffe6e6e6', GradientType=0);
  *background-color: #a6a6a6;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.toggle-xa .toggle-slide .toggle-blob {
  background: #fff;
  -webkit-border-radius: 9999px;
  -moz-border-radius: 9999px;
  border-radius: 9999px;
  background-color: #ebebeb;
  background-image: -moz-linear-gradient(top, #ffffff, #cccccc);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#cccccc));
  background-image: -webkit-linear-gradient(top, #ffffff, #cccccc);
  background-image: -o-linear-gradient(top, #ffffff, #cccccc);
  background-image: linear-gradient(to bottom, #ffffff, #cccccc);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffcccccc', GradientType=0);
  *background-color: #cccccc;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}

/* body css */
@media (min-width: 768px) and (max-width: 979px) {
  body, .fluid-layout, .centered-layout {
    padding: 52px 15px 0 15px;
  }

  #top-navbar .nav > li > a {
    font-size: 12px !important;
  }

  #top-navbar .nav > li > a {
    padding: 9px 10px 0 10px !important;
  }
}

@media (max-width: 767px) {
  body, .centered-layout {
    padding: 52px 15px 0 15px;
  }

  #top-navbar .nav-collapse .page-nav {
    margin: 30px 0 6px !important;
  }

  /* button stacks below form elements without space */
  .controls .btn {
    margin-top: 5px;
  }

  table.table-permission tr th:last-child, table.table-permission tr td:last-child {
    padding-left: 6% !important;
  }
}

@media (max-width: 480px) {
  body, .centered-layout {
    padding: 62px 0 0 0;
  }
}
/*  Seach Info btn*/
.searchInfo{
        color:#4c504b;
        font-size:larger;
}
.searchInfoUserAccess{
        margin-left:12px;
        color:#4c504b;
        font-size:large;
        margin-top:10px
}
/* Report search right side columns */
.report-col-right-side{
  position:absolute;
  left:440px;
}

/* overriding backgrid height property */
.backgrid td {
  height: auto;
}

/* page logo */
#top-navbar .page-logo {
  float: none;
  position: absolute;
  left: 0;
  top: 0;
  width: 102px
}

/*#top-navbar .page-logo img {
  max-height: 33px;
}*/

.navbar .page-nav {
  margin: 0;
}

/* Added class hr */
.hr {
  display: block;
  height: 0;
  overflow: hidden;
  font-size: 0;
  border-top: 1px solid #e3e3e3;
  margin: 12px 0;
}

/* Added space class, where spans are stacked on top of each other  */
.space-6 {
  max-height: 1px;
  min-height: 1px;
  overflow: hidden;
  margin: 12px 0;
  margin: 6px 0 5px;
}

.vspace-6 {
  max-height: 1px;
  min-height: 1px;
  overflow: hidden;
  margin: 12px 0;
  margin: 6px 0 5px 0;
  display: none;
}

.help-inline {
  padding-right: 5px;
}

.dropdown-menu > li > a > [class*="icon-"] {
  margin-right: 6px;
  font-size: 120%;
  display: inline-block;
  width: 1.25em;
  text-align: center;
}

/* over-ride top menu styles */
#top-navbar .nav .dropdown-toggle .icon-caret-down {
  margin-right: 0;
}

.navbar .page-nav > li > a > [class*="icon-"] {
  margin-right: 3px;
}

/* footer */
.nav-footer li {
  float: left;
}

.nav-footer li a {
  background: 0;
  border: 0;
  color: #999;
  font-size: 12px;
  padding: 0 10px;
  text-decoration: none !important;
}

.copy-right-text p {
  margin: 0 0 5px;
  line-height: 15px;
}

.js-formInput .select2-container {
  width: 100%;
}

.datagrid-stretch-wrapper {
  border: 0;
}

/*.table-permission td {
  vertical-align: top !important;
  text-align: center;
}*/

.table-permission td input[type="checkbox"] {
  margin: 0;
}

.table-permission {
  /*float: left;*/
  width: 100%
}

/* toggle */
.toggle-xa .toggle-slide {
  box-shadow: 0 0 0 1px #999;
}

.toggle {
  height: 20px;
  width: 80px;
  margin-top: 5px;
}

table.backgrid tr.tr-active {
  background-color: #D7EFF1;
}

table.backgrid tr.tr-active td, table.backgrid tr.tr-active td a {
  /* Developer: Commenting out for time being
   * font-weight: bold;
   * color: #444444;
   */
}

table.backgrid tr:hover {
  background-color: #E8F1FB;
}

.ui-pnotify-history-container {
  display: none;
}

.img-db-tb {
  margin-right: 5px;
  max-width: 24px !important;
}

.backgrid tr.empty td, .backgrid td {
  display: table-cell;
}

.loading {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  /* background-color: rgba(0,0,0,0.3); */
  text-align: center;
  /* z-index: 999; */
  background: url('../images/loading.gif') no-repeat center center rgba(0,0,0,0.3);
}
.white {
  color: #fff !important;
}

.position-relative {
  position: relative;
}

.spin-position {
  top: 40%;
  position: absolute;
}

.bold {
  font-weight: bold;
}

.box-filter {
  margin-left: 1%;
}

/* backgrid table css */
/* Commenting backgrid filter css
table td.backgrid-filter input[type="search"] {
  width: 70%;
  padding-left: 1px;
  height: 85%;
  font-size: 11px;
  padding-right: 0px;
}

table td.backgrid-filter .select2-container .select2-choice {
  height: 21px;
  line-height: 21px;
}

table td.backgrid-filter .select2-container .select2-choice .select2-arrow b {
  background-position: 0 -2px;
}

table td.backgrid-filter .clear {
  margin-left: -21px;
  font-size: 19px;
} */

.table-permission th, .table-permission td {
  border: 1px solid #dddddd;
  padding: 7px 5px;
  text-align: center;
}

.table-permission thead {
  background-color: #eeeeee;
}

/*table.table-permission tr th:last-child, table.table-permission tr td:last-child {
  border: 0;
  padding-left: 6%;
  color: transparent;
  background-color: #fff;
}*/

.table-permission thead tr {
  color: #4F4F4F;
  font-weight: bold;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
}

/* backgrid table header css*/

table.backgrid thead th, table.backgrid thead td {
  text-align: center;
}

table.backgrid thead th, table.backgrid thead td {
  border-bottom: 0;
  border-top: 0;
}

table.backgrid thead th {
  background: transparent;
}

table.backgrid thead {
  background: #eeeeee;
}

table.backgrid thead tr a {
  color: #4F4F4F;
  font-weight: bold;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
}

table.backgrid thead tr:hover {
  background: transparent;
}

.table-read-only tr th:last-child, table.table-read-only tr td:last-child {
  border: 1px solid #dddddd !important;
  color: #4F4F4F !important;
  background-color: inherit !important;
}
.serviceInfo{
  margin-top: -5px;
}
.updateInfo{
  margin-top: 10px;
  border-top: 1px solid #ccc;
}
.updateInfo p {
  margin-bottom: 0px;
  margin-top: 0px;
  font-size: 11px;
}
.policyVer{
  font-size: 23px;
  padding: 5px 0 0 3px;
}
.policyVer i{
  color : #0B7FAD !important;
  opacity: 0.4;
  -webkit-user-select: none;
}
.policyVer i.active{
  color : #0B7FAD !important;
  cursor : pointer;
  opacity: 1;
}
.policyVer text{
  padding : 0 10px;
  color : black;
  font-size: 14px;
  position: relative;
  top: -3px;
}

.r-path {
  word-break: break-all;
  font-weight: normal;
  color: #444;
  font-size: 13px;
}

.ul-db .dropdown-menu > li > a {
  white-space: normal;
  word-break: break-word;
}

.hdfs-table table.backgrid thead th:nth-child(2) {
  width: 35%;
}

.m-height {
  min-height: 500px;
}

.btn-right {
  margin-bottom: 1%;
  float: right;
  margin-left: 1%;
}

.hide-tooltip .tooltip.in {
  display: none !important;
}

/* loader */

.loading-img {
  position: relative;
  text-align: center;
}

.loading-img img {
  animation: rotateThis 2s infinite linear;
  -webkit-animation: rotateThis 2s infinite linear;
  max-width: 50px;
}

@keyframes rotateThis {
0% {transform:rotateY(0deg);}
10% {transform:rotateY(0deg);}
100% {transform:rotateY(360deg);}
}

@-webkit-keyframes rotateThis {
0% {-webkit-transform:rotateY(0deg);transform:rotateY(0deg);}
10% {-webkit-transform:rotateY(0deg);transform:rotateY(0deg);}
100% {-webkit-transform:rotateY(360deg);transform:rotateY(360deg);}
}

div#center {
  margin-top: 1%;
}

div#center span {
  position: relative;
  font-family: Helvetica;
  font-size: 20px;
  font-weight: bolder;
  color: #0B7FAD;
  /* color: #7c9710; */
  
}

@keyframes janimation {
0% {transform: rotate(0deg) scale(1.5);color: #aaa;}
10% {transform: rotate(0deg) scale(1.7);color: #ccc;}
100% {transform: rotate(0deg) scale(1.2);color: #333;text-shadow: #666 0 0 10px;}
}

@-webkit-keyframes janimation {
0% {-webkit-transform: rotate(0deg) scale(1.5);color: #aaa;}
10% {-webkit-transform: rotate(0deg) scale(1.7);color: #ccc;}
100% {-webkit-transform: rotate(0deg) scale(1.2);color: #333;text-shadow: #666 0 0 10px;}
}

div#center div {
  position: relative;
  display: inline-block;
  animation: janimation 2.2s infinite;
  -webkit-animation: janimation 2.2s infinite;
}

div#center div.letter_container_1 {
  animation-delay: 0s;
  -webkit-animation-delay: 0s;
}

div#center div.letter_container_2 {
  animation-delay: .2s;
  -webkit-animation-delay: .2s;
}

div#center div.letter_container_3 {
  animation-delay: .4s;
  -webkit-animation-delay: .4s;
}

div#center div.letter_container_4 {
  animation-delay: .6s;
  -webkit-animation-delay: .6s;
}

div#center div.letter_container_5 {
  animation-delay: .8s;
  -webkit-animation-delay: .8s;
}

div#center div.letter_container_6 {
  animation-delay: 1s;
  -webkit-animation-delay: 1s;
}
div#center div.letter_container_7 {
  animation-delay: 1.2s;
  -webkit-animation-delay: 1.2s;
}

/* policy manager table */
table.table-policy tbody > tr:hover {
  cursor: pointer;
}

table.table-policy thead {
  background: #eeeeee;
}

table.table-policy thead tr > th {
  vertical-align: middle;
  font-size: 16px;
}

table.table-policy thead tr > th a {
  color: #444 !important;
}

table.table-policy thead tr > th img {
  margin-right: 5px;
  max-width: 20px;
}

.nav.nav-option {
  margin: 0;
}

.nav.nav-option > li > a:hover, .nav-option > li > a:focus {
  text-decoration: none;
  background-color: transparent;
}

.nav-option .open .dropdown-toggle {
  background-color: transparent;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  box-shadow: none !important;
}

.nav.nav-option .dropdown-menu {
  min-width: 80px;
  right: 0;
  left: auto;
}

.nav-option .icon-caret-down {
  font-size: 18px;
}

.display-none {
  display: none;
}

table.table-policy tbody tr:hover .nav.nav-option {
  display: block;
}

.select2-container-multi .select2-choices li > div {
  word-break: break-all;
}

.select2-container-multi .select2-choices .select2-search-choice {
  margin: 3px 3px 3px 5px;
}

.controls ul {
  list-style: none;
  margin: 0;
}

.controls ul li input[type="radio"] {
  margin: 0;
}

.controls ul li {
  float: left;
  margin-right: 10px;
  margin-top: 4px;
}

.controls ul li label {
  display: inline-block;
  margin-left: 5px;
}

.backgrid th, .backgrid td {
  display: table-cell;
}

/* form controls css for hdfs */
.form-horizontal .configProp .control-label {
  width: 335px;
}

.form-horizontal .configProp .controls {
  margin-left: 360px;
}
/* backgrid style over-ride*/
.backgrid th, .backgrid td {
  max-width: 184px;
}

.working.ui-autocomplete-loading {
  background: url('../images/loading.gif') no-repeat right center !important;
}

.form-actions.form-asset {
  padding-left: 360px;
}

.form-actions.form-policy {
  padding-left: 180px;
}
/* jquery tagit css over-ride */
ul.tagit li.tagit-choice-editable {
  padding: 3px 5px 3px 18px;
}

ul.tagit li.tagit-choice {
  line-height: 13px;
  font-size: 13px;
  color: #333;
  word-break: break-all;
}

ul.tagit li.tagit-choice .tagit-close {
  left: 0;
  display: block;
  width: 12px;
  height: 13px;
}
.ui-state-default, .ui-widget-content .ui-state-default {
  border: 1px solid #aaa !important;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);
  background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee)) !important;
  background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%) !important;
  background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%) !important;
  background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%) !important;
}

.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus {
  border: 0 !important;
  color: #fff !important;
  background: #0B7FAD !important;
}

.ui-state-active {
  border: 0 !important;
  color: #fff !important;
  background: #0B7FAD !important;
  margin: 0 !important;
}

.ui-menu .ui-menu-item a {
  border-radius: 0 !important;
}

.ui-menu.ui-widget.ui-widget-content.ui-autocomplete.ui-front.tagit-autocomplete {
  width: 21% !important;
}

table.backgrid tr > td > .label {
  float: left;
  margin: 0 3px 2px 0;
}

.control-group.search-by .dropdown-menu {
  min-width: 75px;
}

.control-group.search-by .dropdown-menu li {
  margin-right: 0px;
}
.control-group.search-by .dropdown-menu > li > a { 
  min-width: 75px;
}

ul.tagit {
  width: 300px;
  border: 1px solid #c4c4c4;
  border-top-color: #aaa;
}

ul.tagit input[type="text"] {
  width: 249px;
  padding-right: 25px;
}

.ui-widget-content {
  background: #fff;
  overflow: auto;
  max-height: 200px;
}

.link-tag {
  display: inline-block;
  background-color: #F7FDFF;
  text-decoration: none;
  padding: 0.1em 0.8em;
  border: 1px solid #C0D4DB;
  border-radius: 15px;
  margin-top: 4px;
}

.btn-top {
  position: fixed;
  bottom: 3px;
  right: 5px;
  -webkit-transition: 1s;
  -moz-transition: 1s;
  transition: 1s;
  display: none;
  color: #fff;
  background-color: rgba(0,0,0,0.3);
  padding: 5px 10px;
  border-radius: 3px;
}

.btn-top:hover {
  text-decoration: none;
}

.m-top-10 {
  margin-top: 10px;
}

.m-top-5 {
  margin-top: 5px;
}

.m-right-15 {
  margin-right: 15px;
}

.tab-content.user-profile-tab-content {
  border: 1px solid #ddd;
  padding: 8px 32px 32px;
  -webkit-box-shadow: 1px 1px 0 0 rgba(0,0,0,0.2);
  -moz-box-shadow: 1px 1px 0 0 rgba(0,0,0,0.2);
  box-shadow: 1px 1px 0 0 rgba(0,0,0,0.2);
  background-color: #FFF;
}

.select2-results {
  overflow-x: auto;
}
/* Tab */
ul.tabs {
  list-style-type: none;
  overflow: hidden;
  display: inline-block;
  margin: 0;
}

ul.tabs > li.active {
  z-index: 2;
  background: #fff;
}

ul.tabs > li:hover {
  background: #fff;
}

ul.tabs > li {
  float: right;
  margin: 5px 5px;
  border-top-right-radius: 6px;
  border-top-left-radius: 6px;
  padding: 5px 15px;
  /* height: 170px; */
  background: #ddd;
  position: relative;
  -webkit-box-shadow: 0 0 3px rgba(0,0,0,.5);
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
  max-width: 200px;
}

ul.tabs > li > a {
  display: inline-block;
  max-width: 100%;
  /*overflow: hidden;*/
  text-overflow: ellipsis;
  text-decoration: none;
  color: #222;
}
.controls-row .tags {
  width: 225px;
  max-height: 180px;
  overflow-y: auto;
}

.controls-row .link-tag {
  vertical-align: top;
}

/* controlling table width */
.table-responsive {
  width: 100%;
  margin-bottom: 15px;
  overflow-y: hidden;
  overflow-x: auto;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  border: 1px solid #dddddd;
  -webkit-overflow-scrolling: touch;
}
.table-responsive > .table {
  margin-bottom: 0;
}
.table-responsive > .table > thead > tr > th, .table-responsive > .table > tbody > tr > th, .table-responsive > .table > tfoot > tr > th, .table-responsive > .table > thead > tr > td, .table-responsive > .table > tbody > tr > td, .table-responsive > .table > tfoot > tr > td {
  white-space: nowrap;
}
.table-responsive > .table-bordered {
  border: 0;
}
.table-responsive > .table-bordered > thead > tr > th:first-child, .table-responsive > .table-bordered > tbody > tr > th:first-child, .table-responsive > .table-bordered > tfoot > tr > th:first-child, .table-responsive > .table-bordered > thead > tr > td:first-child, .table-responsive > .table-bordered > tbody > tr > td:first-child, .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  border-left: 0;
}
.table-responsive > .table-bordered > thead > tr > th:last-child, .table-responsive > .table-bordered > tbody > tr > th:last-child, .table-responsive > .table-bordered > tfoot > tr > th:last-child, .table-responsive > .table-bordered > thead > tr > td:last-child, .table-responsive > .table-bordered > tbody > tr > td:last-child, .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  border-right: 0;
}
.table-responsive > .table-bordered > tbody > tr:last-child > th, .table-responsive > .table-bordered > tfoot > tr:last-child > th, .table-responsive > .table-bordered > tbody > tr:last-child > td, .table-responsive > .table-bordered > tfoot > tr:last-child > td {
  border-bottom: 0;
}

/* Table Scroll Design */
.tableBorder {
  -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  background-color: #fff;
}
.table-responsive::-webkit-scrollbar {
  width: 10px;
  height: 9px;
  background-color: #E0E0E0;
}
.table-responsive::-webkit-scrollbar-thumb {
  background-color: #AAA;
  border-radius: 10px;
}
.formHeader {
  padding: 2px 4px;
  font-size: 15px;
  font-weight: bold;
  line-height: 26px;
  color: #333;
  white-space: nowrap;
  border-bottom: 1px solid #64a424;
  /* text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #57A6EE;
  border-radius: 3px; */
}

/* breadcrumb flat */
.breadcrumb-flat {
  list-style: none;
  display: inline-block;
  margin: 0;
  padding-left: 0;
  font-size: 13px;
}
.breadcrumb-flat .icon {
  font-size: 14px;
}
.breadcrumb-flat li {
  float: left;
  line-height: 26px;
  height: 26px;
}
.breadcrumb-flat li a {
  color: #FFF;
  display: block;
  background: #0B7FAD;
  text-decoration: none;
  position: relative;
  height: 22px;
  line-height: 22px;
  padding: 0 10px 0 3px;
  text-align: center;
  margin-right: 23px;
}
.breadcrumb-flat li:nth-child(even) a {
  background-color: #0a5c7d;
}
.breadcrumb-flat li:nth-child(even) a:before {
  border-color: #0a5c7d;
  border-left-color: transparent;
}
.breadcrumb-flat li:nth-child(even) a:after {
  border-left-color: #0a5c7d;
}
.breadcrumb-flat li:first-child a {
  padding-left: 15px;
  -webkit-border-radius: 4px 0 0 4px;
  -moz-border-radius: 4px 0 0 4px;
  -ms-border-radius: 4px 0 0 4px;
  -o-border-radius: 4px 0 0 4px;
  border-radius: 4px 0 0 4px;
}
.breadcrumb-flat li:first-child a:before {
  border: none;
}
.breadcrumb-flat li:last-child a {
  padding-right: 15px;
}
.breadcrumb-flat li:last-child a:after {
}
.breadcrumb-flat li a:before, .breadcrumb-flat li a:after {
  content: "";
  position: absolute;
  top: 0;
  border: 0 solid #0B7FAD;
  border-width: 11px 10px;
  width: 0;
  height: 0;
}
.breadcrumb-flat li a:before {
  left: -20px;
  border-left-color: transparent;
}
.breadcrumb-flat li a:after {
  left: 100%;
  border-color: transparent;
  border-left-color: #0B7FAD;
}
.breadcrumb-flat li a:hover {
  background-color: #0f6d92;
}
.breadcrumb-flat li a:hover:before {
  border-color: #0f6d92;
  border-left-color: transparent;
}
.breadcrumb-flat li a:hover:after {
  border-left-color: #0f6d92;
}
.breadcrumb-flat li a:active {
  background-color: #0f6d92;
}
.breadcrumb-flat li a:active:before {
  border-color: #0f6d92;
  border-left-color: transparent;
}
.breadcrumb-flat li a:active:after {
  border-left-color: #0f6d92;
}
.search-header {
  margin-bottom: 18px;
  margin-left: 1px;
  padding: 8px 5px;
  background-color: #eeeeef;
  border-bottom: 1px solid #64a424;
  text-shadow: 0px 0px 0px #222;
}

/* loading indicator for button */
.btn-spinner {
  position: relative;
  overflow: hidden;
}

.btn-spinner .icon-spin {
  position: absolute;
  top: 10%;
  left: 33%;
  opacity: 0;
}
.btn-spinner[data-loading] > span {
  opacity: 0;
}
.btn-spinner[data-loading] .icon-spin {
  opacity: 1;
  font-size: 22px;
}
.newScroll::-webkit-scrollbar-track, 
.select2-results::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  background-color: #F5F5F5;
  border-radius: 10px;
}
.newScroll::-webkit-scrollbar,
.select2-results::-webkit-scrollbar {
  width: 10px;
  height: 9px;
  background-color: #F5F5F5;
}
.newScroll::-webkit-scrollbar-thumb,
.select2-results::-webkit-scrollbar-thumb {
  background-color: #AAA;
  border-radius: 10px;
}
.labelInverse {
  background-color: #FFFFFF;
  background-color: #505050;
  border-bottom: 1px solid #b3cee1;
  border-right: 1px solid #b3cee1;
  padding: 3px 4px 3px 4px;
  text-decoration: blink;
  font-size: 90%;
  display: inline-block;
  color: white;
}

/* jQuery MSG Plugin : CSS */

#jquery-msg-bg {
  -moz-opacity: 0.6;
  -khtml-opacity: 0.6;
  opacity: 0.6;
  filter: alpha(opacity=60);
  background: black;
}

.jquery-msg-content {
  -webkit-background-clip: padding-box;
  padding: 15px;
}

.black-on-white .jquery-msg-content {
  background: white;
  color: #333333;
  -moz-opacity: 0.9;
  -khtml-opacity: 0.9;
  opacity: 0.9;
  filter: alpha(opacity=90);
  -webkit-box-shadow: 5px 5px 30px 0 black;
  -moz-box-shadow: 5px 5px 30px 0 black;
  box-shadow: 5px 5px 30px 0 black;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -o-border-radius: 8px;
  -khtml-border-radius: 8px;
  -ms-border-radius: 8px;
  border-radius: 8px;
  /* ie fix */
  -pie-lazy-init: true;
  behavior: url(PIE.htc);
}

.white-on-black .jquery-msg-content {
  -moz-opacity: 0.5;
  -khtml-opacity: 0.5;
  opacity: 0.5;
  filter: alpha(opacity=50);
  background: black;
  color: white;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -o-border-radius: 8px;
  -khtml-border-radius: 8px;
  -ms-border-radius: 8px;
  border-radius: 8px;
  /* ie fix */
  -pie-lazy-init: true;
  behavior: url(PIE.htc);
}

/* End :jQuery MSG Plugin : CSS */

.fancy {
  text-align: center;
  overflow: hidden;
  font-size: 18px;
}
.fancy span {
  display: inline-block;
  position: relative;
}
.fancy span:before, .fancy span:after {
  content: "";
  position: absolute;
  margin-top: 0.45em;
  border-top: 8px solid #5E5E5E;
  top: 0;
  width: 900px;
}
.fancy span:before {
  right: 100%;
  margin-right: 0.5em;
}
.fancy span:after {
  left: 100%;
  margin-left: 0.5em;
}
.table-license tbody tr td:first-child{
  width: 15%;
}
/* Operation Diff (Diff Modal)*/
.diff-content h5 {
  word-break: break-all;
}
.attr {
  font-weight: normal;
  padding: 0;
  text-align: right;
}
.diff {
  border-style: solid;
  border-width: 1px 0 1px 1px;
  display: inline-block;
  margin: 0 1em 1em 0;
  position: relative;
  border-color: #ddd;
}
.diff .diff-left, .diff .diff-right {
  display: table-cell;
  border-style: solid;
  border-width: 0 1px 0 0;
  border-color: #ddd;
}
.diff .diff-right {
  margin-left: -.1em;
  min-width: 16.5em;
  right: 0;
  top: 0;
}
.diff ol {
  /*min-width: 250px;
  display: table-cell;*/
  margin: 0;
  padding: 0;
}
.diff li {
  display: block;
  list-style-type: none;
  margin: 0;
  padding: 8px;
  border-style: solid;
  border-width: 0 0 1px 0;
  border-color: #ddd;
  height: auto;
  min-width : 6.5em;
  font-size: 13px;
}
.diff li {
  padding: 6px 5px;
  /*white-space: nowrap;*/
  text-align: left;
}
.diff .data li {
  /*padding-left: .5em;*/
  min-width: 6.5em;
}
.diff-right .data li {
  min-width: 16.5em;
}
.diff-list > ol {
  display: initial;
  min-width: 250px;
}
.diff .diff-left{
  min-width: 16.5em;
}

.change {
  background-color: #ffd;
  border: 1px solid #963;
  color: #630;
}
.change-row {
  background-color: #fef7cd;
  white-space: nowrap;
}
.add-text {
  background-color: #e1f2d3;
  border: 1px solid #cbe7c5;
  color: #5c8847;
}
.delete-text {
  border: 1px solid #f7cccc;
  background-color: #f7e4e4;
  color: #b85355;
}

.diff h3 {
  box-shadow: none;
  display: block;
  margin: 0;
  padding: 8px;
  text-align: left;
  font-size: 13px;
  line-height: 20px;
  background-color: #eee;
  color: #4F4F4F;
  font-weight: bold;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
  border-style: solid;
  border-width: 0px 0 1px 0;
  border-color: #ddd;
}
.label {
  background-color: #bcbcbc;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 5px;
}
.label-user {
  background-color: #78D3A0;
}
.label-group {
  background-color: #78ABD3;
}
.label-resource {
  background-color: #D3A478;
}
.label-asset {
  background-color: #8A78D3;
}
.label-success {
  background-color: #9bb921;
}
.label-info {
background-color: #63c0c8;
}
.label-important {
background-color: #dc6343;
}
.inline-block {
  display:inline-block;
}
.is-table-include {
  display: inline-block;
  margin-left: 12px;
  vertical-align: top;
  margin-top: 7px;
}
.is-column-include {
  display: inline-block;
  vertical-align: top;
  margin-top: 5px;
}
.modal-diff {
  width: 1000px;
  margin-left: -480px;
}
.modal-diff .modal-header {
  background-color: #eff3f8;
  border-radius: 6px 6px 0px 0px;
}
.no-margin {
  margin: 0;
}
.legend {
  height: 10px;
  width: 10px;
  display: inline-block;
  margin-right: 3px;
}
table.table.backgrid thead th.repoName, .policyActive, .policyDownloaded, .lastPolicyUpdateTime, .tagActive, .tagDownloaded,
 .lastTagUpdateTime, .noOfNewUsers, .noOfNewGroups, .noOfModifiedUsers, .noOfModifiedGroups {
 border-top: 1px solid #ddd !important;
}
table.table.backgrid thead th.resourceType {
 border-top: 1px solid #ddd;
}
.label-size13-weightbold{
   font-size: 13px;
   font-weight: bold;
}
.clickable tr {
  cursor: pointer;
}
/* overridding select2 option hover css */
.select2-results .select2-highlighted {
  background: #0B7FAD;
}
.stretchTextInput{
  width:40%;
}
.editable-buttons {
    display: block;
    margin-top: 6%;
}

/* Login Page */
body.login {
  background: #292929;
  padding: 0;
}
.login #signin-container {
  margin: 0 auto;
  width: 280px;
}
.login .l-logo {
  text-align: center;
  width: 100%;
  margin-bottom: 20px;
}

.icon-sign-in {
  margin-left: 15px;
  visibility: hidden;
  font-size: 20px;
  margin-top: 3px;
  position:relative;
  right:80px;
}
.login form .btn,
.login input {
  font-size: 14px;
}
.login input,
.login form {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.login form {
  margin: 0;
  width: 100%;
}
.login form .btn {
  line-height: 26px;
  margin-top: 15px;
  font-weight: bold;
}
.login .fields {
  padding: 20px;
  background-color: rgba(0,0,0,0.15);

  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;

  border-right: 1px solid #595959;
  border-bottom: 1px solid #595959;
  border-left: 1px solid #2F2F2F;
  border-top: 1px solid #2F2F2F;
}
.login a.forgot-password {
  background: rgba(0, 0, 0, 0.05);
  color: #888;
  display: block;
  float: right;
  font-size: 11px;
  height: 22px;
  line-height: 22px;
  margin: -32px 10px 0 0;
  padding: 0 6px;
  position: relative;
  z-index: 10;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}
.login input {
  background: #ffffff;
  border: solid #dedede;
  border-width: 0 0 1px 0;
  height: 30px;
  padding: 0 10px;
  width: 100%;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}
.login label {
  color: #ADACAC;
  font-size: 14px;
  font-weight: bold;
}

.login input:focus {
  border-color: #dedede;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
.label-yellow{
	background-color: #f3a139;
}
.label-inverse {
background-color: #444444;
}
.alert {
	border:none;
	word-break: break-all;
}
.alert-danger {
  z-index: 1050 !important;
}

tr.disable-policy td {
	background-color: #F0F0F0;
}

.policy-disabled .formHeader,
.policy-disabled .control-label {
	color:#aaa;
}

td.html-cell.renderable:last-child {
	text-align:center;
}

.policy-manager span.policy-title {
	font-size: 20px;
	line-height: 32px;
	text-transform: uppercase;
	color: #707070;
}
.policy-manager table thead tr th:first-child {
	background-color: #d8d8d8;
}
.policy-manager table thead tr th:first-child a {
	color: #707070;
}
.label-green{
	background-color: #3ea211;
}
.connection-error-font {
	font-size: 11px;
	font-family: monospace;
}
/**************/

.policy-form .field-isEnabled{
margin-left: 413px;
margin-bottom: 4px !important;
}
.policy-form .field-isEnabled .controls{
	margin-left:30px;
}
.policy-form .field-policyPriority{
  margin-left: 413px;
  margin-bottom: 4px !important;
}
.policy-form .field-policyPriority .controls{
  margin-top: -45px;
  margin-left: 127px;
}
.margin-bottom-5{
margin-bottom: 5px;
}
.margin-bottom-57 {
	margin-bottom:57px;
}
.table .table {
	width:auto;
}
.width-22{
        width:22%;
}
.margin-left-0{
	margin-left:0%!important;
}

.policy-manager .row-fluid [class*="span"]:first-child {
	margin-left: 1%;
}
.policy-manager .row-fluid [class*="span"] {
	margin-left: 1%;
	margin-right: 1%;
}
.policy-manager .row-fluid [class*="span"]:nth-child(3n+4) {
	clear: both;
}
.field-isEnabled + div {
   clear:both;
}
.include-toggle{
	margin-left: 360px;
	margin-top: -35px;
	width:80px;
  position: relative;
  top: 7px;
}
.expanded-contant .include-toggle{
  margin-left: 18.4vw;
  margin-top: -29px;
  width:80px;
  position: relative;
  top: 7px;
}
.policy-form .help-inline {
	position: relative;
	top: 10px;
}
.hideResource{
	display:none !important;
}
.btn-mini {
	padding: 4px 8px;
  font-size: 11.05px;
}
.label-ranger {
  color: white;
}
.sameLevelDropdown{
	margin-right: 31px;
	margin-left: -140px;
	width: 110px;
	font-family: Tahoma;
	font-size: 14px;
	border-radius: 10px;
	border: 2px #cccccc solid;
}
.margin-left-5{
	margin-left:5px;
  line-height:15px;
}
.tr-inactive {
  background-color: #F5F5F5;
}
.tr-inactive a {
  color: #CCC;
}
.tr-inactive td span.label{
  background-color: #BCBCBC;
  color: #fff;
  font-weight: normal;
  text-shadow: none;
}
.tr-inactive td button.userViewicon i{
  color: #BCBCBC;
}
td.select-row-cell {
  text-align: center;
}
.ranger-notifications {
	right: 33px!important;
	top: 41px!important;
}table.table-permission.visible-border tr td:last-child {
  border: 1px solid #dddddd;
  padding-left: 0;
}
.set-height-groups{
	width: 100%;
	height: 100px;
	overflow-x: hidden;	
}
.float-left-margin-2{
	float: left;
	margin: 2px;
}

#r_topNav .dropdown-menu, #main-navbar .dropdown-menu{
	margin:0;
  border-radius: 6px;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}

.table-policy-condition th,
.table-policy-condition td {
  border: none !important;
  white-space: nowrap;
  color: #444444 !important;
}

.table-policy-condition tr:nth-child(even) td, .table-policy-condition tr:nth-child(even) th  {background-color: #FFFFFF;}
.table-policy-condition tr:nth-child(odd) td, .table-policy-condition tr:nth-child(odd) th  {background-color: #EEEEEE;}

.table-policy-condition label {
  float: left;
  margin-right: 10px;
}
.label-lightblue, .label-lightgreen {text-shadow:none; display: block; margin-bottom: 2px;}
.label-lightblue {background-color: #DEEEF9; color: #000;}
.label-lightgreen {background-color: #E4F4D8; color: #000;}

input[type="radio"], input[type="checkbox"] {margin-top: 0;}

.table-policy-condition td:nth-child(3) {
  border-left: 2px solid #fff !important;
}
.table-policy-condition td:nth-child(3) label {
  float: none;
  text-align: center;
  margin-left: 10px;
}
.white-space-normal{
  white-space: normal;
  word-break: break-all;
}
.margin-top-6{
  margin-top: 6px;
}
.tag-fixed-popover {
	top: 50px !important;
	left: 50% !important;
	margin-left: -350px !important;
	max-width: 700px !important;
	max-height: 500px;
	overflow-y: auto;
  transform: none !important;
}
.tag-fixed-popover-wrapper {
	position: fixed !important;    top: 0 !important;
    bottom: 0 !important;
    right: 0 !important;
    left: 0 !important;
    z-index: 99 !important;
    background-color: rgba(0,0,0,0.5);
}
.table-policy-condition label {
	font-size: 12px;
	text-align: left;
}
.table-policy-condition tr[data-id=storm] td label {
    min-width: 170px;
}
/* align all component 
.table-policy-condition td label {
    min-width: 170px;
} */
.pause-play-close{
	margin-left: -5px;
    margin-top: -2px;
    font-size: 11px;
}
.pause-play {
  background-color: transparent;
  border: 0;
  float: right;
  font-weight: 700;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 1.5;
  padding-right: 10px;
}
.control-label-align {
	width: 80px !important;
}
.controls-margin {
	margin-left: 90px !important;
}
.permissionItemSortable > tr > td:first-child {
  padding-left: 20px;
  position: relative;
}
.permissionItemSortable > tr:not(.ui-state-highlight) > td:first-child:after {
  content: '';
  position: absolute;
   box-sizing: border-box;
   left: 5px;
   top: 10%;
   height: 80%;
   width: 6px;
   border: 2px dotted rgba(0,0,0,0.25);
   background: transparent;
   cursor: move;
}
.permissionItemSortable > tr:hover > td:first-child:after {
  border-color: rgba(0,0,0,0.5);
}
.download-list {
  min-width: 100px;
  max-width: 120px;
}
.hdfs-table table.backgrid thead th:nth-child(1){
  width: 8%;
  
}
.hdfs-table table.backgrid thead th:nth-child(2) {
  /*width: 300px;*/
  width: 25%;
}
.hdfs-table table.backgrid thead th:nth-child(3){
  width:30%;
}
.hdfs-table table.backgrid thead th:nth-child(4){
  width:10%;
}
.hdfs-table table.backgrid tbody td:nth-child(4){
  width:10%;
  text-align: center;
}
.hdfs-table table.backgrid tbody tr td:nth-child(3){
 text-align: left !important;
 max-width: 200px;
}
.hdfs-table table.backgrid tbody tr td:nth-child(5){
  text-align: center;
  width: 100px
}
.hdfs-table table.backgrid thead th:nth-child(5){
  text-align: center;
  width: 10%;
}
.hdfs-table table.backgrid thead th:nth-child(6){
  width: 10%;
}
/*.hdfs-table table.backgrid thead th:nth-child(5) tr{
  border-left-style: hidden;
}*/
.report-access{
  width:100%;
  border-right:1px solid #DDD;
}
.report-user-group{
  width:80px;
  min-width:80px;
}
td.subgrid-custom-cell{
  text-align: center;
}
.backgrid-subgrid-custom-row table.backgrid thead th:nth-child(1){
  width: 300px;
  max-width: 300px;
}
.backgrid-subgrid-custom-row table.backgrid thead th:nth-child(2){
  width: 300px;
  max-width: 300px;
}
.backgrid-subgrid-custom-row table.backgrid thead th:nth-child(3){
  width: 300px;
  max-width: 300px;
}
.backgrid-subgrid-custom-row table.backgrid tbody td:nth-child(1){
  width: 300px;
  max-width: 300px;
}
.backgrid-subgrid-custom-row table.backgrid tbody td:nth-child(2){
  width: 300px;
  max-width: 300px;
}
.backgrid-subgrid-custom-row table.backgrid tbody td:nth-child(3){
  width: 300px;
  max-width: 300px;
}
.hdfs-table table.backgrid tbody tr.backgrid-subgrid-custom-row{
  background-color: #f9f9f9;
}
.backgrid-subgrid-custom-row table.backgrid thead th {
  font-weight:inherit;
}
.customMask{
	width: 95px;
}
.margin-right-5{
	margin-right: 5px !important;	
}
.VS-search .VS-search-box {
        min-height: 32px;
}
.VS-search .VS-icon-search {
        margin-top: 3px;
}
/*.VS-search .VS-cancel-search-box {
	margin-top: 3px;
}
.VS-search .VS-icon-search {
	margin-top: 3px;
}
.VS-search .search_facet_input_container{
	margin-top: 1px;
} */
.VS-search .VS-placeholder{
        top: 7px;
}
.padding-right-10{
        padding-right: 10px;
}
.selected-widget {
    padding: 3px 5px 3px 4px;
    border-radius: 3px;
    border: 1px solid #aaaaaa;
    background-color: #e4e4e4;
    margin: 3px 3px;
    float: left;
}
.selected-list {
    margin: 5px;
    max-height: 270px;
    overflow: auto;
}
.inline {
    display: inline;
}
.vertAlignInitial{
        vertical-align: initial !important;
        text-align: left;
}
.activePolicyAlert {
    color: #ec7337;
    margin-right: 5px;
}
.padding-right-10{
    padding-right: 10px;
}
.selected-widget .remove{
    cursor:pointer;
}
.customTextFiledIcon{
	color: #808080;
    font-size: small;
    margin-left: -17px;
    margin-right:5px;
}
.textFiledInputPadding{
	padding-right: 30px !important;
}
input.textFiledInputPadding ~ span {
    position: absolute;
    top: 7px;
    right: 16px;
}
.popoverTextMsg{
	font-size:11px;
}.uploadSet {
	margin-top: 20px;
}
.margin-left130{
    margin-left:130px
}
.margin-left12{
    margin-left:12px
}

.text-color-red{
    color:#b85355
}
.margin-left6{
    margin-left:6px
}
.float-right{
    float : right;
    margin-right:165px
}
.icon-remove-btn{
    color: #c03932;
    text-decoration: none;
    margin-left: 10px;
    cursor:pointer;
}
.margin-bottom-11{
    margin-bottom: 11px
}
.margin-left-170{
    margin-left:170px
}
.margin-left-213{
    margin-left:213px
}
.margin-left-75{
    margin-left:75px
}
.capitalize {
    text-transform: capitalize;   
}
.importbtn{
    margin-right: 5px ;
    margin-top:-1px;
}
.text-decoration:hover{
    text-decoration: none;
}
.taginfo td, .taginfo th{
  text-align: center;
  vertical-align: middle;
}
.font-weight-100{
        font-weight: 100
}
.float-left-margin-1{
    float: left;
    margin: 1px;
}
.tag-attr-popover{
        padding: 5px;
}
.popover-heading {
    font-weight: bold;
    margin: 1px;
}
.tag-attr-table{
   border-color: transparent;
   border-top-color: #dddddd;
}

.tag-attr-popover .table{
        margin-bottom:0;
}
.tag-attr-popover .table td:first-child{
        border-left-color:transparent;
}
.backgrid-paginator ul > li > a,
.backgrid-paginator ul > li > span{
    width: auto !important;
	min-width: 30px;
	max-width: 44px;
	text-overflow:ellipsis;
	white-space: nowrap;
    overflow: hidden;
}.divider-popup{
	padding: 4px;
	background-color: #eeeeee;
    text-align: center;
    font-size: 12px;
}
.empty-text{
    text-align: center;
    font-weight: bold;
    font-style: italic;
}
.recursive-toggle-1 {
	margin-left: 23vw;
	margin-top: -15px;
	width:110px;
}
.recursive-toggle-2 {
	margin-left: 30vw;
	margin-top: -13px;
	width:110px;
}
.expanded-contant .recursive-toggle-1{
  margin-left: 18.4vw;
  margin-top: -15px;
  width:110px;
}
.expanded-contant .recursive-toggle-2{
  margin-left: 25.4vw;
  margin-top: -17px;
  width:110px;
}
.recursive-toggle-hdfs-1{
	margin-left: 348px;
	margin-top: -29px;
}
.recursive-toggle-hdfs-2{
	margin-left: 30vw;
	margin-top: -22px;
}
.expanded-contant .recursive-toggle-hdfs-2{
  margin-left: 25.4vw;
}
.include-toggle-1{
  margin-left: 23vw;
  margin-top: -4px;
}
.expanded-contant .include-toggle-1{
  margin-left: 18.4vw;
}
.subgridTable{
        width : 25% !important;
}
.trim-containt{
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 95%;
}
.control-group.error .select2-choices{
    border-color: #b85355;
}
textarea:read-only{
    cursor: default;
}
#policyDetail>label{
    margin-bottom: 6px;
}
.label-margin{
    margin-left: 10px;
}
.margin-left-min-30{
        margin-left: -20px;
}
.shorten-label {
    max-width: 180px;
    text-overflow: ellipsis;
    overflow: hidden;
}.resourceText{
	overflow: hidden;
	text-overflow: ellipsis;
  max-width: 85%;
}
.closeBtn{
	position: absolute;
	top: 5px;
	right: 4px;
}
.border-top-1 {
	border-top: 1px solid #ddd;
}
.query-content {
	font-style: italic;
	max-height: 200px;
	overflow-y: auto;
}
.userViewicon {
    float: center;
    line-height: 12px;
}
.users-list-search{
    width : 90%;
    padding : 10px;
}
.span-margin{
    margin: 2px;
    border: 1px solid #bbbbbb;
    background-color: white;
}
.span-margin a{
    color:#444444;
}
.span-margin:hover a{
    text-decoration:none;
    color:#4e7b86;
}
.loaderForModal{
  background: url(../images/loading.gif) no-repeat center center rgba(0,0,0,0.3);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}
.pointer-event{
    pointer-events: none;
}
.infoWidth{
  width: 475px;
}
.query-icon, .copyUsers{
  padding: 0 4px;
  float: right;
  margin-top: -3px;
  cursor: pointer;
  margin-left: 4px;
}
.user-sync-table td{
  text-align: center !important;
}
.white-space-normal{
  white-space: normal !important;
}
.date-input-width-127{
  width: 148px;
}
/*.modal-policy-time {
  width: 720px;
  margin-left: -333px;
}*/
/*.modal-policy-time .modal-header {
  background-color: #eff3f8;
  border-radius: 6px 6px 0px 0px;
}*/
.add-on .icon-th,.icon-remove{
  line-height: 1.5;
}
.timeClock{
    margin-left: 12px;
    color: #4c504b;
    font-size: large;
    margin-top: 10px
}
.backgrigModelId{
  position: absolute;
  left: 0;
  top: 3px;
  color:#bd362f;
}
.hideBodyScroll{
    overflow : hidden;
}
.datetimepicker-minutes{
    overflow-y: scroll !important;
    height: 210px !important;
}
.expiredIconPosition{
    position: relative;
    text-align: center;
}
.setEllipsis {
    max-width: 180px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}
.textAreaContainer {
    width: 370px;
    height: 170px;
}
.errorClass {
    border-color: #b85355 !important;
    color: #b85355 !important;
}
.validSyntax {
    color: #3e910f;
}
.borderNone {
	border: none;
	padding: 0px;
}
.serviceNameEllipsis {
	max-width: 300px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
  vertical-align: sub;
  display: inline-block;
}

.sidebar-list .serviceNameEllipsis {
  max-width: calc(100% - 30px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: sub;
  display: inline-block;
}

.resourceGrp {
  display: block;
  padding: 5px;
  background-color: #f4f4f4;
  border: 1px solid #ccc;
  border-radius: 5px;
  text-align: left;
  max-width: 100%;
  margin: 5px 2px;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: initial;
}

.m-l-sm{
  margin-left:10px;
}

.m-l-xsm {
  margin-left : 5px;
}

.m-r-sm{
  margin-right: 10px;
}

.m-t-xs{
  margin-top:5px;
}

.m-t-sm{
  margin-top:10px;
}

.m-r-xs{
  margin-right:5px;
}

.m-b-md{
  margin-bottom:15px;
}

.w3-bar-item {
  width: 100%;
  display: block;
  padding: 8px 16px;
  text-align: left;
  border: none;
  white-space: normal;
  float: none;
  outline: 0;
}

.sideBar {
  border-right: 1px solid #ccc;
  padding-right: 10px;
  height: 100vh;
  /* transition: 0.4s all;
  -webkit-transition: 0.4s all;
  -moz-transition: 0.4s all;
  -o-transition: 0.4s all; */
}

/* .sideBar_collapse {
  width: 30px;
  display: inline-block;
  border-right: 1px solid #ccc;
  padding-right: 10px;
  height: 100vh;
  transition: 0.4s all;
  -webkit-transition: 0.4s all;
  -moz-transition: 0.4s all;
  -o-transition: 0.4s all;
} */

/* Security Zone */
.security-panel {
  background-color: #fff;
  border-radius: 3px;
  border: 1px solid #d6d6d6;
  margin: 0;
}
.security-details {
  border-left: 1px #CCC solid;
  box-sizing: border-box;
  float: right;
  width: 75%;
  -webkit-box-sizing: border-box;
  padding: 10px 14px;
  min-height: 500px;
  /*display: block;*/
  /*margin-left: 10px !important;*/
}
.security-sidebar h4 {
  margin: 0;
  color: #979797;
}
.zone-wrap {
  height: 355px;
  overflow-y: auto;
  overflow-x: hidden;
}
.btn-add-security {
  color: #000000;
  font-size: 12px;
}
.btn-add-security2 {
  color: #000000;
  font-size: 20px;
  text-align: center;
  background: #F5F5F5;
  color: #0B7FAD;
  padding: 20px 40px;
  display: block;
}
.security-search {;
  width: 100%;
}
.zone-listing {
  list-style: none;
  padding: 0;
  margin: 20px 0 0;
}
.zone-listing li {
  cursor: pointer;
  padding: 5px;
  color: #adadad;
}
.zone-listing li + li {
  border-top: 1px #adadad dashed;
}
.zone-listing li:hover,
.zone-listing li.selected {
  color: #0B7FAD;
  font-weight: bold;
}
.table-security {
  margin: 30px 0;
}
.form-administration .label {
  margin-top: 6px;
}
.row-margin-bottom {
  margin-bottom: 15px;
  margin-top: 10px;
}
.security-details-default {
  padding: 15px;
  width: 70%;
  float: left;
  min-height: 500px;
  border-left: 1px #CCC solid;
}
.default-zone {
  position: absolute;
  top: 50%;
  left: 60%;
  transform: translate(-50%,-50%);
  text-align: center;
}
.zoneImg {
  width: 128px;
  margin: 20px auto;
  display: block;
}
.btn-group-zone i {
  padding-right: 3px;
}
.security-details h2 {
  font-weight: normal;
  color: #0B7FAD;
  margin-top: 0;
}
.table-operations-new > thead > tr > th {
  background-color: #eee;  
}
.table-operations-new > tbody > tr > td {
  background-color: #fef7cd;
  vertical-align: middle;
}
.table-operations-old > thead > tr > th {
  background-color: #eee;  
}
.table-operations-old > tbody > tr > td {
  background-color: #ffefe4;
  vertical-align: middle;
}
.service-resource-new {
  font-family: monospace;
}
.service-resource-new span {
  color: #269e08;
}
.service-resource-old {
  font-family: monospace;
}
.service-resource-old span {
  color: #c5811b;
}
.zone-resource {
  border: 1px #e4b75c solid;
  padding: 4px 12px;
  border-radius: 5px;
  color: #966b0c;
  margin-bottom: 10px;
}
.tagit-position {
  z-index: 9999;
  position: fixed;
}
.zone-icon {
  vertical-align: top;
}
.zone-icon .icon-stack-base {
  font-size: 1.5em;
}
.zone-icon .icon-bolt {
  line-height: 2em;
  font-size: 0.9em;
}.btn-slide-toggle {
  margin-top: 8px;
}
.sidebar-margin {
  border: none;
}
.display-inline-block {
  display: inline-block;
}
.security-sidebar {
  width: 25%;
  box-sizing: border-box;
  float: left;
  -webkit-box-sizing: border-box;
  /*display: block;*/
}
.listDataZone{
  padding: 10px 14px;
}
.btn-import-export {
  float: right;
  margin-left: 5px;
  vertical-align: top;
}
.select2-container.select2-container-disabled .select2-choice {
  cursor: not-allowed;
}
.disabled {
  cursor: not-allowed;
}
.multiline-condition{
    width: 437px;
    height: 170px;
}
.display-block{
  display:block !important;
}

.condition-group-table th{
  background-color: #eeeeef;
}

.condition-group-table.table th,
.condition-group-table.table td{
  word-break: break-all;
}

.condition-group-table.table tbody{
  max-height: 400px;
  overflow: auto;
  display: block;
}
.trim-containt-breadcrumb {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 300px;
}
.r_breadcrumbs {
  position: -webkit-sticky;
  position: sticky;
  top: 42px;
  /*padding-right: 2px;*/
  z-index: 10;
  background: #eeeeee;
  padding-top: 14px;
  width: 70%;
  display: inline-block;
}

#zoneServiceAccordion .accordion-inner{
  padding:0px;
  border: 0px;
}
#zoneServiceAccordion{
  border-top: 1px solid #e5e5e5;
}
#zoneServiceAccordion .accordion-inner .table-responsive,
#zoneServiceAccordion .accordion-inner .pagination{
  margin: 0px;
}
div#zoneServiceAccordion table thead {
  background: none;
}
.no-margin {
  margin: 0 !important;
}
.no-padding {
  padding: 0 !important;
}

.custom-table{
  margin-bottom: 0;
}

.custom-table thead{
  background-color: #eeeeee;
}

.custom-table th,
.custom-table td {
  text-align: center !important;
  vertical-align: middle;
}

.custom-table .js-formInput .select2-container{
  width: 100%;
}

.m-l-50 {
  margin-left: 50px;
}

.fixed-headertable,
.fixed-headertable > thead,
.fixed-headertable > tbody {
  display: block;
  width: 100%;
}

.fixed-headertable > tbody {
  overflow: auto;
  max-height: 350px;
  overflow: overlay;
}

.fixed-headertable tr{
  display: table;
  table-layout: fixed;
  width: 100%;
}

.fixed-headertable td,
.fixed-headertable th{
  width: 33%;
  display: table-cell;
}

.ellipsize{
  max-width: 100%;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

/*.fixed-headertable td,
.fixed-headertable th{
  width: 100px;
  display: table-cell;
}

.fixed-headertable td:first-child,
.fixed-headertable th:first-child{
  width: calc(100% - 200px);
}*/

.policy-manager table thead tr th:first-child a:focus {
  text-decoration: none;
}

.add-service {
  margin-right: 2px;
  opacity: 0.4;
}

.panel{
  border:1px solid #ccc;
}

.panel-header{
  text-decoration: none;
  font-weight: bold;
  border-bottom: 1px solid #ccc;
  display: block;
  padding: 8px 15px;
  cursor: pointer;
}

.panel-default .panel-header {
  background-color: #eeeeee;
  color: #444;
}

.panel .panel-content{
  padding: 9px 15px;
  background-color: white;
}

.deny-all-else {
  margin-top: 16px;
  margin-bottom: 15px;
  padding: 9px 0;
}

.row.clear-seconds .span6:nth-child(2n+3) {
    clear: left;
}

.new-error-page{
  height: calc(100vh - 200px);
  display: flex;
  width: 100%;
  justify-content: center;
  /*align-items: center;*/
  margin-top: 6%;
}

.new-error-box{
  display: table;
  max-width: 40%;
  min-width: 450px;
}

.error-white-bg{
  background-color: white;
}

.new-icon-box,
.new-description-box {
  display: table-cell;
  vertical-align: middle;
  padding: 20px;
  color: #888;
}

.new-icon-box{
  width: 60px;
  text-align: center;
  border-right: 1px solid #ddd;
}

.text-muted {
  opacity: 0.7;
}

.text-muted-select2 {
  opacity: 0.5;
}

.center {
  text-align: center;
}

/*New UI*/
.page-manager-sidebar {
  width: 20%;
  box-sizing: border-box;
  float: left;
  -webkit-box-sizing: border-box;
  min-width: 300px;
  display: inline-block;
  height:auto;
  background-color:#303d48;
  /*display: block;*/
}

.page-manager-sidebar h4 {
  margin: 0;
  color: #979797;
  text-transform: uppercase;
  font-size: 16px;
}

.sidebar-list.collapsed .list-container > div {
  pointer-events:none;
  opacity:0;
}

.sidebar-list.expanded {
    width: 300px;
}


.sidebar-list.collapsed ~ .container {
    width: calc(100% - 65px);
}

.components-header {
  color : #c4c4d4;
}

.listData{
  padding:0;
}

.list-container {
    padding: 15px;
}

.list-header,
.list-filter,
.list-data {
    clear: both;
    display: block;
    width: 100%;
}

.list-header > h4 {
  display:inline-block;
    font-weight:400;
    line-height: 2.2;
}

.list-filter > div{
  margin-top: 20px;
    display: block;
    padding: 0;
}

.list-data span,
.list-data a,
.list-data i.icon-expand-alt{
  color:#fff;
  font-size:16px;
}

/*use below if you cant remove width from select2 */
.list-filter{
  overflow:hidden;
}

.list-filter input, .list-filter{
  width:100% !important;
}
/*use above if you cant remove width from select2 */


/*Text transform uppercase*/
.capitalizes {
  display:inline-block
}
.capitalizes:first-letter {
    text-transform: uppercase;
}

.component-list-item > div:first-child,
.component-list-item .service-list-container {
    margin-top:15px;
}


.service-list-container > div{
  position:relative;
    padding-left:20px;
}

.service-list-container > div:before, .service-list-container > div:after {
    position: absolute;
    content: ' ';
    height: 10px;
    width: 10px;
}

.service-list-container > div:before {
    top: -18px;
    height: 30px;
    width: 0px;
    left: 3px;
    
}

.service-list-container > div:after {
    top: 10px;
    height: 1px;
    width: 15px;
    left: 3px;
    
}

.component-list-item > div{
  clear:both;
    padding-top:10px;
}

.component-list-item .service-list-container {
    margin-top: 0px;
    padding-top:0;
}
.service-list-container > div {
    padding-top: 10px;
}

.service-list-container > div:after{
  top:17px;
}
.service-list-container > div:before{
  height:35px;
}

.service-list-container > div:before {
    top: -5px;
    height:28px;
}

.service-list-container > div:after{
  top:18px;
  left:5px;
}

.service-list-container > div {
    clear:both;
}

.list-header > h4{
  float:none;
}

.list-data {
  height: calc(100vh - 220px);
    overflow:scroll;
}
.list-container .btn a{ 
  color:#424242;
}

.list-container .btn.btn-primary > a {
    background-color: #0B7FAD;
    color: white !important;
}

.list-container > .text-center{
  margin-bottom:20px;
}

.sidebar-list ~ .container {
width: calc(100% - 330px);
    display: inline-block;
    float: left;
    padding: 15px;
    height: 100vh;
}

.card-container {
  width:20%;
    background-color:white;
    padding:20px 10px;
    border-radius:4px;
    height:auto;
    min-height: 140px;
    cursor:pointer;
}

.card-container .card-icon{
  font-size:28px;
    text-align:center;
    margin-bottom:10px;
}

.card-container .card-header{
  font-size:14px;
    text-align:center;
    margin-bottom:10px;
}

.card-container .card-body{
  font-size:12px;
    text-align:center;
}

.fa-180:before {
    transform: rotate(180deg);
}

#main-footer {
    margin-top: 0;
    padding-top: 0
}

section#r_content{
  min-height:80vh !important;
}

.sidebar-list ~ .container {
  min-height:auto;
    height:auto;
     float: right;
}

body.service-layout {
    padding: 43px 0 0 0;
}

a.serviceNameEllipsis.active {
    color: #fefefe;
}

.list-data {
    overflow-y: auto;
    overflow-x: hidden;
}

.fa-caret-up.fa-caret-down:before{
 content: "\f0d7";
}

#top-navbar .navbar-inner {
    border: none;
}

.zone-listing-new > li{
  padding:0;
}

.zone-listing-new > li > a:hover,
.zone-listing-new > li > a{
    font-size: 16px;
    font-weight:400;
    text-decoration:none;
}


.serviceNameEllipsis,
.serviceNameEllipsis:hover{
    text-decoration:none;
}

.zone-listing-new li + li{
  border-top:1px dotted #888;
    padding-top: 5px;
    margin-top:5px;
}

.list-data > div:las
t-child {
    padding-bottom: 20px;
}

ul.zone-listing-new > li {
  padding-top: 10px;
  padding-bottom: 10px;
  padding-left: 14px;
  border: none;
}

.zone-listing-new {
    list-style: none;
    padding: 0;
    margin: 20px 0 0;
}

.zone-listing-new > li {
    padding: 0;
}

/*.selected {
    color: #fefefe;
}
*/
.zone-listing-new li.selected{
  background-color: #203142;
  border-radius: 4px;
}
ul.zone-listing-new > li > a {
  color: rgba(255, 255, 255, 0.7);
  display: block;
}

ul.zone-listing-new > li > a:hover {
  color: #f1f2f3;
}

li.selected a{
  color: #ffffff !important;
}

.sidebar-list ~ .container {
    width: 78%;
}
.page-manager-sidebar {
    width: 100%;
}
/*Change the width of the select2 input at dev end*/

.list-container .select2-container {
    width: 100% !important;
}
/*End of change the width of the select2 input at dev end*/
/*CSS based switch*/

.toggle-control {
    display: block;
    position: relative;
    width: 25px;
    top: 10px;
    right: 6px;
    margin-bottom: 12px;
    cursor: pointer;
    font-size: 22px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    padding: 0 2px;
}
.toggle-control input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}
.toggle-control input:checked ~ .control {
    background-color: dodgerblue;
}
.toggle-control .control {
    position: absolute;
    top: 0;
    left: 0;
    height: 12px;
    width: 20px;
    border-radius: 25px;
    background-color: darkgray;
    -webkit-transition: background-color 0.15s ease-in;
    transition: background-color 0.15s ease-in;
}
.toggle-control .control:after {
    content: "";
    position: absolute;
    left: 1px;
    top: 1px;
    height: 10px;
    width: 10px;
    border-radius: 25px;
    background: white;
    -webkit-transition: left 0.15s ease-in;
    transition: left 0.15s ease-in;
}
/*CSS based switch*/

.toggle-control input:checked ~ .control:after {
    left: 9px;
}

.list-header{
  position:relative;
}

.list-header > h4 ~ a,
.list-header > h4 ~ .toggle-control{
  margin-top:8px;
}


/* apache component icon */
@font-face {
  font-family: 'apache_component_font';
  src:  url('../fonts/fontapachecomponent/apache_component_font.eot?dyf3ns');
  src:  url('../fonts/fontapachecomponent/apache_component_font.eot?dyf3ns#iefix') format('embedded-opentype'),
    url('../fonts/fontapachecomponent/apache_component_font.ttf?dyf3ns') format('truetype'),
    url('../fonts/fontapachecomponent/apache_component_font.woff?dyf3ns') format('woff'),
    url('../fonts/fontapachecomponent/apache_component_font.svg?dyf3ns#apache_component_font') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-component"],
[class*=" icon-component"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'apache_component_font' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-component-nifi-registry:before {
  content: "\e906";
}
.icon-component-kms:before {
  content: "\e909";
}
.icon-component-tag:before {
  content: "\e90b";
}
.icon-component-default:before {
  content: "\e90e";
}
.icon-component-atlas:before {
  content: "\e908";
}
.icon-component-ozone:before {
  content: "\e907";
}
.icon-component-kudu:before {
  content: "\e90a";
}
.icon-component-hbase:before {
  content: "\e90c";
}
.icon-component-kafka:before {
  content: "\e90d";
}
.icon-component-yarn:before {
  content: "\e900";
}
.icon-component-hdfs:before {
  content: "\e901";
}
.icon-component-hive:before {
  content: "\e902";
}
.icon-component-nifi:before {
  content: "\e903";
}
.icon-component-solr:before {
  content: "\e904";
}
.icon-component-knox:before {
  content: "\e905";
}

.page-manager-sidebar {
    width: 100%;
    position: relative;
    min-width: auto;
}

.sidebar-list ~ .container {
    width: 75%;
}

.component-list-item > div {
    padding-left: 20px;
    position:relative;
    padding-right: 5px;
}

i#collapesService {
    position: absolute;
    display: block;
    left: 0px;
}

.list-header > h4 ~ a, 
.list-header > h4 ~ .toggle-control{
  color:#ffffff;
}

.list-header .dropdown-menu {
    /*min-width: 50px;*/
    position: absolute;
    right: 0;
    left: auto !important;
}

.toggle-control input:checked ~ .control {
    background-color: #0B7FAD;
}

.list-data a:hover {
    color: #888888;
    transition: all 0.5s;
}

.list-header > h4 ~ a{
  color:#888;
    text-decoration:none;
}

.list-header > h4 ~ a:hover{
  color:#fff;
    transition: all 0.5s;

}
.sidebar-list.expanded{
  width:22%;
}
.sidebar-list ~ .container {
    width: 76%;
}

/*For show same styles as nav menu*/
/*
.component-list-item .capitalize {
    font-size: 15px;
    font-weight: 600;
    text-transform: capitalize;
}
*/

/*For show same styles as nav menu*/

.report-label {
  margin: 0;
  color: #979797;
}

.sidebar-toggler > span {
    right: -18px;
    background-color: #303d48;
    top: 60px;
    padding: 0px;
    border-radius: 0 6px 6px 0;
    display: inline-block;
    cursor: pointer;
    position: absolute;
    z-index: 1;
    width: 28px;
}

.sidebar-list ~ .container .r_breadcrumbs {
    padding-top: 9px;
}

.sidebar-list.collapsed{
  width:0;
}
.sidebar-list.collapsed .sidebar-toggler > span{
  right: -28px;
    z-index:9;
}

.sidebar-list.collapsed ~ .container {
    width: calc(100% - 35px);
}

.page-manager-sidebar input {
    width: 100%;
    margin:0;
    padding: 6px;
}

.sidebar-list .control-group .btn-group{
  display:inline-block;
    width:30% !important;
    float:left;
}

.sidebar-list .control-group .select2-container{
  display:inline-block;
    width:70% !important;
    float:left;
}

.sidebar-list .control-group .btn-group .dropdown-toggle {
    width: 90% !important;
    text-align: left;
}

.sidebar-list .control-group .controls{
      clear:both;
}

.sidebar-list .control-group .controls .btn-small{
    margin-top:15px;
  text-align:left;
}

.sidebar-list ~ .container {
    min-width: calc(100% - 380px);
    transition: 0.4s all;
}

.sidebar_list .form-group.listData {
    margin-bottom: 5px;
}

.sidebar-list ~ .container .r_breadcrumbs {
    padding-top: 9px;
    margin-top: 20px;
}

.list-data a{
    cursor:pointer;
}

.service-list-container > div {
    clear: both;
    margin-top: 5px;
    height: 20px;
    background-color: transparent;
    padding-top: 1px;
    padding-bottom: 1px;
}

.service-list-container > div:hover,
.service-list-container > div.selectedList{
    color: #FFFFFF;
    background-color: rgba(255,255,255,0.1);
    border-right: 4px solid #51b5fc;
}

.service-list-container > div:hover a,
.service-list-container > div.selectedList a{
  color:#fff;
}

.component-list-item > div:first-child, 
.component-list-item .service-list-container {
    margin-top: 5px;
}/*Overriden styles - Use later for bootstrap 3*/

a{
  color:#0B7FAD;
}

a:focus,a:hover,a.active,a:active{
 color: #2996ba;
}

.loading-img{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}


.btn,
.btn-default{
  box-shadow: none;
  -webkit-box-shadow:none;
  -moz-box-shadow:none;
  border:1px solid #d9d9d9;
  color: #424242;
  background-image: none;
  background-color: white;
}

.btn:hover,
.btn-default:focus,
.btn-default:active,
.btn-default.active,
.btn-default.disabled,
.btn-default:hover{
  color: #0B7FAD!important;
  border-color: #0B7FAD!important;
  background-color: #fff!important;
  outline: none!important;
}


.btn-primary{
  background-color: #0B7FAD;
  background-image: none;
  color: #fff;
  border-color: #0B7FAD;
}

.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.btn-primary.disabled,
.btn-primary[disabled],
.btn-primary:hover{
  background-color:#2996ba;
  background-image: none;
  color: #fff;
}

.btn-danger{
  background-color: #DE4D5F;
  color: #fff;
  border-color:#DE4D5F;
}

.btn-danger:focus,
.btn-danger:active,
.btn-danger.active,
.btn-danger.disabled,
.btn-danger[disabled],
.btn-danger:hover{
  background-image: none;
  color: #DE4D5F !important;
  border-color: #DE4D5F !important;
}

.policy-manager span.policy-title{
  font-size: 18px;
  line-height: 20px;
}

.formHeader,.search-header {
  border-color: #0B7FAD;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.dropdown-submenu:hover > a,
.dropdown-submenu:focus > a {
  background-color: #0B7FAD;
  background-image: none;
}

.nav-tabs > .active > a,
.nav-tabs > .active > a:focus,
.nav-tabs > .active > a:active,
.nav-tabs > .active > a:hover {
  border-bottom-color: #0B7FAD;
}

.pagination ul > li.active > a,
.pagination ul > li.active > a:hover,
.pagination ul > li.active > a:focus,
.pagination ul > li.active > span {
  background: #0B7FAD;
  border-color: #0B7FAD;
  color: #fff;
  font-weight: 700;
}

.pagination ul > li > a:hover {
  background: none;
  border-color: #0B7FAD;
  color: #444;
}

.toggle-xa .toggle-slide .toggle-on {
  background: #0B7FAD;
  color: #fff;
  background-image: none;
  background-color:#0B7FAD;
}

.btn-group.open .btn-primary.dropdown-toggle {
  background-color:#2996ba;
}

.ranger-nav {
    padding: 0;
}

/*New css after update bootstrap*/

.form-actions{
  padding: 19px 20px 20px;
  margin-top: 20px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border-top: 1px solid #e5e5e5;
}

.VS-search .VS-search-box{
  min-height: 36px;
    border: 1px solid #ccc;
    box-shadow: none;
}

.VS-search .VS-search-inner{
  margin: 4px 22px;
}

.VS-search .VS-icon-search{
      width: 14px;
    height: 14px;
}

.no-padding-l{
  padding-left: 0 !important;
}

.VS-search .search_input input{
  margin-top: 0;
    height: auto;
}

.VS-search .VS-search-box{
  border-radius: 20px;
}

.VS-search .VS-icon-cancel{
  top: 12px;
}

.font-13{
  font-size: 13px;
  color: #444;
}

.font-14{
  font-size: 14px;
    color: #444;
}

.backgrid{
  font-size: 14px;
}

.form-horizontal .form-group{
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

ul.form-control {
    list-style: none;
    border: none;
}

.form-group a.select2-choice.select2-default {
    display: block;
    width: 100%;
    height: calc(1.5em + 0.75rem + 2px);
    padding: 0.375rem 0.75rem;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.form-group .select2-container .select2-choice .select2-arrow {
  padding-top: 3px;
}

.form-group .select2-container .select2-choice {
  font-size: 14px;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  border: 1px solid #ced4da;
  line-height: 1.5;
}

.select2-container .select2-choice abbr {
  top: 50%;
    margin-top: -6px;
}

.select2-container.form-control {
    padding: 0;
    border: 0;
    box-shadow: none;
}

span.form-control {
    padding: 0;
    border: none;
    height: auto;
    width: auto;
}

span.form-control > input {
    width: 100%;
    height: calc(1.5em + 0.75rem + 2px);
    padding: 0.375rem 0.75rem;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.form-horizontal .control-label {
    width: auto;
    text-align: right;
    word-break: break-word;
    font-size: 14px;
}

.security-panel {
    width: 100%;
    display: table;
}
.security-sidebar,
.security-details {
    display: table-cell;
}
.security-details {
    float: right;
}
.m-b-xs{
  margin-bottom: 4px !important;
}

.sidebar-list ~ section.container-fluid {
    display: inline-block;
    width: 78%;
    float: right;
    padding-left: 20px;
    transition: 0.4s all;
}
.sidebar-list.collapsed ~ section.container-fluid {
    width: calc(100% - 35px);
    padding-left: 0;
}

.sidebar-list.collapsed{
    left: 0px;
}

.r_breadcrumbs {
    padding-top: 5;
    margin-bottom: 8px;
}

a.nav-link.dropdown-toggle.usermenu._allowNav ~ .dropdown-menu {
    right: 0;
    left: auto;
}

.sidebar-list {
    display: inline-block;
    float: left;
    max-width: 350px;
    overflow-x:visible;
    overflow-y:visible;
    width: 22%;
    background-color:#303d48;
    position: fixed;
    height: calc(100vh - 43px);
    -webkit-transition: 0.4s all;
    -moz-transition: 0.4s all;
    -o-transition: 0.4s all;
    transition: 0.4s all;
}

.page-manager-sidebar h5{
  margin: 0;
  color: #979797;
  text-transform: uppercase;
  font-size: 16px;
}

.list-header > h5 {
    display: inline-block;
    font-weight: 400;
    line-height: 2.2;
}

.list-header > h5 {
    float: none;
}

.no-chevron{
  padding: 0px 8px;
}

.no-chevron::after {
    content: none;
}

.sidebar-toggler{
  height: 0;
  top: -55px;
  position: relative;
  background-color: #303d48;
  color: white;
  text-align: right;
}

.sidebar-list ~ .container-fluid .r_breadcrumbs {
    padding-top: 9px;
    margin-top: 28px;
}

.select2-container .select2-choice{
  height: 30px;
  line-height: 30px;
}

.control-group {
    margin-bottom: 10px;
}

.zoneEmptyMsg > .select2-container{
  display: inline-block !important;
}

.navbar .nav > li > .dropdown-menu:before {
    content: '';
    display: inline-block;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-bottom: 7px solid #ffffff;
    border-bottom-color: #ffffff;
    position: absolute;
    top: -7px;
    left: 9px;
}

#main-navbar > li > .dropdown-menu:before{
    right: 9px;
    left: auto;
}

.badge{
  padding: 4px 6px;
  font-size: 12px;
  margin-bottom: 2px;
}

.nav-tabs {
    margin-bottom: 0;
    border-bottom: none;
}
.nav-tabs .nav-link {
  border: 1px solid transparent;
  background: #ddd;
  margin: 5px 5px 0;
  border-top-right-radius: 6px;
  border-top-left-radius: 6px;
  color: #222;
}
.nav-tabs .nav-link.active{
  background: #fff;
  border: 1px solid #d6d6d6;
  border-bottom: 1px solid transparent;
}
.nav-tabs > .active > a,
.nav-tabs > .active > a:focus,
.nav-tabs > .active > a:active,
.nav-tabs > .active > a:hover {
    border-bottom: none;
    background-color: white;
}

.m-b-sm{
  margin-bottom: 8px !important;
}

.position-relative .table th, .table td{
  padding: 8px;
  font-size: 13px;
}

.position-relative .table th{
  border: 1px solid #dee2e6;
  border-bottom: transparent;
  font-size: 13px;
}

.position-relative .table-striped tbody tr:nth-of-type(odd) {
    background-color: #f9f9f9;
}

.position-relative{
  margin-bottom: 20px;
}

.VS-search .search_facet input{
  font-size: 12px;
  line-height: inherit;
  height: auto;
}

 .btn-sm{
  font-size: 13px !important;
 }

.form-group.field-isEnabled .form-control{
    border: none;
}

.form-group.field-policyPriority .form-control{
    border: none;
}

.form-group.field-isAuditEnabled .form-control{
    border: none;
}

.form-control.rosource-boder {
  border: none;
}

.form-control.rosource-boder-path {
  border: none;
  margin-left: -7px;
}

/*For Sidemenu Hover/basic subitem styles*/
.service-list-container > div {
    height: 28px;
}

/*For reports sidemenu*/
.listData {
    padding-bottom: 5px;
}

.form-control{
  font-size: 14px !important;
}

.dropdown-toggle{
  font-size:13px;
}

.select2-container .select2-choice > .select2-chosen {
    font-size: 13px;
}

/*.select2-container.form-control,
.select2-choice{
    width: 100% !important;
}*/

.btn-group .select2-container.form-control a {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

button.btn.btn-secondary.dropdown-toggle {
    margin-right: -1px;
    width: 30%;
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
    height: 35px;
}

.search-header{
  margin-bottom:0;
}

.select2-container-multi .select2-choices .select2-search-choice {
    margin: 5px 3px 3px 5px;
}

.form-actions button:nth-child(n) {
    margin-left: 10px;
}
.form-actions button:first-child {
    margin-left: 0;
}

.zone-icon{
  font-size: 11px;
  margin-right: 1px;
}

.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
    border-color: transparent !important;
}

.m-b-sm{
  margin-bottom: 10px !important;
}

/*.form-group.field-policyPriority .policy-priority label,
.form-group.field-isEnabled .policy-enable-disable label {
    display: none;
}
*/
.ranger-policy .form-group.field-isEnabled .policy-enable-disable{
    margin-left: 38vw;
    margin-top: -69px;
    width: 100px
}

.expanded-contant .form-group.field-isEnabled .policy-enable-disable {
  margin-left: 30vw;
}

.ranger-policy .form-group.field-policyPriority .policy-priority{
    margin-left: 45vw;
    margin-top: -73px;
    width: 100px
}
.expanded-contant .form-group.field-policyPriority .policy-priority {
  margin-left: 37vw;
}

.field-path .form-control.rosource-boder
.field-relativepath .form-control.rosource-boder{
    width: 100%;
    margin: 0;
    padding-left: 0;
    padding-right: 0;
}

ul.tagit{
    width:110%;
    float:left;
}

.form-group.field-isAuditEnabled .form-control {
    padding: 0;
}

.recursive-toggle-hdfs-1 {
    margin-top: 8px;
}

.badge-green {
  color: #fff;
  background-color : #9bb921;
}

.badge-ranger {
  color: #fff;
  background-color: #0B7FAD;
}

.badge-yellow {
  color: #fff;
  background-color: #f3a139;
}

.addbtngroup .select2-container{
  width: 300px !important;
  display: inline-block;
}

.dropdown-menu a:hover{
  color: #ffffff !important;
    background-color: #0B7FAD;
}

.editable-checklist > div {
    text-align: left;
    float: left;
    clear: both;
}
.editable-checklist label span {
    margin-left: 5px;
}
.btn[disabled] {
    border-color: #2996ba;
    cursor: not-allowed !important;
    outline: 0;
    box-shadow: none;
    opacity: 0.65;
}
.input-group-prepend ~ .form-control {
    position: relative;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    width: 1% !important;
    min-width: 0;
    margin-bottom: 0;
}

.input-group-prepend > button.btn.btn-secondary.dropdown-toggle{
  width:auto;
    margin:auto;
}

.ranger-policy.hide-unnecessary-labels .field-isEnabled label, 
.ranger-policy.hide-unnecessary-labels .field-policyPriority label {
    display: none;
}

.component-list-item .fa-large {
    font-size: 16px;
}

[fieldclass="resorces-css"] .select2-container-multi {
    margin-top: -35px;
}


.customTextFiledIcon {
    position: absolute;
    right: -5px;
    top: -3px;
}

/*alignment problems due to data error divs being added*/
[data-error] {
    height: 13px;
}

.customTextFiledIcon {
    position: absolute;
    right: -5px;
    top: -3px;
}

/*alignment problems due to data error divs being added*/
[data-error] {
    height: 13px;
}

.sameLevelDropdown{
    position: relative;
    top: -2px;
    left: 0px;
}

/*today's css*/

.field-policyPriority span[data-editor] {
    position: absolute;
}
.customTextFiledIcon {
    top: 3px;
}

.form-group.field-isEnabled .help-block,
.form-group.field-policyPriority .help-block {
    display: none;
}

.recursive-toggle-hdfs-1 {
    margin-left: 380px;
}

.expanded-contant .recursive-toggle-hdfs-1 {
  margin-left: 310px;
}

.form-group.field-policyPriority .field-policyPriority .control-label {
    display: none;
}
ul.tagit input[type="text"] {
    width: 100%;
}
.ui-widget.ui-widget-content {
    border-width: 0;
}
ul.tagit li.tagit-new {
    padding: .25em 4px .25em 0;
    border: 1px solid #ced4da;
}
ul.tagit li.tagit-new {
    border: none;
    width: 100%;
}
.ui-widget.ui-widget-content {
    border-width: 0;
    top: -7px;
    position: relative;
    border-radius: 0.25rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    border: 1px solid #ced4da;
    width: 110%;
    margin-bottom: -7px;
}
.ui-datepicker.ui-widget.ui-widget-content {
  width: 20%;
}
/*.field-sameLevel10 .select2-container-multi .select2-choices,
.field-sameLevel30table .select2-container-multi .select2-choices,
.field-sameLevel20database .select2-container-multi .select2-choices,
.field-policyLabels .select2-container-multi .select2-choices {
    float: left;
    width:100%;
}*/

ul.tagit input[type="text"]{
  padding-right:0;
}

.input-group-addon {
    padding: 6px 7px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    color: #555;
    text-align: center;
    background-color: #eee;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.range-time-piker {
    min-width: 215px;
    background: #fff;
    cursor: pointer;
    padding: 5px 6px;
    border: 1px solid #ccc;
    width: 100%;
}

.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle{
  color: #fff !important;
    background-color: #2996ba !important;
    border-color: #2996ba !important;
}

.popover{
  font-size: inherit !important;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  border-radius: 5px !important;
  z-index: 1010 !important;
  -webkit-font-smoothing: antialiased;
}
.editable-checklist label{
  margin-bottom: 5px !important;
}
.popover-header{
  border-top-left-radius: 5px !important;
  border-top-right-radius: 5px !important;
  padding: 8px 14px !important;
  font-size: 14px !important;
  font-weight: normal !important;
}
.popover-body {
    padding: 9px 14px !important;
}

.drop-font .dropdown-item{
  font-size: 13px;
  padding: 4px 20px;
}

/*.field-sameLevel30table .select2-container-multi,
.field-sameLevel20database .select2-container-multi,
.form-group.field-sameLevel10 .select2-container-multi {
    padding: 0;
    margin: 0;
    display: inline-block;
}*/

.form-control.rosource-boder {
    border: none;
}

.policy-form .has-error p[data-error] {
    position: relative;
    clear: both;
    margin-bottom: 0;
}
.policy-form .form-control.rosource-boder {
    padding: 0;
    margin: 0;
}
.policy-form .form-control.rosource-boder .select2-container-multi {
    width: 100% !important;
    /*position: absolute;*/
}

.policy-form .form-control.select2-container-multi {
   width: 100% !important;
   display: table !important;
}

.form-group.has-error .select2-choices {
  border-color: #dc3545 !important;
}

.form-group.has-error .ui-widget.ui-widget-content {
    border-color: #b85355;
}
.form-group.has-error .ui-widget.ui-widget-content {
  border-color: #b85355;
}

.policy-form .form-control.select2-container.select2-container-multi 
.form-control.rosource-boder .policy-form .select2-container-multi {
  width: 100% !important;
  position: absolute;
  left: 15px;
}

.policy-form [fieldclass="resorces-with-label-css"] > .control-label{
  top:-30px;
}

.policy-form [fieldclass="resorces-with-label-css"]{
  margin-bottom:30px;
}

.policy-form .sameLevelDropdown {
    position: absolute;
    top: -30px;
}

.policy-form .form-control.rosource-boder .select2-container-multi {
    width: 100% !important;
    float: left;
}
.policy-form [fieldclass="resorces-css"]  {
    margin-top: 0;
}

.include-toggle {
    margin-left: 23vw;
}
.policy-form [fieldclass="resorces-css"]{
  margin-bottom:40px;
}

.policy-form [fieldclass="resorces-css"] .select2-container-multi{
  margin-top:0;
}
.policy-form [fieldclass="resorces-css"] .control-label{
  top: -30px;
}

.ranger-policy .form-group.field-isEnabled > label,
.ranger-policy .form-group.field-policyPriority > label {
  display: none;
}

.ranger-policy .form-group.field-name {
    margin-bottom: 0;
}

.select2-container-multi .select2-choices {
    border: 1px solid #ced4da !important;
    border-radius: 0.25rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.policy-form .form-group.field-path[fieldclass="resorces-with-label-css"] .ui-widget.ui-widget-content {
    margin-top: -30px;
}

.policy-form .form-group.field-relativepath[fieldclass="resorces-with-label-css"] .ui-widget.ui-widget-content {
    margin-top: -30px;
}

.form-group.field-path[fieldclass="resorces-with-label-css"]  .recursive-toggle-hdfs-1 {
    margin-left: 23.4vw;
    margin-top: -20px;
}

.form-group.field-relativepath[fieldclass="resorces-with-label-css"]  .recursive-toggle-hdfs-1 {
    margin-left: 23.4vw;
    margin-top: -20px;
}

.expanded-contant .form-group.field-path[fieldclass="resorces-with-label-css"]  .recursive-toggle-hdfs-1 {
    margin-left: 18.4vw;
}

.expanded-contant .form-group.field-relativepath[fieldclass="resorces-with-label-css"]  .recursive-toggle-hdfs-1 {
    margin-left: 18.4vw;
}

.form-group.field-path[fieldclass="resorces-with-label-css"]{
  margin-bottom:-20px;
}

.form-group.field-relativepath[fieldclass="resorces-with-label-css"]{
  margin-bottom:-20px;
}

.form-group.field-path[fieldclass="resorces-with-label-css"] .form-control.rosource-boder-path{
      margin-bottom: -10px;
}

.form-group.field-relativepath[fieldclass="resorces-with-label-css"] .form-control.rosource-boder-path{
      margin-bottom: -10px;
}

.form-group.field-path[fieldclass="resorces-with-label-css"] {
    margin-bottom: 10px;
}

.form-group.field-relativepath[fieldclass="resorces-with-label-css"] {
    margin-bottom: 10px;
}

.has-error .form-control {
    border-color: #dc3545 !important;
}

.has-error .textFiledInputPadding {
    border-color: #dc3545;
}

.has-error p[data-error]{
  color:red;
}

.has-error .select2-container-multi .select2-choices {
    border-color: #dc3545 !important;
}

input.textFiledInputPadding:disabled {
    cursor: not-allowed;
    background-color: #e9ecef;
    opacity: 1;
}

.zoneResources-form .sameLevelDropdown {
  left : -25px;
}

.importSelect2 .select2-container {
    display: inline-block;
}

.editable-container.editable-popup {
    max-width: 750px !important;
}

.modal-body {
  overflow-y: auto;
}

.popover-header .close{
  position: relative;
  bottom: 6px;
  cursor: pointer;
}

.recursive-toggle .toggle-off {
  margin-left: -12px !important;
}

/*@media (min-width: 2000px){
  .expanded-contant .include-toggle{
    margin-left:400px;
  }
  .expanded-contant .recursive-toggle-2{
    margin-left:30vw;
  }
  .recursive-toggle-2 {
    margin-left:600px;
  }
}

@media (min-width: 2500px){
  .expanded-contant .include-toggle{
    margin-left:500px;
  }
  .expanded-contant .recursive-toggle-2{
    margin-left:30vw;
  }
  .recursive-toggle-2 {
    margin-left:700px;
  }
}

@media (min-width: 3000px){
  .expanded-contant .include-toggle{
    margin-left:550px;
  }
  .expanded-contant .recursive-toggle-2{
    margin-left:30vw;
  }
  .recursive-toggle-2 {
    margin-left:750px;
  }
}*/

.audit-logs .backgrid th:not(.renderable), .audit-logs .backgrid td:not(.renderable){
    display: none;
}

#serviceDetails tbody {
  background-color: white;
}

#policyDetails {
    background-color: white;
}

.report-table .subgrid-custom-cell{
  display: table-cell!important;
}

.report-table .backgrid-subgrid-custom-row th:not(.renderable), .report-table .backgrid-subgrid-custom-row td:not(.renderable){
  display: table-cell!important;
}

.zoneResources-form .select2-container {
  float: left;
}

.zoneResources-form .form-group.field-path[fieldclass="resorces-with-label-css"] .include-toggle {
  left: -7vw;
  top: 7vh;
}

.zoneResources-form .form-horizontal .form-group{
  float:none;
}

.zoneResources-form .control-label{
  padding-top: 1px;
}

.zoneResources-form .recursive-toggle-2 {
  left: -7vw;
  position: relative;
}

.width-75 {
  width: 75px
}

.width-195 {
  width: 195px
}

.min-width-150 {
  min-width: 150px
}

.zoneResources-form .form-group.field-path[fieldclass="resorces-with-label-css"] .recursive-toggle-hdfs-1 {
  margin-left: 14vw;
  margin-top: 0px;
}

.zoneResources-form .include-toggle {
  left: -7vw;
}

.zoneResources-form .form-group.field-path[fieldclass="resorces-with-label-css"] .include-toggle {
  left: -7vw;
  top: 2vw;
}

.select2-text-hidden {
  display:none !important;
}

.resourcesFilter {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 8px;
}

.zoneResources-form [fieldclass="resorces-with-label-css"] > .control-label{
  top:10px;
}

.zoneResources-form [fieldclass="resorces-with-label-css"] .include-toggle{
  margin-top: 0px;
}

.zoneResources-form [fieldclass="resorces-css"] .include-toggle{
  top: 0px;
}

.zoneResources-form [fieldclass="resorces-with-label-css"] .recursive-toggle-1{
  margin-left: 16vw;
}

@media  screen and (max-width: 1366px) {
  .zoneResources-form [fieldclass="resorces-css"] .include-toggle{
    margin-left: 28vw;
  }

  .zoneResources-form [fieldclass="resorces-with-label-css"] .include-toggle{
    margin-left: 28vw;
  }
  .zoneResources-form .form-group.field-path[fieldclass="resorces-with-label-css"] .recursive-toggle-hdfs-1{
    margin-left: 21vw;
  }
  .zoneResources-form [fieldclass="resorces-with-label-css"] .recursive-toggle-1 {
    margin-left: 21vw;
  }
  .zoneResources-form [fieldclass="resorces-with-label-css"] .recursive-toggle-2 {
    left:0px;
  }
  .zoneResources-form [fieldclass="resorces-css"] .recursive-toggle-2 {
    left:0px;
  }
}

.clearBoth {
  clear: both;
}


.latestResponse {
  width: 29%;
  display: inline-block;
  text-align: right;
  top: -10px;
  position: relative;
}

.headerBreadcrumbs {
  position: sticky;
  top: 42px;
  z-index: 10;
  background: #eeeeee;
  width: 100%;
  display: inline-block;
}

.js-formInput .policy-resources .select2-container {
  width: 274px !important;
}
.form-resources.policy-resources .form-control.rosource-boder {
  padding: 0px !important;
  height: 100%;
}
.form-resources.policy-resources .sameLevelDropdown {
  margin-right: 31px !important;
  margin-left: -150px !important;
}
.show-all-resource {
  margin-top: -50px;
}
.policy-resources .form-group[fieldclass="resorces-css"] {
  margin-bottom: 0px !important;
}
.wrap.position-relative.additional-resource{
  padding: 20px 20px 0px 20px !important;
}
.excludeRecursiveSupport {
  position: absolute;
  top: 30px;
}