/* Additional settings*/
main{
    margin-bottom: 0px !important;
}

.chip.chip-tag1{
    background-color: #698bb5 !important;
}

.chip.col.active-tag{
    background-color: #698BB5 !important;
}

.chip.chip-tag1.card-stage.status-live{
    background-color: #5C9897 !important;
}

.container.main-container{
    max-width: unset !important;
    width: 98% !important;
}

footer{
    max-height: 20px !important;
}

.side-nav{
    background-color: #f1f4f8 !important;
}


.chip.chip-tag1.green{
    background-color: #3e4145 !important;
    color: white !important;
}

.card-stage[_ngcontent-c3] {
    margin: 0 !important;
}

.chip[_ngcontent-c3] {
    line-height: 35px !important;
    height: 35px !important;
}

.chip{
    margin: 0px !important;
}

.card[_ngcontent-c3] {
    padding-bottom: 100% !important; 
    height: 0px !important;
    align-content: center;
}

.card-tags-inner[_ngcontent-c3] {
    padding: 0px !important;
    margin: 0px !important;
}

.card{
        box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0.14) !important;
        border: 1px solid #dee4e6 !important;
}

header nav .nav-wrapper a.active {
    border-bottom: 3px solid #a6bf32 !important;
}

/* Segment section with space between*/
div.side-nav[_ngcontent-c4] li[_ngcontent-c4] > div.row[_ngcontent-c4] {
    gap: 10px !important;
}
/* Square Boxes*/
@media only screen and (min-width: 1700px) {
    .row .col.xl4 {
        width: 25% !important;
    }
}

@media only screen and (min-width: 2100px) {
    .row .col.xl4 {
        width: 20% !important;
    }
}

@media only screen and (min-width: 2700px) {
    .row .col.xl4 {
        width: 16.66666% !important;
    }
}

@media only screen and (min-width: 993px) {
    .row .col.l6 {
        height: auto !important;
    }
}

/*Mav in bold*/
header nav ul li a{
    font-weight: 600 !important;
}

/* API Page*/
.card-title[_ngcontent-c3], 
.card-version[_ngcontent-c3] {
     white-space: break-spaces !important; 
     padding-left: 0px !important;
}



/* Finstar custom styles*/
*,
:after,
:before {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
}


@media (min-width: 1800px) {
    .dots {
        transform: scale(3.1) !important;
    }

    .dotted-background {
        position: absolute;
        background-repeat: no-repeat;
        background-size: cover;
        overflow: hidden;
        bottom: 15vh;
        left: 50%;
        width: 50%;
        max-width: 950px;
        height: 40vh;
        z-index: -1;
    }
}

@media (min-width: 1600px) {

    .secondPage,
    .firstPage {
        height: 100vh !important;
    }

    .resources,
    .api-steps,
    .firstPage {
        flex-direction: row !important;
    }

    .firstPage,
    .containerOne {
        max-width: 1200px !important;
    }

    .firstPage {
        padding-top: 120px !important;
    }

    #arrow-down {
        height: 60px !important;
        width: 60px !important;
    }

    .intro .titleh1,
    .intro .titleh2 {
        font-size: 48px !important;
    }

    .SeventySpace,
    .FourtySpace {
        display: none;
    }

    .api-info .titleh2 {
        font-size: 34px !important;
    }

    .resource-content .titleh3 {
        font-size: 24px !important;
    }

    .api-info .step p,
    .resource-content p {
        font-size: 15px !important;
    }

    .api-info {
        padding-top: 60px !important;
        padding-bottom: 50px !important;
        text-align: left !important;
    }

    .resource .titleh3 {
        padding-bottom: 15px !important;
    }

    .intro-image {
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
        width: 50% !important;
        position: relative !important;
        max-height: 800px !important;
    }

    .intro-image img {
        object-fit: cover !important;
        width: 100vh;
        height: 90vh;
        z-index: 1;
    }

    hr {
        display: none;
    }

    .twentySpace {
        height: 20vh;
    }

    .tenSpace {
        height: 10vh;
    }

    .resource-content {
        height: 200px !important;
    }

    .resource-content {
        padding: 40px !important;
    }

    .resourceButton {
        padding: 15px 30px !important;
        font-size: 18px !important;
        border-width: 2px !important;
    }
}


@media(min-width: 1023px) and (max-width: 1600px) {

    .twentySpace{
        height: 0px !important;
    }

    .containerOne{
        padding-bottom: 5% !important;
    }

   
    .firstPage {
        height: 100vh !important;
    }

    .secondPage{
        height: 85vh !important;
     }

    .resources,
    .api-steps,
    .firstPage {
        flex-direction: row !important;
    }

    .firstPage,
    .containerOne {
        max-width: 90% !important;
    }

    .secondPage > .containerOne{
        padding-bottom: 0px !important;/*...............*/
    }

    .firstPage {
        padding-top: 60px !important;
    }

    #arrow-down {
        height: 50px !important;
        width: 50px !important;
    }

    .intro .titleh1,
    .intro .titleh2 {
        font-size: 40px !important;
    }

    .SeventySpace,
    .FourtySpace {
        display: none;
    }


    .api-info {
        text-align: left !important;
    }

    .api-info .titleh2 {
        font-size: 22px !important;
        font-weight: bolder;
    }

    .api-info .step p,
    .resource-content p {
        font-size: 13px !important;
    }

    .intro-image {
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
        width: 50% !important;
        position: relative !important;
        max-height: 800px !important
    }

    .intro-image img {
        object-fit: cover !important;
        width: 100vh;
        height: 75vh;
        z-index: 1;
    }

    hr {
        display: none;
    }

    .twentySpace {
        height: 20vh;
    }

    .tenSpace {
        height: 8vh;
    }

    .resource-content {
        padding-bottom: 5px !important;
    }
}


body {
    font-family: Arial, sans-serif;
    margin: 0px;
    padding: 0;
    color: #4b4b4b;
    overflow-x: hidden;
}

.SeventySpace {
    height: 70px;
}

.FourtySpace {
    height: 40px;
}


.containerOne {
    display: flex;
    flex-direction: column;
    width: 100%;

    margin-right: auto;
    margin-left: auto;
}

.firstPage {
    display: flex;
    flex-direction: column;
    width: 100%;

    margin-right: auto;
    margin-left: auto;
}

@media (min-width: 768px) {
    .firstPage,
    .containerOne {
        max-width: 738px;
    }
}

.row {
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

.intro {
    display: flex;
    flex-direction: column;
    position: relative;
    padding-left: 15px;
    padding-right: 15px;
    align-items: center;
    width: 100%;
    padding-top: 100px;
    padding-bottom: 40px;
}

.intro-text {
    max-width: 100%;
}

.intro .titleh1,
.intro .titleh2 {
    margin: 0;
    font-size: 34px;
    line-height: 1.2;
    font-weight: 700;
}

.intro .titleh2 {
    color: #c2ccd1;
}

.intro .titleh1 {
    color: #454f55;
}

.FinstarAtEyeLevel {
    width: 100%;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;
    margin-top: 70px;
    padding-bottom: 40px;

    font-size: 20px;
    font-weight: 700;
    color: #454f55;
}

@media (min-width: 1023px) {
    .FinstarAtEyeLevel {
        display: none;
    }
}

.levelText {
    color: #a6c032;
}

.intro-image {
    width: 100%;
    max-height: 300px;
    overflow: hidden;
}

.intro-image img {
    width: 80%;
}


.dotted-background {
    position: absolute;
    background-repeat: no-repeat;
    background-size: cover;
    overflow: hidden;
    bottom: 15vh;
    left: 50%;
    width: 100%;
    height: 40vh;
    z-index: -1;

}

.dots {
    transform: scale(1.463);
}

#arrow-down {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    margin-top: 40px;

    text-decoration: none;
    background-color: #a1bd2a;
    border-style: solid;
    color: white;
    transition: background-color 0.3s, color 0.3s;
}

#arrow-down:hover {
        background-color: white;
        color: #a1bd2a;
        border-color: #a1bd2a;
}

.api-info {
    background-color: #f1f4f8;
    padding-top: 2%;
    text-align: center;
}

.api-info .titleh2 {
    font-size: 24px;
    margin-bottom: 4%;
}

.api-steps {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

hr.solid {
    border-top: 2px solid rgb(144, 144, 144)4f8;
}

.step {
    flex: 1;
}

.step .titleh4 {
    color: #4b4b4b;
    font-weight: bolder;
    padding-bottom: 3%;
}

.step p {
    color: #4b4b4b;
}

.resources {
    display: flex;
    flex-direction: column;
    align-self: center;
    width: 100%;
}

.resource {
    flex: 1;
    background-color: #ffffff;
    padding-bottom: 40px;
    max-width: 500px;
}

.resource-content {
    height: 130px;
    background-color: #a1bd2a;
    padding: 20px;
    width: 92%;
}

.resource .titleh3 {
    color: #4b4b4b;
    color: white;
    padding-bottom: 5% !important;
    font-weight: bolder;
    font-size: 18px;
}

.resource p {
    color: #4b4b4b;
    color: rgba(255, 255, 255, 0.88)
}

.resourceButton {
    display: block;
    margin-top: 20px;
    padding: 10px 20px;
    border-radius: 25px;
    border-width: 2px;
    border-style: solid;
    max-width: max-content;

    border-color: #4b4b4b;
    color: #4b4b4b;
    text-decoration: none;
    transition: background-color 0.3s, color 0.3s;
}

.resourceButton:hover{
        background-color: #4b4b4b;
        color: #ffffff;
}

footer {
    background-color: #000000;
    color: #ffffff;
    padding: 10px 20px;
}

footer p {
    margin: 0;
}

footer nav ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 10px;
}

footer nav a {
    text-decoration: none;
    color: #ffffff;
}

/*NDIGIT Styles*/
.teaser-icon {
    font-size: 64px;
}
/* ICONS */
@font-face {
    font-family: 'icomoon';
    src:
        url('../public/assets/fonts/icomoon.ttf') format('truetype'),
        url('../public/assets/fonts/icomoon.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

[class^="ico-"], [class*=" ico-"] {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !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;
}

.ico-telescope:before {
    content: "\e900";
}

.ico-lab:before {
    content: "\e901";
}

.ico-box:before {
    content: "\e902";
}

.ico-files:before {
    content: "\e903";
}

.ico-grid:before {
    content: "\e904";
}

.ico-equalizer:before {
    content: "\e905";
}

.ico-stats:before {
    content: "\e906";
}

.fade-text {
    -webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */
       -moz-animation: fadein 2s; /* Firefox < 16 */
        -ms-animation: fadein 2s; /* Internet Explorer */
         -o-animation: fadein 2s; /* Opera < 12.1 */
            animation: fadein 2s;
}
@keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Firefox < 16 */
@-moz-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Safari, Chrome and Opera > 12.1 */
@-webkit-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Internet Explorer */
@-ms-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Opera < 12.1 */
@-o-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.api-steps, .resources {
    display: flex;
    flex-direction: column;
    gap: 40px; /* Adjust the gap between the steps/resources as needed */
}

.step, .resource {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/*Custom NDGIT styles (menu and breadcrumbs) */

:root {
    --primary: #698BB5;
    --secondary: #698BB5;
    --primary-accent: #A6C032 /* Tabs Text Color - Guides Tab*/;
    --secondary-accent: #A6C032;
    --team-black: #000;
    --negative: #BE2223;
    --group-1: #343434;
    --group-1-dark: #012980;
    --group-1-medium: #698BB5 /* Icon Background Color- Guides Tab/ */;
    --group-2: #343434;
    --group-2-dark:  #007034;
    --group-2-medium: #698BB5;
}


body {
    font: 15px/22.5px Verdana, sans-serif !important;
}

h1, h2, a.breadcrumb, table tr th, .side-nav-item a {
    font-family: Verdana, sans-serif !important;
    font-weight: 400 !important;
}

a {
    color: var(--primary);
}
h1, h2, h3 {
    color: var(--team-black);
}

.side-nav li.active {
    border-right: 2px solid var(--primary-accent) !important;
}

.side-nav li.active > div > a {
    color: var(--primary-accent) !important;
}

.side-nav li.active i {
    color: var(--primary-accent) !important;
}

.side-nav-item {
    padding-bottom: 10px;
}

.side-nav h2 {
    padding-top: 20px;
    padding-bottom: 10px;
  }

.side-nav ul li a {
    line-height: 30px;
}

.nav-wrapper .brand-logo-link .brand-logo {
    max-height: 40px;
}

a.breadcrumb, .breadcrumb::before {
    color: var(--team-black) !important;
}

.tabs-wraper ul#tabs li a:not(.active) {
    color: var(--team-black);
}

.tabs-wraper ul#tabs li a.active {
    color: var(--primary-accent);
}

.tabs-wraper ul#tabs li.indicator {
    background: var(--primary-accent);
}

.ui-paginator-bottom {
    margin-top: 15px;
}

ul li a.toc-h2, .toc-h3 {
    color: var(--team-black) !important;
}

input:focus:not([readonly]) + label {
    color: var(--team-black) !important;
}

input:focus:not([readonly]), textarea:focus:not([readonly]) {
    border-bottom: 1px solid var(--primary) !important;
    box-shadow: none !important;
}

input[type="text"].valid {
    border-bottom: 1px solid var(--primary) !important;
    box-shadow: none !important;
}

label.active2 {
    color: var(--team-black) !important;
}

.dropdown-content li > a, .dropdown-content li > span {
    color: var(--team-black) !important;
}

.chips.focus {
    border-bottom: 1px solid var(--primary);
    box-shadow: 0 1px 0 0 var(--primary);
}

form input[type] {
    margin-bottom: 25px;
}

form input.ng-invalid {
    border-bottom: 1px solid var(--negative);
}

[type="checkbox"]:checked + label::before {
    border-right-color: var(--primary);
    border-bottom-color: var(--primary);
}


[type="radio"]:checked + label::after {
    border-color: var(--primary);
    background-color: var(--primary);
}

.ui-datatable thead th {
    color: var(--team-black);
}

button.btn:not(.btn-flat), div.btn, a.btn-primary, .swagger-ui button.btn.authorize {
    background-color: var(--team-black);
}

form button.btn:hover, div.btn:hover, a.btn-primary:hover,.swagger-ui button.btn.authorize:hover {
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
    background-color: var(--team-black);
}

.switch label input[type="checkbox"]:checked + .lever::after {
    background-color: var(--primary) !important;
}
.switch label input[type="checkbox"]:checked + .lever {
    background-color: #599bff;;
}

.create-btn, .refresh-btn, .create-btn:active, .refresh-btn:active{
    background-color: var(--primary);
}

.create-btn:hover, .refresh-btn:hover {
    background-color: var(--primary);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

.delete-btn, .remove-btn {
    background-color: var(--negative);
}

.delete-btn:hover, .remove-btn:hover {
    background-color: var(--negative);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

.edit-btn, .show-btn, .item-add-btn, .member-add-btn, .details-btn {
    background-color: var(--team-black);
}

.details-btn:hover {
    background-color: var(--team-black);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

.edit-btn:hover, .show-btn:hover, .item-add-btn:hover, .member-add-btn:hover {
    background-color: var(--team-black);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

 button.btn.ladda-button:disabled {
    background-color:  var(--team-black) !important;
}

.input-field .prefix.active {
    color: var(--primary);
}

header nav ul li a, header nav .menu-link {
    text-transform: capitalize;
    font-size: 1rem;
    font-weight: 400;
    line-height: 63px;
}

header nav .nav-wrapper a.active {
    background: inherit;
    border-bottom: 3px solid black;
}

header nav ul li:last-child a.active {
    text-decoration: none;
    color: #000000;
}

header nav div > ul > li:nth-child(2) a {
    text-transform: none;
}

header nav .nav-wrapper i {
    height: 61px;
    line-height: 61px;
}

header nav ul.dropdown-content {
    top: 50px !important;
}

header nav ul > li > a {
    color: var(--team-black) !important;
}

header nav .nav-wrapper  .collapsible-body li a{
    text-transform: none;
    color: rgb(128, 128, 128) !important;
}

.tabs-wraper ul#tabs li a.active {
    color: #0066ff;
}

.tabs-wraper ul#tabs li.indicator {
    background: #698BB5;
}

header nav ul li .menu-link.pos1 {
    color: #698BB5;
}

header nav ul li .menu-link.pos2 {
    color: #14405c;
}

header nav ul li .menu-link.pos3 {
    color: #1f6089;
}

header nav ul li .menu-link.pos4 {
    color: #689f38;
}

header nav ul li .menu-link.pos5 {
    color: #009688;
}

header nav ul li .menu-link.pos6 {
    color: #698BB5;
}

header nav ul li .menu-link.pos7 {
    color: #14405c;
}

header nav ul li .menu-link.pos8 {
    color: #1f6089;
}

footer.page-footer {
   background-color: #000 !important;
}

div.wrapper.top-wrapper .kpi1 .card-panel {
    background: var(--group-1) !important;
}

div.wrapper.top-wrapper .kpi2 .card-panel {
    background: var(--group-1-dark) !important;
}

div.wrapper.top-wrapper .kpi3 .card-panel {
    background: var(--group-1-medium) !important;
}

div.wrapper.bottom-wrapper .kpi1 .card-panel {
    background: var(--group-2) !important;
}

div.wrapper.bottom-wrapper .kpi2 .card-panel {
    background: var(--group-2-dark) !important;
}

div.wrapper.bottom-wrapper .kpi3 .card-panel {
    background: var(--group-2-medium) !important;
}

.column.guides .light-green {
    background: var(--group-2-medium) !important;
    color: white !important;
}

.column.guides .red {
    background: var(--group-1-medium) !important;
    color: white !important;
}

.card.card-owner .card-type.chip {
    background: var(--primary-accent) !important;
}

.card.card-demo .card-type.chip {
    background: var(--group-2-medium) !important;
}

.card.card-inactive .card-type.chip {
    background: #7f7f7f !important;
}

.card.card-productive .card-type.chip {
    background: #002575 !important;
}

.card.card-productive {
    background: #DEE2F4 !important;
}

/* Additional settings*/
main{
    margin-bottom: 0px !important;
}

.chip.chip-tag1{
    background-color: #93C2C7 !important;
    color: white !important;
}

.chip.col.active-tag{
    background-color: #698BB5 !important;
}

.chip.chip-tag1.card-stage.status-live{
    background-color: #5C9897 !important;
}

.container.main-container{
    max-width: unset !important;
    width: 98% !important;
}


/*NDIGIT Styles*/
.teaser-icon {
    font-size: 64px;
}
/* ICONS */
@font-face {
    font-family: 'icomoon';
    src:
        url('../public/assets/fonts/icomoon.ttf') format('truetype'),
        url('../public/assets/fonts/icomoon.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

[class^="ico-"], [class*=" ico-"] {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !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;
}

.ico-telescope:before {
    content: "\e900";
}

.ico-lab:before {
    content: "\e901";
}

.ico-box:before {
    content: "\e902";
}

.ico-files:before {
    content: "\e903";
}

.ico-grid:before {
    content: "\e904";
}

.ico-equalizer:before {
    content: "\e905";
}

.ico-stats:before {
    content: "\e906";
}

.fade-text {
    -webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */
       -moz-animation: fadein 2s; /* Firefox < 16 */
        -ms-animation: fadein 2s; /* Internet Explorer */
         -o-animation: fadein 2s; /* Opera < 12.1 */
            animation: fadein 2s;
}
@keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Firefox < 16 */
@-moz-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Safari, Chrome and Opera > 12.1 */
@-webkit-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Internet Explorer */
@-ms-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Opera < 12.1 */
@-o-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}


/*Custom NDGIT styles (menu and breadcrumbs) */

:root {
    --primary: #698BB5;
    --secondary: #698BB5;
    --primary-accent: #A6C032 /* Tabs Text Color - Guides Tab*/;
    --secondary-accent: #A6C032;
    --team-black: #000;
    --negative: #BE2223;
    --group-1: #343434;
    --group-1-dark: #012980;
    --group-1-medium: #698BB5 /* Icon Background Color- Guides Tab/ */;
    --group-2: #343434;
    --group-2-dark:  #007034;
    --group-2-medium: #698BB5;
}


body {
    font: 15px/22.5px Verdana, sans-serif !important;
}

h1, h2, a.breadcrumb, table tr th, .side-nav-item a {
    font-family: Verdana, sans-serif !important;
    font-weight: 400 !important;
}

a {
    color: var(--primary);
}
h1, h2, h3 {
    color: var(--team-black);
}

.side-nav li.active {
    border-right: 2px solid var(--primary-accent) !important;
}

.side-nav li.active > div > a {
    color: var(--primary-accent) !important;
}

.side-nav li.active i {
    color: var(--primary-accent) !important;
}

.side-nav-item {
    padding-bottom: 10px;
}

.side-nav h2 {
    padding-top: 20px;
    padding-bottom: 10px;
  }

.side-nav ul li a {
    line-height: 30px;
}

.nav-wrapper .brand-logo-link .brand-logo {
    max-height: 40px;
}

a.breadcrumb, .breadcrumb::before {
    color: var(--team-black) !important;
}

.tabs-wraper ul#tabs li a:not(.active) {
    color: var(--team-black);
}

.tabs-wraper ul#tabs li a.active {
    color: var(--primary-accent);
}

.tabs-wraper ul#tabs li.indicator {
    background: var(--primary-accent);
}

.ui-paginator-bottom {
    margin-top: 15px;
}

ul li a.toc-h2, .toc-h3 {
    color: var(--team-black) !important;
}

input:focus:not([readonly]) + label {
    color: var(--team-black) !important;
}

input:focus:not([readonly]), textarea:focus:not([readonly]) {
    border-bottom: 1px solid var(--primary) !important;
    box-shadow: none !important;
}

input[type="text"].valid {
    border-bottom: 1px solid var(--primary) !important;
    box-shadow: none !important;
}

label.active2 {
    color: var(--team-black) !important;
}

.dropdown-content li > a, .dropdown-content li > span {
    color: var(--team-black) !important;
}

.chips.focus {
    border-bottom: 1px solid var(--primary);
    box-shadow: 0 1px 0 0 var(--primary);
}

form input[type] {
    margin-bottom: 25px;
}

form input.ng-invalid {
    border-bottom: 1px solid var(--negative);
}

[type="checkbox"]:checked + label::before {
    border-right-color: var(--primary);
    border-bottom-color: var(--primary);
}


[type="radio"]:checked + label::after {
    border-color: var(--primary);
    background-color: var(--primary);
}

.ui-datatable thead th {
    color: var(--team-black);
}

button.btn:not(.btn-flat), div.btn, a.btn-primary, .swagger-ui button.btn.authorize {
    background-color: var(--team-black);
}

form button.btn:hover, div.btn:hover, a.btn-primary:hover,.swagger-ui button.btn.authorize:hover {
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
    background-color: var(--team-black);
}

.switch label input[type="checkbox"]:checked + .lever::after {
    background-color: var(--primary) !important;
}
.switch label input[type="checkbox"]:checked + .lever {
    background-color: #599bff;;
}

.create-btn, .refresh-btn, .create-btn:active, .refresh-btn:active{
    background-color: var(--primary);
}

.create-btn:hover, .refresh-btn:hover {
    background-color: var(--primary);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

.delete-btn, .remove-btn {
    background-color: var(--negative);
}

.delete-btn:hover, .remove-btn:hover {
    background-color: var(--negative);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

.edit-btn, .show-btn, .item-add-btn, .member-add-btn, .details-btn {
    background-color: var(--team-black);
}

.details-btn:hover {
    background-color: var(--team-black);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

.edit-btn:hover, .show-btn:hover, .item-add-btn:hover, .member-add-btn:hover {
    background-color: var(--team-black);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

 button.btn.ladda-button:disabled {
    background-color:  var(--team-black) !important;
}

.input-field .prefix.active {
    color: var(--primary);
}

header nav ul li a, header nav .menu-link {
    text-transform: capitalize;
    font-size: 1rem;
    font-weight: 400;
    line-height: 63px;
}

header nav .nav-wrapper a.active {
    background: inherit;
    border-bottom: 3px solid black;
}

header nav ul li:last-child a.active {
    text-decoration: none;
    color: #000000;
}

header nav div > ul > li:nth-child(2) a {
    text-transform: none;
}

header nav .nav-wrapper i {
    height: 61px;
    line-height: 61px;
}

header nav ul.dropdown-content {
    top: 50px !important;
}

header nav ul > li > a {
    color: var(--team-black) !important;
}

header nav .nav-wrapper  .collapsible-body li a{
    text-transform: none;
    color: rgb(128, 128, 128) !important;
}

.tabs-wraper ul#tabs li a.active {
    color: #0066ff;
}

.tabs-wraper ul#tabs li.indicator {
    background: #698BB5;
}

header nav ul li .menu-link.pos1 {
    color: #698BB5;
}

header nav ul li .menu-link.pos2 {
    color: #14405c;
}

header nav ul li .menu-link.pos3 {
    color: #1f6089;
}

header nav ul li .menu-link.pos4 {
    color: #689f38;
}

header nav ul li .menu-link.pos5 {
    color: #009688;
}

header nav ul li .menu-link.pos6 {
    color: #698BB5;
}

header nav ul li .menu-link.pos7 {
    color: #14405c;
}

header nav ul li .menu-link.pos8 {
    color: #1f6089;
}

footer.page-footer.grey {
   background-color: var(--team-black) !important;
}

div.wrapper.top-wrapper .kpi1 .card-panel {
    background: var(--group-1) !important;
}

div.wrapper.top-wrapper .kpi2 .card-panel {
    background: var(--group-1-dark) !important;
}

div.wrapper.top-wrapper .kpi3 .card-panel {
    background: var(--group-1-medium) !important;
}

div.wrapper.bottom-wrapper .kpi1 .card-panel {
    background: var(--group-2) !important;
}

div.wrapper.bottom-wrapper .kpi2 .card-panel {
    background: var(--group-2-dark) !important;
}

div.wrapper.bottom-wrapper .kpi3 .card-panel {
    background: var(--group-2-medium) !important;
}

.column.guides .light-green {
    background: var(--group-2-medium) !important;
    color: white !important;
}

.column.guides .red {
    background: var(--group-1-medium) !important;
    color: white !important;
}

.card.card-owner .card-type.chip {
    background: var(--primary-accent) !important;
}

.card.card-demo .card-type.chip {
    background: var(--group-2-medium) !important;
}

.card.card-inactive .card-type.chip {
    background: #7f7f7f !important;
}

.card.card-productive .card-type.chip {
    background: #002575 !important;
}

.card.card-productive {
    background: #DEE2F4 !important;
}