/******************************/
/******************************/
/****** fonts *****************/
/******************************/
/******************************/

/*https://github.com/FontFaceKit/roboto/blob/gh-pages/roboto.css*/
/* BEGIN Regular */
@font-face {
    font-family: Roboto;
    src: url("../fonts/Roboto-Regular.woff2?v=2.137") format("woff2"), url("../fonts/Roboto-Regular.woff?v=2.137") format("woff");
    font-weight: 400;
    font-style: normal; 
}
@font-face {
    font-family: Roboto;
    src: url("../fonts/Roboto-Regular.woff2?v=2.137") format("woff2"), url("../fonts/Roboto-Regular.woff?v=2.137") format("woff");
    font-weight: normal;
    font-style: normal; 
}
/* END Regular */
/* BEGIN Medium */
@font-face {
    font-family: Roboto;
    src: url("../fonts/Roboto-Medium.woff2?v=2.137") format("woff2"), url("../fonts/Roboto-Medium.woff?v=2.137") format("woff");
    font-weight: 500;
    font-style: normal; }
/* END Medium */

/* @font-face {
    font-family: 'Material Symbols';
    src: url("../fonts/material-symbols-outlined.woff2") format("woff2");
    font-weight: normal;
    font-style: normal; 
} */


/* Aplikace Material Symbols fontu globálně na všechny ikony */
md-icon {
    font-family: 'Material Symbols Rounded';
    font-size: 24px; /* Velikost ikony */
    vertical-align: middle; /* Zarovnání ikony vertikálně */
    color:#3e434d;
}
md-icon.filled{
    font-variation-settings:
    'FILL' 1,
    'wght' 400,
    'GRAD' 0,
    'opsz' 24;
}


/************************/
/************************/
/******colors************/
/************************/
/************************/


:root {

    /*https://stackoverflow.com/a/41265350/2095642 */
    --status-rgb-O: 184, 71, 78; /* vráceno */
    --status-rgb-S: 62, 67, 77; /* ke schválení */
    --status-rgb-0: 150, 150, 150; /* otevřeno */
    --status-rgb-P: 222, 163, 25; /* předschváleno */
    --status-rgb-A: 134, 184, 71; /* schváleno */
    --status-rgb-F: 72, 97, 40; /* dokončeno */
    
    --status-color-O: rgba(var(--status-rgb-O), 1);
    --status-color-S: rgba(var(--status-rgb-S), 1);
    --status-color-0: rgba(var(--status-rgb-0), 1);
    --status-color-P: rgba(var(--status-rgb-P), 1);
    --status-color-A: rgba(var(--status-rgb-A), 1);
    --status-color-F: rgba(var(--status-rgb-F), 1);
    
    --status-color-O-30: rgba(var(--status-rgb-O), 0.3);
    --status-color-S-30: rgba(var(--status-rgb-S), 0.3);
    --status-color-0-30: rgba(var(--status-rgb-0), 0.3);
    --status-color-P-30: rgba(var(--status-rgb-P), 0.3);
    --status-color-A-30: rgba(var(--status-rgb-A), 0.3);
    --status-color-F-30: rgba(var(--status-rgb-F), 0.3);

    --bg-rgb-even: 71, 134, 184; /*blue*/
    --bg-color-even-50: rgba(var(--bg-rgb-even), 0.5);
    --bg-color-even-30: rgba(var(--bg-rgb-even), 0.3);


    /* material design */
    --md-sys-typescale-label-large-size:16px;
    --md-sys-typescale-body-large-size:16px;
    --md-sys-typescale-label-large-weight:500;

    --md-sys-color-primary: #3E434D;
    --md-sys-color-on-primary: #ffffff; /*e.g. checkbox checkmark*/
    --md-sys-color-primary-container: #fff;
    --md-sys-color-on-primary-container: var(--bg-color-even-50);
    
    --md-sys-color-secondary: var(--bg-color-even-50);
    --md-sys-color-on-secondary: #3E434D;
    --md-sys-color-secondary-container: var(--bg-color-even-50);
    --md-sys-color-on-secondary-container:  #3E434D;

    --md-sys-color-surface-container-low:  #fff;


    --md-outlined-button-container-shape: 8px;
    --md-elevated-button-container-shape: 8px;
    /* --md-elevated-button-container-height: 28px; */
    
    --md-elevation-level: 2;
    --md-sys-color-shadow: #000;
    
    /* --md-checkbox-container-size: 18px; */
    /*--md-checkbox-state-layer-size: 28px; */
    --md-menu-item-disabled-opacity: 1; /* user name in menu */
}

@media screen and (max-width: 767px) {
    :root {
        --md-outlined-field-outline-label-padding: 0px;
        --md-outlined-field-leading-space: 0px;
        
        --md-sys-typescale-label-large-size:14px;
        --md-sys-typescale-body-large-size:14px;
    }
}

.background-O{ background-color: var(--status-color-O); }
.background-S{ background-color: var(--status-color-S); }
.background-0{ background-color: var(--status-color-0); }
.background-P{ background-color: var(--status-color-P); }
.background-A{ background-color: var(--status-color-A); }
.background-F{ background-color: var(--status-color-F); }

.background-O-30{ background-color: var(--status-color-O-30); }
.background-S-30{ background-color: var(--status-color-S-30); }
.background-0-30{ background-color: var(--status-color-0-30); }
.background-P-30{ background-color: var(--status-color-P-30); }
.background-A-30{ background-color: var(--status-color-A-30); }
.background-F-30{ background-color: var(--status-color-F-30); }

.color-O{ color: var(--status-color-O); }
.color-S{ color: var(--status-color-S); }
.color-0{ color: var(--status-color-0); }
.color-P{ color: var(--status-color-P); }
.color-A{ color: var(--status-color-A); }
.color-F{ color: var(--status-color-F); }


/*******************/
/*******************/
/***** atomic  *****/
/*******************/
/*******************/


body{
    max-width: 100vw;
    font-family: "Roboto", sans-serif;
    font-size: 14px;
    line-height: 20px;
    color: #3e434d;
    padding: 0 16px 16px;
    margin: 0;
}
@media screen and (max-width:767px) {
    body{
       padding: 0 4px 16px;
    }
}
.display-none{
    display: none;
}
/*hide reset pass and bug mail link for microsoft accounts users*/
body[data-usersource="entra"] .hide-for-entra{
    display: none;
}

[v-cloak] {
    display: none;
}

h2{
    margin-bottom: 20px;
    line-height: 24px;
    font-weight: 400;
    font-size: 22px;
}

h3{
    margin-bottom: 20px;
    line-height: 21px;
    font-weight: 400;
    font-size: 18px;
}
strong{
    font-weight: 500;
}

.flex-align-items-center{
    display: flex;
    align-items: center;
}
.day.disabled .record_row,
.day.disabled input{
    cursor: not-allowed;
}
input:disabled{
    border-color: #e4e4e4!important;
    -moz-appearance: textfield;
    color: #aaa;
}
input:disabled::-webkit-outer-spin-button,
input:disabled::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

@media only screen and (max-width:767px){
    .desktop-only{
        display: none;
    }
}

@media only screen and (min-width:768px){
    .mobile-only{
        display: none;
    }
}

/************************/
/************************/
/*** general ************/
/************************/
/************************/

.wrapper{
    max-width: 1000px;
    display: block;
    margin: 0 auto;
}

nav.top-nav{
 display: flex;
 flex-direction: row;
 align-items: center;
 height: 64px;
 justify-content: space-between;
 width: 100%;
}
nav.top-nav md-elevated-button{
    font-weight: 400;
    font-size: 15px;
}
nav.month-nav{
    flex:0;
    display: flex;
    flex-direction: row;
    align-items: center;
    height: 24px;
    justify-content: space-between;
    width: 100%;
    font-size: 20px;
    font-weight: 400;
    line-height: 24px;
}

.menu-cont{
    position: relative;
    z-index: 2;
}
.menu-cont svg{ /*needed to be clickable*/
  position: relative;
  z-index: -1;
}
#action-menu{
    white-space: nowrap;
}

header.screen-header .account-menu-cont{
 position: relative;
}

header.screen-header h1{
    font-size: 18px;
    line-height: 24px;
    font-weight: 400;
}
.card {
    position: relative;
    border-radius: 8px;
    padding: 16px;
    margin: 8px 0 20px;
}
.card header{
    display: flex;
    justify-content: space-between;
    line-height: 20px;
    margin: 0 0 12px;
}
.card p{
    margin: 12px 0;
}

.card footer{
    display: flex;
    justify-content: space-between;
    margin: 0 0 8px;
}
/************************/
/************************/
/*** dpp_admin screen ***/
/************************/
/************************/


body.dashboard header.screen-header .top-nav::before{
    content:"";
    display: block;
    flex:1;
}
.top-nav .account-menu-cont{
    flex:1;
    text-align: right;
}

.reports-lists-cont{    
    margin-left:-8px;
    margin-right:-8px;
    overflow: auto;
}
.reports-list-by-status{
    max-width: 492px;
    width:100%;
    margin-top: 40px;
    margin-left: 8px;
    margin-right: 8px;
    float: left;
    vertical-align: top;
}

.reports-list-by-status-outer{
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows 0.5s ease-out;
}

.reports-list-by-status-inner{
   overflow: hidden;
}
.contractlist-collapsor.collapsor-collapsed + .reports-list-by-status-outer{
    grid-template-rows: 0fr;
}
/* .reports-list-by-status-inner:empty:after{
    display: block;
    font-family: "Material Symbols Rounded";
    content: "hide_source";
    font-size: 20px;
    height: var(--_icon-size);
    width: var(--_icon-size);
    font-weight: inherit;
    width: 100%;
    text-align: center;
    color:#ccc;
} */
.reports-list-by-status header{
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    line-height: 48px;
}
.reports-list-by-status ms-elevated-button{
    height: 28px;
}

.reports-list-by-status header label{
    display: flex;
    align-items: center;
}

.contract-row {
    flex:1;
    width: 100%;
    height: 48px;
    border-radius: 8px;
    padding: 0;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
    font-size: 14px;
}

.contract-row md-checkbox.display-none + * {
    margin-left: 8px; /*useful when no checkbox*/
}
.contract-row md-icon-button{
    margin-right: 4px;
}
.contract-row md-icon-button md-icon{
    font-size: 20px;
}
.contract-row > *{
    color: #3E434D;
}


/************************/
/************************/
/*** report screen ******/
/************************/
/************************/
#back2top{
  display: none; /* Hidden by default */
  float: right;
}

#app.before-read{
    display: none;
}
.autosave-status{
    color:rgba(62,67,77,0.8);
}
.autosave-status md-icon{
    margin-left: 4px;
    color:rgba(62,67,77,0.8)
}
.card .status{
    line-height: 28px;    
    font-weight: 500;
}
.card .status md-icon{
    margin-right: 8px;
}

a.history-link, a.manager-mail-link{
    text-decoration: none;
}

a.manager-mail-link:link{
   color: inherit!important;
}
md-icon.history-icon,
.manager-mail-link md-icon{
    color:#bbb;
    top: -1px;
    position: relative;
    font-size: 21px;
}
.history-link:hover md-icon.history-icon,
.manager-mail-link:hover md-icon{
    color:#3e434d;
}

@media only screen and (min-width:768px) {

    body.report header.screen-header{
        position: sticky;
        top: 0;
        z-index: 2;
        background: #fff;
    }
}
    
header.screen-header .controls{
    display: flex;
    justify-content: flex-end;
}

header.screen-header .controls md-text-button{
    font-weight: 400;
}

.contractlist-collapsor{
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}
.contractlist-collapsor:not(.collapsor-collapsed) .opener{
    display: none;
}
.contractlist-collapsor.collapsor-collapsed .closer{
    display: none;
}

.all-collapsor:not(.all-collapsor-collapsed) .opener{
    display: none;
}
.all-collapsor.all-collapsor-collapsed .closer{
    display: none;
}
#app form footer#totals-footer{
    background-color: #dbeac8;
    height: 48px;
    line-height: 36px;
    display: flex;
    align-items: center;
    position: sticky;
    bottom:0;
    z-index: 2;
    font-weight: 500;
    display: flex;
    justify-content: space-between;
    transition: all 1s ease-in-out;
}
#app form footer#totals-footer > span{
    margin: 0 8px;
}

/***************/
/**** A DAY ****/
/***************/
.day{
    margin-bottom: 0;
    border-bottom: 1px solid #d9d9d9;
}
.day:not(.num-records0){
    background-color: var(--bg-color-even-30);
}
.day_header{
    display: flex;
    justify-content: space-between;
}

.day_header md-checkbox.display-none + * {
    margin-left: 8px; /*useful when no checkbox*/
}
.chckbx_label{
    width:44px;
    height: 44px;
    display: flex;
    justify-content: center;
    align-items: center;
    white-space: nowrap;
    cursor: pointer;
}
.chckbx_label input{
    width:18px;
    height: 18px;
    margin: 0;
    cursor: pointer;
    /*TO_DO you need to style the :checked state extra to do this and not loose the check*/
    /* -moz-appearance:none;
    -webkit-appearance:none;
    -o-appearance:none;
    
    border-color:#3E434D;
    border-width: 2px;
    border-style: solid; */
}
.day-collapsor{
    flex:1;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.day:not(.num-records0) .day-collapsor{ /* not empty -> collapsible */
    cursor: pointer;
}
.day-collapsor:first-child{
    margin-left: 8px; /*useful when no checkbox*/
}

.contract-row md-checkbox.display-none + * {
    margin-left: 8px; /*useful when no checkbox*/
}
.day-collapsor{
    cursor: pointer;
}
.day-collapsor .day_date{
    font-weight: 500;
    min-width: 100px;
}

.day-collapsor .day_date em{
    font-weight: 400;
    background-color: rgba(0,0,0,0.04);
    display: inline-block;
    margin-left: 4px;
    padding: 1px 4px;
    font-style: normal;
    border-radius: 2px;
}
.day .day-collapsor .day_date .disabled-lock{
    color: #aaa;
    margin-left: 4px;
}
.day.day-collapsed .day-collapsor .day_date em{
        display: none;
}
.day.num-records0 .day-collapsor .day_date .disabled-lock,
.day.day-collapsed .day-collapsor .day_date .disabled-lock{
        display: none;
}
@media screen and (max-width: 767px) {
    .day-collapsor .day_date em{
        display: none;
    }
}
.day-collapsor .day_total_hours{
    font-weight: 500;
    min-width: 55px;
    display: inline-block;
    text-align: right;
}
.day-collapsor .day-collapsor-icon::before{
    font-family: "Material Symbols Rounded";
    content: "keyboard_arrow_up";
    font-weight: 900;
    display: inline;
}
.day-collapsed .day-collapsor .day-collapsor-icon::before{
    content: "keyboard_arrow_down";
}
.day-collapsor .empty-end{ /* in disabled days, holding place normally occupied by collapsor icon */
    height: 48px;
    width: 48px;
}

.records{
    width: 100%;
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows 0.5s ease-out;
}
select[name^="timetype"]{
    min-width: 0;
}

.day-collapsed .records{
    grid-template-rows: 0fr;
}
.records_inner{
    overflow: hidden;
}

.day.disabled.num-records0 .day-collapsor{
    cursor:default;
}


/* special days */

.day.national-holiday{
    background-color: rgba(255,0,0, 0.3);
}
.day.national-holiday .day-collapsor-icon{
    opacity: 0;
}

.day.saturday{
    background-color: #f4f4f4;
}
/* .day.saturday .day-collapsor{
    cursor:not-allowed;
}
.day.saturday .day-collapsor-icon{
    opacity: 0;
} */

.day.sunday{
    background-color: #f4f4f4;
}
/* .day.sunday .day-collapsor{
    cursor:not-allowed;
}
.day.sunday .day-collapsor-icon{
    opacity: 0;
} */

.day.personal-vacation{
    background-color: rgb(219, 234, 200);
}
.day.personal-vacation .day-collapsor{
    cursor:not-allowed;
}
.day.personal-vacation .day-collapsor-icon{
    opacity: 0;
}

/***************/
/** A RECORD ***/
/***************/
.record{
   position: relative; /*for deleted test purpose*/
}
.record_row{
   display: flex;
   align-items: flex-start;
   padding-left: 8px;
   margin-bottom: 8px;
}
.record_row > div{ /* .start and .end divs */
   display: flex;
   align-items: center;
   gap:8px;
}
.record_row > div.start{
    margin-right: 8px;
}

.record_row > .hyphen{
    line-height: 56px;
}

.record_row > div.end{
    margin-left: 8px;
    margin-right: 8px;
}
@media screen and (max-width:600px) {
    .record_row > div{
        margin-left:0!important;
        margin-right:0!important;
        gap:0!important;
    }
}
.record_row .selectbox{
    flex:1;
    background: #fff;
    border-radius: 4px;
    min-width: auto !important; 
}  
.unentered .record_row .selectbox{
    background: #f5f5f5;
}


@media screen and (max-width:767px) {    
    .record_row .selectbox .field {
        font-size: 14px;
    }
}

.record.deleted:before{
    content:"";
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    background-color: rgba(255,0,0, 0.8);
}
.digits{
  text-align: center;
  width: 4em;
  height: 56px;
  border-radius: 4px;
  border: 1px solid var(--md-sys-color-primary);
  box-sizing: border-box;
  font-size: 16px;
  background: #fff;
}
/* .digits::placeholder {
    color:#000;
} */
.unentered .digits{
    background: #f5f5f5;
}

@media screen and (max-width:767px) {    
    .digits{
        font-size: 14px;
    }
}
@media screen and (max-width:600px){
    /* remove arrows from input[type=number]: Chrome, Safari, Edge, Opera */
    .digits::-webkit-outer-spin-button,
    .digits::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
    }

    .digits { 
    min-width: 2em;
    width:2em;
    /* remove arrows from input[type=number]: Firefox */
    -moz-appearance: textfield;
    }
}



.timetravel .digits{
    color:rgb(255,0,0);
}
.deletor, .adder{
    text-decoration: none;
}
.notice{
    width: 100%;
    color: rgb(255,0,0);
    padding-top: 0.25em;
    padding-bottom: 1em;
    display: block;
    padding-left: 8px;
}
.notice:empty{
    display: none;
}
.notice:not(:empty):before{
    content: "❌ ";
    font-style: normal;
}

.notice .empty-unentered{
    cursor: pointer;
    text-decoration: underline;
}


form#report.mode-employee .total-bill-cont{
    display: none;
}