/**
******************************************************************************
* Copyright © 2017-2018 PTA GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* 
*     http://www.eclipse.org/legal/epl-v10.html
* 
******************************************************************************
*/
/* 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");

/* 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%;
    white-space: nowrap;
}

.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: #b7cbda;
}

.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:focus {
    color: #0080c0;
    background: #b7cbda;
}

.dropdown-menu{   
    top:43px;
    min-width: 160px;
    background: #e9f0f9;
} 

.dropdown-menu > .dropdown > a:hover {
    background: #b7cbda;
    color: #0080c0;
}


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

.daterangepicker.dropdown-menu.ltr {
    max-width: 494px;
}

.daterangepicker.dropdown-menu.ltr.single {
    max-width: 255px;
}

.cdk-overlay-pane{
    position: relative !important;
}

.custom-dark-blue {
    color: #0080c0;;
}