/* You can add global styles to this file, and also import other style files */
@import url("assets/source-sans-pro/source-sans-pro.css");
@import url("assets/css/main.css");
@import url("assets/css/additional.css");
@import url("assets/css/custom.css");

/* General styling */
html {    
    overflow-y: scroll;
}

body {
    background: #f8fafd;
}

.margin-top {
    margin-top: 15px;
}

.margin-zero {
    margin: 0;
}

.spacer {
    margin-top: 15px;
}

/* General panel styling */
div.panel-group {
    margin: 15px;
}

div.panel-default {
    min-height: 0;
    margin: 15px 0px;
}

div.panel-default > .panel-heading {
    background-color: #f5f8fc;
}


/* General button styling */
.btn {
    border-radius: 6px;
}


/* General table styling */
.table-striped {
    margin: 0;
    padding: 5px;
    vertical-align: middle;
}

.table-striped > tbody > tr:nth-of-type(odd) {
    background: #e9f0f9;
}

.table > thead > tr > th {
    padding: 5px;
    vertical-align: bottom;
}

.table > tbody > tr > td {
    padding: 5px;
    vertical-align: middle;
}


/* General dialog styling */
.mat-dialog-container {
    background: #f8fafd;
}

.dialog {
    overflow: auto;
    width: 75vw;
    height: 75vh;
    margin: 0px 0px 15px 0px;
}


/* Login styling */
.login-outer {
    width: 100%;
    height: 90%;
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8fafd;
}

.login-inner {
    width: 240px;
    height: 320px;
}

.login-error-message {
    color: red;
}

.login-margin-top5 {
    margin-top: 5px;
}

.login-margin-top10 {
    margin-top: 10px;
}

.maincontent {
    background: #ffffff;
    padding: 0px 0px 1px 0px;
    margin: 15px;
    color: #333333;
}

.maincontent > .row {
    background: #f8fafd;
    margin: 0;
    padding: 0;
}


/* Responsibility dialog styling */
.responsibility-dialog {
    overflow: auto;
    width: 40vw;
    height: auto;
    margin: 0px 0px 15px 0px;
}

.responsibility-column-striped > thead th {
    text-align: center;
}

.responsibility-column-striped > tbody td:nth-of-type(even) {
    background:#f5f8fc;
}

.responsibility-column-striped > tbody td {
    text-align: center;
}

.responsibility-column-striped > tbody td:first-child {
    text-align: left;
}

/* Entry dialog styling */
.entry-dialog {
    overflow: auto;
    width: 75vw;
    max-height: 70vh;
    margin: 0px 0px 15px 0px;
}

.entry-textarea {
    resize: none;
    width: 100%;
    height: 10vh;
}

.input-group {
    width: 100%;
}

.entry-input {
    width: 100%;
}


/* Shift change protocol styling */
.shift-change-protocol-panel-body {
    padding: 0px 15px;
    overflow: scroll;
    display: inline; 
}



/* Dropdown logout menu styling */
.dropdown-open {
    color: #537798;
}

.dropdown-open:hover {
    
    background: #b6cbdb;
}

.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:focus {
    color: #0b325c;
    background: #b6cbdb;
}

.dropdown-menu{   
    top:35px;
    min-width: 128px;
    margin: 2px 20px 0;
    padding: 5px 7px;
}

.dropdown-menu > .dropdown > a:hover {
    background: #f5f8fc;
}


/* Logout dialog styling */
.logout-dialog {
    width: 320px;
    height: 240px;
}

div.center {
    text-align: center;
}

div.center-margin {
    text-align: center;
    margin: 15px;
}

.custom-drop-down .c-token span{
    pointer-events: auto;
position: relative;
}
.custom-drop-down .c-token{
    background: #337ab7 !important;
}

.custom-drop-down .pure-checkbox input[type="checkbox"]:hover + label:before{
    border-color: #337ab7 !important;
}

.custom-drop-down .pure-checkbox input[type="checkbox"] + label:before{  
    color: #337ab7 !important;
}

.custom-drop-down .pure-checkbox input[type="checkbox"] + label:before{
    border: 2px solid #337ab7 !important;
}

.custom-drop-down .pure-checkbox input[type="checkbox"] + label:after{
  background-color: #337ab7 !important;
}

.custom-drop-down .pure-checkbox input[type="checkbox"]:checked + label:before{  
  background:  #337ab7 !important;
}

 .custom-drop-down .selected-list button{        
        box-shadow: none !important;        
}
.tooltip > .tooltip-inner {background-color: #f5f8fc;color: black; word-break: break-all; border: 1px solid grey;}
