:root {
    --color-black: #1e2122;
    --color-lightblack: #3a5962;
    --color-lightblue: lightblue;
    --color-whiteblue: #d4eaf1;
    --color-blue: #9eb9d7;
    --color-darkblue: #477a8b;
    --color-whitegreen: #c1e7b6;
    --color-gray: #838383;
    --color-whitegray: #efefef;
    --color-lightgray: lightgray;
    --color-yellow: #ede68d;
    --color-lightred: #b97e82;
    --color-red: #a55052;
    --color-orange: orange;
    --color-orange-hover: #ffbc40;
    --color-transparent-white: #ecf5ffd9;
    --color-transparent-lightblue: #add8e66e;
    --color-lightblue-background: #e4f4f9;
    --color-normal-background: #ecf5ff;
    --color-outline-hover: #ffbc40;
    --color-text-green: green;
    --color-text-red: red;
    --color-text-orange: #e9750f;
    --button-normal-border: lightblue;
    --button-normal-hover-background: #d4eaf5;
    --button-normal-active-background: lightblue;
    --button-normal-active-hover-background: #c8e5ee;
    --button-remove-background: #b97e82;
    --button-remove-hover-background: #a55052;
    --button-save-background: #77b964;
    --button-save-hover-background: #9dd18e;
}

body {
    background-color: var(--color-normal-background);
    color: var(--color-black);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    margin: 0 0 45px;
    position: relative;
    scroll-behavior: smooth;
}

* {
    -ms-overflow-style: none;  /* Internet Explorer 10+ */
    scrollbar-width: none;  /* Firefox */
}
*::-webkit-scrollbar { 
    display: none;  /* Safari and Chrome */
}

button, input:not([type="checkbox"]), select { 
    all: unset;
    appearance: none;
    border-radius: 20px;
    border: 1px solid var(--button-normal-border);
    box-shadow: none;
    padding: 4px 10px;
    -webkit-appearance: none;
    -moz-appearance: none;
}
button, input, select, option { background-color: white; cursor: pointer; font-family: Arial, Helvetica, sans-serif; min-height: 32px; min-width: 96px; box-sizing: border-box; }
select { padding: 6px 10px 2px; position: relative; }
option { background-color: white !important; }
button { text-align: center;}
button:hover, select:hover, button:active, select:active { background-color: var(--button-normal-hover-background); }
button.active { background-color: var(--button-normal-active-background); }
button.active:hover { background-color: var(--button-normal-active-hover-background); }

button.sort:before { float: right; line-height: 16px; }

input::-webkit-file-upload-button {	opacity: 0; }


.chevron-up:before { content:"\2039"; display: inline-block; font-size: 25px; transform: rotate(90deg); }
.chevron-right:before { content:"\203A"; display: inline-block; float: right; font-size: 25px; }
.chevron-down:before  { content:"\203A"; display: inline-block; font-size: 25px; transform: rotate(90deg); }
.chevron-left:before  { content:"\2039"; display: inline-block; float: left; font-size: 25px; }
.chevron-left.left:before  { float: left !important }
.chevron-right.right:before  { float: right !important }
.chevron-select:before { position: absolute; right: 10px; top: 2px; }
.chevron-select {  background: white; border-radius: 20px; box-sizing: border-box; position: relative; width: auto !important; }
.chevron-select select { background: transparent; padding-right: 23px !important; }

.button-x:after{ display: inline-block; content: "\00d7"; margin: auto; }
.button-info {
    min-width: 19px;
    padding: 0;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 19px;
    font-size: 13px;
    color: var(--color-lightblue);
    min-height: 22px;
    max-height: 22px;
}
.button-remove {
    min-height: unset;
    font-size: 13px;
    line-height: 15px;
    height: auto;
    min-width: unset;
    padding: 8px 16px;
    background-color: var(--button-remove-background);
}
.button-remove:hover {background-color: var(--button-remove-hover-background);}
.button-save { background-color: var(--button-save-background);}
.button-save:hover { background-color: var(--button-save-hover-background);}
.d-none {display: none !important; }
.noscroll {overflow: hidden;}
.v-bottom {vertical-align: bottom !important;}

.font-number { font-family: Arial, Helvetica, monospace !important; white-space: pre; }

table { border-collapse: collapse; }
table, th, td { border: 1px solid; }
.tr-empty td {height: 5px !important;}

.noscroll { overflow: hidden !important; }

.hamburger {
    all: unset;
    background: white;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    height: 22px;
    justify-content: space-between;
    padding: 5px 4px;
    width: 26px;
}
.hamburger span {
    background: var(--color-lightblue);
    border-radius: 1px;
    height: 1px;
} 

#Start #Version-control {
    color: var(--color-blue);
    position: fixed;
    top: 18px;
    left: 20px;
    border: 0;
    font-weight: bold;
    font-size: 12px;
    border: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-gap: 2px 6px;
    height: auto;
}
#Start {
    align-items: center;
    background: white;
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: center;
    left: 0;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 100000;
}
#Start > div {
    border-top: 1px solid var(--color-black);
    height: 58px;
    max-width: 100vw;
    width: 350px;
}
#Start .start-button-container {border-left: 1px solid var(--color-black); border-right: 1px solid var(--color-black);}
#Start .start-example-container {border-bottom: 1px solid var(--color-black); margin-bottom: 100px;}
#Start .start-login {opacity: 0;}
#Start .file-input:hover + .button-start { opacity: .7;}
#Start .button-start {
    all: unset;
    align-items: center;
    background-color: orange;
    cursor: pointer;
    display: flex;
    font-size: 18px;
    font-weight: bold;
    height: 100%;
    justify-content: center;
    width: 100%;
}
#Start .button-start:hover {
    opacity: .7;
}

#Start .start-import-container {
    position: relative;
}
#Start .start-import-container input {
    all: unset;
    color: transparent;
    cursor: pointer;
    position: absolute;
    height: 100%;
    left: 0;
    opacity: 0;
    top: 0;
    width: 100%;
    z-index: 1;
}
#Start .start-import-container input:hover { cursor: pointer;  }
#Start .Footer {
    border: 0;
    bottom: 0;
    height: 20px;
    position: absolute;
    right: 0;
}

#Menu {
    background: orange;
    bottom: 0;
    display: flex;
    height: 40px;
    justify-content: space-between;
    left: 0;
    position: fixed;
    width: 100vw;
    z-index: 10000;
}
#Menu button {
    all: unset;
    border-right: 1px solid var(--color-black);
    cursor: pointer;
    font-weight: bold;
    height: 100%;
    min-width: max-content;
    padding: 0 20px 0 10px;
}
#Menu button:hover {
    background-color: var(--color-orange-hover);
}
.menu-item-days-container { display: flex; overflow: auto; }
#Menu-item-days { display: flex; }
#Menu .menu-item-days-container .chevron-left, #Menu #Menu-item-export {
    border-left: 1px solid var(--color-black);
}
#Menu #Menu-item-export {
    border-right: 0;
}
#Menu #Zoom-roster { background: white; height: 9px; box-sizing: border-box; margin: auto 0; width: 100px; }


.main-import-container {
    grid-area: import;
    margin-left: auto;
    margin-top: -40px;
    text-align: center;
    align-items: center;
    background-color: orange;
    display: flex;
    float: right;
    font-weight: bold;
    height: 40px;
    justify-content: center;
    opacity: .6;
    position: relative; 
    width: 130px;
}
.main-import-container input {
    background-color: transparent;
    border-radius: 0;
    border: 0;
    cursor: pointer;
    font-size: 0;
    height: 100%;
    left: 0;
    opacity: 0;
    padding: 0;
    position: absolute;
    top: 0;
    width: 100%;
}
.main-import-container:hover { background: var(--color-orange-hover); }

.main-container { box-sizing: border-box; padding: 0 18px; max-height: 100vh; overflow: auto; position: relative; scroll-snap-type: y mandatory; scroll-behavior: smooth;}
.main-container > div { scroll-snap-align: start; }


#Settings {
    display: grid;
    gap: 16px;
    grid-template-columns: auto auto;
    grid-template-areas:
    "header import"
    "person default-settings"
    "week-select sort"
    "week-copy auto-add";
    max-height: calc(100vh - 40px);
    overflow: auto;
    padding-top: 40px;
}
#Settings > h1 { grid-area: header; margin-top: 0;}
#Settings .settings-box {
    background: white;
    border-radius: 8px;
    box-sizing: border-box;
    padding: 16px;
}
#Settings #Settings-default { display: flex; flex-direction: column; }
#Settings #Settings-default > button { margin-bottom: 8px; text-align: center; }
#Settings .settings-box .container { display: none; }
#Settings .settings-box.active .container { display: inline-block; }
#Settings #Settings-default {
    grid-area: default-settings;
}
#Settings #Settings-default .container .container-buttons { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 8px; text-align: center; margin-bottom: 8px; }
#Settings .settings-item {
    margin-bottom: 8px;
}
#Settings label {
    display: inline-block;
    margin-right: 8px;
    width: 120px;
    white-space: nowrap;
}
#Settings select {
    width: 80px;
}
#Settings #Week-select { display: flex; grid-area: week-select; }
#Settings #Week-select >* { max-height: 32px; box-sizing: border-box; }
#Settings #Week-select #Roster-week-input { display: flex; align-items: center; }
#Settings #Week-select button { border-radius: 0; border-left: 0; min-width: max-content; }
#Settings #Week-select button:nth-child(2) { border-left: 1px solid var(--button-normal-border); border-radius: 20px 0 0 20px; margin-left: 8px; }
#Settings #Week-select button:nth-child(4) { border-radius: 0 20px 20px 0; }
#Settings #Week-select #Week-select-overview { margin-left: 8px; }

#Settings #Sort-roster-by { display: flex; align-items: center; gap: 8px; }
#Table-week-editable-button { max-width: 200px;}
#Sort-week-by { position: absolute; bottom: 0; transform: translate(100%, 100%); padding-top: 11px; }
.sort-box {display: flex; }
.sort-box button {border-right: 0;}
.sort-box button:nth-child(1) {border-radius: 20px 0 0 20px;}
.sort-box button:nth-child(2) {border-radius: 0;}
.sort-box button:nth-child(3) {border-radius: 0 20px 20px 0; border-right: 1px solid var(--button-normal-border);}
.sort-box button.active +button { border-left: 1px solid white;}

#Settings-day-time-change { align-items: center; display: grid; grid-template-columns: auto 1fr; grid-gap: 0 8px; max-width: max-content; min-width: max-content; }
#Settings-day-time-change .select-name { padding-right: 8px; }
#Settings-day-time-change .select-start-end { min-width: max-content; }
#Settings-day-time-change .select-start-end label { margin-right: 0; }

#Settings-day-time-change .select-start select { border-right: 0; border-radius: 20px 0 0 20px; }
#Settings-day-time-change .select-end select { border-radius: 0 20px 20px 0; }

#sETTINGS-global .title-container { align-items: center; display: flex; gap: 16px; }
#Settings-global .title-container button { min-height: 26px; height: 26px; }

#Settings-global-editable-week { margin-bottom: 16px; }

#Settings-global-editable-week .button-default-cell { margin-right: 6px; }
#Settings-global-editable-week .button-default-row { border-radius: 20px 0 0 20px;}
#Settings-global-editable-week .button-default-row.active { border-right: 1px solid white;}
#Settings-global-editable-week .button-default-row-bottom { border-radius: 0 20px 20px 0; border-left: 0; }

#Settings-global-labels .items {display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
#Settings-global-labels .item { align-items: center; display: flex;}
#Settings-global-labels .item >*:nth-child(1) {width: auto;}
#Settings-global-labels .item >*:nth-child(2) {width: 100%; max-width: 122px; margin-right: 16px; min-width: 122px; box-sizing: border-box;}
#Settings-global-labels .item >*:nth-child(3) {width: auto;}
#Settings-global-labels .item >*:nth-child(4) {max-width: 46px;}

#Settings-global-rename-fields {margin-top: 16px;}
#Settings-global-rename-fields .item { display: flex; gap: 16px; margin-bottom: 8px;}
#Settings-global-rename-fields .item >div { align-items: center; display: flex; min-width: unset; } 
#Settings-global-rename-fields .item >div label { width: auto; } 
#Settings-global-rename-fields .item >div:nth-child(1) input { max-width: 100px; }
#Settings-global-rename-fields .item >div:nth-child(2) input { max-width: 46px; }

#People-container { display: flex; flex-direction: column; }
#People-container .button-add-person { text-align: center; width: max-content; border-radius: 0 0 10px 10px; }
#People-container.active .button-add-person { display: inline-block;}
#People tbody {position: relative;}
#People tbody:after {content: ""; position: absolute; height: 100%; left: 0; top: 0; width: 100%; z-index: 1; }
#People-container.active #People tbody:after { display: none;}

#People { 
    grid-area: person;
    display: block;
    max-width: -moz-fit-content;
    max-width: fit-content;
    margin: 0;
    overflow: -moz-scrollbars-vertical; 
    overflow: auto;
    padding-top: 0 !important;
    position: relative;
    white-space: nowrap;
    max-height: 305px;
}
#People thead { position: sticky; top: 0; z-index: 1; }
#People thead th { background-color: white; }
#People, #People th, #People td { border: 0; }
#People th, #People td { border-right: 1px solid lightgray; padding: 8px 8px 4px; text-align: left; }
#People th:last-child, #People td:last-child { border-right: 0; }
#People th:first-child, #People td:first-child { padding-left: 18px; }
#People th:last-child, #People th:last-child { padding-right: 18px; }
#People-list-buttons {display: flex;}
#People-list-buttons button { min-height: 20px; border-bottom: 0; border-right: 0; padding: 0; min-width: 82px;}
#People-list-buttons button:hover { border-left: 1px solid white;}
#People-list-buttons button:nth-child(1) { border-radius: 5px 0 0 0;}
#People-list-buttons button:nth-child(2) { border-radius: 0;}
#People-list-buttons button:nth-child(3) { border-radius: 0 5px 0 0; border-right: 1px solid var(--button-normal-border);}
#People .People-tr { position: relative; }
#People .People-tr:not(.inactive):hover td { background: var(--color-lightblue); }
#People .People-tr.inactive { background-color: var(--color-blue) !important;}
#People .People-tr td.labels { font-size: 12px; padding: 2px 8px;}
#People .People-tr td.labels >div { display: inline-block; margin-right: 3px; }
#People .People-tr td.labels >div >div { border-right: 1px solid gray; padding-right: 2px; }
#People .People-tr td.labels >div:last-child >div { border-right: 0; }
#People .People-tr td.mpa { font-size: 12px; padding: 2px 8px;}
#People .People-tr td.mpa >div { display: inline-block; margin-right: 3px; }
#People .People-tr td.mpa >div >div { border-right: 1px solid gray; padding-right: 2px; }
#People .People-tr td.mpa >div:last-child >div { border-right: 0; }
#People .td-overflow { max-width: 62px; position: relative; }
#People .td-overflow >div { overflow: hidden; display: inline-block; max-width: 100%; }

#People tr:last-child td { padding-bottom: 8px; }
#People tbody tr:hover { background-color: var(--color-lightblue); cursor: pointer; }
#People tr:hover .td-overflow:hover >div { background: white; min-width: max-content; overflow-x: unset; padding-right: 4px; }


#Edit-person { 
    background-color: var(--color-transparent-white);
    cursor: pointer;
    display: none; 
    height: 100%;
    left: 0;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 10001;
}
#Edit-person.active { display: flex; }
#Edit-person-container { 
    background-color: white;
    border: 1px solid var(--color-lightblue);
    border-radius: 8px;
    cursor: unset;
    margin: auto; 
    max-height: 90vh;
    overflow: auto;
    position: relative;
    z-index: 1;
}
#Edit-person-container > div { cursor: unset; }
#Edit-person-container input, #Edit-person-container select { width: 128px; height: 26px; box-sizing: border-box; }
#Edit-person-container select { padding: 3px 10px; }
#Edit-person-container input[type=number] { box-sizing: border-box; width: 72px; }
#Edit-person-container .button-add { min-height: 26px; }
#Edit-person-container .edit-box { border-bottom: 1px solid var(--color-lightblue); padding: 20px; position: relative;}
#Edit-person-container .edit-box .title { display: inline-block; font-weight: bold; margin-bottom: 4px; min-width: 130px}
#Edit-person-container .edit-box .container { max-height: 150px; overflow: auto; }
#Edit-person-container .remove { position: absolute; right: 0; top: 0; z-index: 1;}
#Edit-person-container .remove button { 
    border-top: 0;
    border-right: 0;
    border-radius: 0 10px 0 10px;
    font-weight: bold;
    letter-spacing: .03em; 
    padding: 0 10px;
    margin: 0;
    min-height: 26px;
    opacity: .6;
}
#Edit-person-container .person-container { display: flex; gap: 16px; padding: 0;}
#Edit-person-container .person-container >.container { border-right: 1px solid var(--color-lightblue); display: flex; gap: 16px; max-width: unset; padding: 35px 20px 20px; position: relative;}
#Edit-person-container .person-container >.container > div { display: flex; flex-direction: column; }
#Edit-person-container .person-container >.container .title {min-width: unset;}
#Edit-person-container .person-container >.container .select-assign-to select { min-width: 150px; }
#Edit-person-container .person-container >.activation { display: flex; flex-direction: column; margin-left: auto; padding: 35px 0 20px 0}
#Edit-person-container .person-container >.activation .title { min-width: 127px; }
#Edit-person-container .person-container label { margin-bottom: 6px; }
#Edit-person-container .select-assign-container { position: absolute; right: 0; top: 0;}
#Edit-person-container .chevron-select { display: inline-block; min-height: 26px; }
#Edit-person-container .chevron-select select { min-height: 26px;  padding: 4px 10px 0;}
#Edit-person-container .select-assign-to.chevron-select select { border-radius: 0 0 0 10px; border-top: 0; border-right: 0; }
#Edit-person-container .chevron-select:before { top: 0; }

#Edit-person-shift-settings .container {display: flex;}
#Edit-person-shift-settings .edit-person-shift-settings-day {padding: 0 8px; border-left: 1px solid var(--color-lightblue); border-right: 1px solid var(--button-normal-border); margin-left: 1px; overflow: auto; }
#Edit-person-shift-settings .edit-person-shift-settings-day:first-child {padding-left: 0; border-left: 0; margin-left: 0; }
#Edit-person-shift-settings .edit-person-shift-settings-day:last-child {border-right: 0; }
#Edit-person-shift-settings .button-activate-container {background: white; position: sticky; top: 0; z-index: 111;}
#Edit-person-shift-settings .button-activate { width: 100%; min-height: 26px; margin-bottom: 8px;}
#Edit-person-shift-settings .button-free { width: 100%; min-height: 26px; justify-content: center; }
#Edit-person-shift-settings .container label {min-width: 100px;}
#Edit-person-shift-settings .container button {min-height: 26px; width: 100%}
#Edit-person-shift-settings .container input {background-color: white;}
#Edit-person-shift-settings .container .item {display: flex; align-items: center; margin-bottom: 6px; flex-direction: column; gap: 6px; justify-content: center; }
#Edit-person-shift-settings .container .item.active:not(.button-free) { background: var(--color-lightblue-background); border: 1px solid var(--button-normal-border); padding: 6px;}
#Edit-person-shift-settings .container .item-average input { width: 72px; }

#Edit-person-container .freedays button { border-radius: 0; border-left: 0; line-height: 2px; margin-top: 4px; min-height: 26px; text-align: center; }
#Edit-person-container .freedays button:first-child { border-radius: 20px 0 0 20px; border-left: 1px solid var(--button-normal-border); }
#Edit-person-container .freedays button:last-child { border-radius: 0 20px 20px 0; }
#Edit-person-container .freedays button.active { background-color: var(--button-normal-active-background); }
#Edit-person-mpa .container { display: flex; gap: 16px; }
#Edit-person-mpa .item label { width: auto; margin-right: 6px; }
#Edit-person-container .container-edit-close { bottom: 0; border: 0; border-radius: 0 0 8px 8px; left: 0; position: sticky; text-align: center; width: 100%; overflow: hidden; display: flex;}
#Edit-person-container .edit-close { width: 50%; border-radius: 0; border: 0; border-top: 1px solid var(--button-normal-border);}
.edit-person-table-container { padding-top: 8px; }
.edit-person-table-container > .container-add { display: inline-block; }
.edit-person-table-container > .container { margin-top: 16px; }
.edit-person-table-container .container-data { display: flex; border-top: 1px solid var(--color-black); }
.edit-person-table-container .container-data .year { border-right: 1px solid var(--color-black); padding: 8px 8px 8px 0; }
.edit-person-table-container .container-data .item { display: flex; }
.edit-person-table-container .container-data .item button { min-height: unset; padding: 0 8px; font-size: 13px; line-height: 15px; height: auto; margin: 5px; min-width: unset; }
.edit-person-table-container .container-data .date { padding: 8px 16px 8px 8px; }
.edit-person-table-container .container-data .description { padding: 8px 16px 8px 8px; }

#Edit-person-overtime .container-add { display: inline-block;}
#Edit-person-overtime .container-add >*{ box-sizing: border-box; margin-bottom: 8px; margin-right: 8px;}
#Edit-person-overtime .container-add .chevron-select:before { top: -6px; }
#Edit-person-overtime .container-add select { min-height: 26px; padding: 4px 10px 0; width: 100px;}
#Edit-person-overtime .container-add > input {max-width: 82px;}
#Edit-person-overtime table {border: 0;}
#Edit-person-overtime table th, #Edit-person-overtime table td {padding: 4px 8px;}
#Edit-person-overtime table th:first-child, #Edit-person-overtime table td:first-child {border-left: 0;}
#Edit-person-overtime table th:last-child, #Edit-person-overtime table td:last-child {border-right: 0;}
#Edit-person-overtime table tbody tr:last-child td {border-bottom: 0;}


#Roster-days-container > .container { max-height: 100vh; overflow: auto; scroll-snap-type: y mandatory; }
#Roster-days-container .Roster-container { display: inline-block; max-width: calc(100vw - 36px); max-height: 100vh; overflow: auto; position: relative; scroll-snap-align: start;}
#Roster-days-container .Roster-container > h2{ background-color: var(--color-normal-background); position: sticky; left: 0; margin: 0; padding: 0.83em 0; z-index: 101; }
#Roster-days-container .Roster-container-head { 
    background: var(--color-normal-background);
    display: flex;
    gap: 8px;
    justify-content: space-between;
    left: 0;
    overflow-x: auto;
    overflow-y: hidden;
    position: sticky; 
    top: 0;
    z-index: 1001;
}
#Roster-days-container .Roster-container .container-copy-from-to { display: flex; }
#Roster-days-container .Roster-container .select-copy-from { border-radius: 8px 0 0 0; padding: 6px 10px 2px; }
#Roster-days-container .Roster-container .select-copy-to { border-radius: 0 8px 0 0; padding: 6px 10px 2px; border-left: 0; }
#Roster-days-container .Roster-container .time-scroll-container { display: flex; }
#Roster-days-container .Roster-container .time-scroll-container button { 
    border-bottom: 0;
    border-radius: 0;
    border-right: 0;
    min-width: auto;
    padding: 4px 6px;
    text-align: center;
    width: 37px;
}
#Roster-days-container .Roster-container .time-scroll-container button:first-child { border-radius: 8px 0 0 0; }
#Roster-days-container .Roster-container .time-scroll-container button:last-child { border-radius: 0 8px 0 0; border-right: 1px solid var(--button-normal-border); }
#Roster-days-container .Roster-container .button-remove-day-shifts { border: 0; border-radius: 8px 8px 0 0; padding-top: 7px; position: sticky; right: 0; text-align: center; transform: translateY(1px); }



.table-times { border-left: 0; position: relative; overflow: auto !important; }
#Roster-days-container .tables-container { display: flex; min-width: max-content; margin-bottom: 40px; padding-bottom: 40px; position: relative; }

#Roster-days-container .button-edit-table {
    all: unset;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    background-color: var(--color-transparent-lightblue);
    box-sizing: border-box;
    color: var(--color-lightblack);
    cursor: pointer;
    font-size: 30px;
    font-weight: bold;
    height: calc(100% - 40px);
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1000;
}
#Roster-days-container .button-edit-table > div { position: sticky; left: 50%; width: max-content; top: calc(50% + 50px); transform: translate(-50%, -50%); }
#Roster-days-container .Roster-container .line-cursor > div { color: var(--color-black); display: inline-block; font-size: 14px; white-space: pre;}
#Roster-days-container .Roster-container .line-v {
    display: none;
    background: linear-gradient(rgba(255,255,255,1) 50%, rgba(0,0,0,0) 50%, rgba(0,0,0,0) 0), #75a5b5;
    background-size: auto 2px;
    bottom: 40px;
    position: absolute;
    top: 0;
    height: 0;
    width: 0;
    z-index: 10000;
}
#Roster-days-container .Roster-container .line-h {
    display: none;
    background: linear-gradient(90deg, rgba(255,255,255,1) 50%, rgba(0,0,0,0) 50%, rgba(0,0,0,0) 0), #75a5b5;
    background-size: 2px auto;
    height: 0;
    width: 0;
    left: 0;
    position: absolute;
    right: 0;
    z-index: 10000;
}

#Roster-days-container table { border-collapse: collapse; z-index: 1; overflow: hidden; }
#Roster-days-container table th { padding: 0 8px; height: 68px; position: sticky; top: 0; z-index: 111; }
#Roster-days-container table th:first-child { background-color: var(--color-normal-background); background: linear-gradient(to right, var(--color-black) 1px, var(--color-normal-background) 1px, var(--color-normal-background) calc(100% - 1px), var(--color-black) 1px); border: 0; min-width: 200px; box-sizing: border-box; left: 0; z-index: 1001; line-height: 30px; font-size: 16px; vertical-align: bottom; }
#Roster-days-container table th:last-child { vertical-align: bottom; background-color: var(--color-normal-background);}
#Roster-days-container tr.active {position: relative; z-index: 100;}
#Roster-days-container tr.hover td:not(.td-name) { border: 1px solid var(--color-outline-hover) !important; border-left: 0 !important;}
#Roster-days-container tr.hover td.td-name { border-color: var(--color-outline-hover) !important; box-shadow: inset 0 0 4px var(--color-outline-hover);}
#Roster-days-container tr.hover +tr td { border-top-color: var(--color-outline-hover) !important; }
#Roster-days-container tr.hover .td-top-bottom { border-color: var(--color-outline-hover) !important; position: relative;}
#Roster-days-container tr th .th-amount-container.active { color: var(--color-lightblue); }
#Roster-days-container tr th .th-amount-container { cursor: pointer; display: flex; }
#Roster-days-container tr th .th-amount-buttons {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-left: 4px;
    opacity: .7;
    padding: 3px 0;
}
#Roster-days-container tr th .th-amount-buttons button {
    all: unset;
    cursor: pointer; 
    line-height: 0.5;
    padding: 4px;
}
#Roster-days-container tr th .th-amount-buttons button:hover { color: gray; }
#Roster-days-container tr th .th-amount-buttons button:before { font-size: 21px; }
#Roster-days-container tr th .th-amount-buttons button.chevron-up { padding-bottom: 0; }
#Roster-days-container tr th .th-amount-buttons button.chevron-down { padding-top: 0; }


#Roster-days-container td, #Roster-days-container th { position: relative; min-width: 68px; }
#Roster-days-container td {border: 1px solid var(--color-black); border-bottom: 0;}

#Roster-days-container tr td { height: 48px !important; max-height: 48px !important; padding: 0; vertical-align: bottom; }
#Roster-days-container tr.disabled td:not(td:first-child) { border-style: dotted; opacity: .5; }
#Roster-days-container tr.disabled +tr td:not(td:first-child) { border-top-style: dotted; }
#Roster-days-container tr td:nth-child(2) {border-left: 0;}
#Roster-days-container tr td .td-name-hours-container { display: grid; grid-template-areas: "name top" "name bottom"; grid-template-columns: 1fr auto;}
#Roster-days-container tr td .td-name-container { display: grid; gap: 0 4px; grid-template-areas: "name overtime" "hours hours"; grid-template-columns: 1fr auto; height: 100%; }
#Roster-days-container tr td.td-sticky { position: -webkit-sticky; position: sticky; left: 0; z-index: 10;}
#Roster-days-container tr td.td-name { padding: 0; vertical-align: top; border-bottom: 0; border-left: 0; border-right: 0;}
#Roster-days-container tr td.td-name.active { background-color: var(--button-normal-active-background) !important; z-index: 100; }
#Roster-days-container tr td.td-name .name { padding: 4px 0 0 6px; white-space: nowrap; }



#Roster-days-container tr td.td-name-hours-container { border-left: 1px solid var(--color-black);}
#Roster-days-container tr td.td-name-hours .td-top-bottom { border-left: 1px solid var(--color-black); }
#Roster-days-container tr td.td-name-hours .td-top { display: flex; grid-area: top; }
#Roster-days-container tr td.td-name-hours .td-bottom { display: flex; justify-content: space-between; }
#Roster-days-container tr td.td-name-hours .button-menu { grid-area: menu; margin: 0 1px 0 auto; border-left: 1px solid var(--color-gray); border-bottom: 1px solid var(--color-gray); border-radius: 0 0 0 8px; width: 26px; box-sizing: border-box; }
#Roster-days-container tr td.td-name-hours .button-menu[disabled="true"] { cursor: unset; opacity: 0; }
#Roster-days-container tr td.td-name-hours div.button-menu { opacity: 0;}
#Roster-days-container tr td.td-name-hours .menu { 
    background-color: white;
    border: 1px solid var(--color-black);
    display: none; 
    min-height: 36px;
    min-width: 120px;
    position: absolute;
    right: 27px;
    top: 0;
    transform: translateX(100%);
    white-space: nowrap;
    z-index: 1;
}
#Roster-days-container tr td.td-name-hours .menu.active { display: inline-block; }
#Roster-days-container tr td.td-name-hours .menu > div { display: flex; flex-direction: column; }
#Roster-days-container tr td.td-name-hours .menu p { padding: 0 8px; }
#Roster-days-container tr td.td-name-hours .menu button.button-remove { border-radius: 0; border: 0; text-align: left; padding: 8px;}
#Roster-days-container tr td.td-name-hours .menu button:not(.button-remove) { all: unset; background: var(--color-orange); border-top: 1px solid var(--color-black); cursor: pointer; padding: 8px; }
#Roster-days-container tr td.td-name-hours .menu button:not(.button-remove):hover { background-color: var(--color-orange-hover); }
#Roster-days-container tr td.td-name-hours .menu .menu-extras .free:first-child { border-top: 3px solid var(--color-black); }
#Roster-days-container tr td.td-name-hours .menu >div *.free { background-color: var(--color-lightblue); border-top: 1px solid var(--color-black);}
#Roster-days-container tr td.td-name-hours .menu >div *.free:hover { background-color: var(--color-blue); }
#Roster-days-container tr td.td-name-hours .menu .menu-extras { display: flex; flex-direction: column;}
#Roster-days-container tr td.td-name-hours .menu .menu-extras >div { align-items: center; display: flex; justify-content: space-between; padding-left: 8px; }
#Roster-days-container tr td.td-name-hours .menu .menu-extras input { background: white; box-sizing: border-box; width: 72px; }


#Roster-days-container tr td.td-name-after { text-align: center; vertical-align: middle; }
#Roster-days-container tr td.td-name .td-overtime { align-items: center; display: flex; font-size: 12px; grid-area: overtime; justify-content: center; margin-right: 6px; opacity: .7;}
#Roster-days-container tr td.td-name .td-overtime.red { color: var(--color-text-red); }
#Roster-days-container tr td.td-name .td-overtime.orange { color: var(--color-text-orange); }
#Roster-days-container tr td.td-name .td-overtime.green { color: var(--color-text-green); }
#Roster-days-container tr td.td-name-hours .td-info { grid-area: info; margin: 0 6px 0 0; position: relative; z-index: 1;}
#Roster-days-container tr td.td-name-hours .td-info button { border-color: var(--color-gray); border-radius: 0 0 28px 28px; border-top: 0; grid-area: info; }
#Roster-days-container tr td.td-name-hours .td-info button.set { background: var(--color-yellow); color: var(--color-blue); }
#Roster-days-container tr td.td-name-hours .td-info textarea { position: absolute; left: 0; top: 0; }

#Roster-days-container td .hours-container { align-items: flex-end; display: flex; font-size: 14px; gap: 4px; grid-area: hours; justify-content: space-between; width: 100%; }
#Roster-days-container tr .hours-amount { padding: 4px 0 4px 6px; }
#Roster-days-container tr .hours-mpa { margin-left: auto; opacity: 0.7; padding: 2px 0 0; }
#Roster-days-container tr .hours-mpa >div { padding: 0 6px; width: 28px; }
#Roster-days-container tr .hours-mpa >div.title { font-size: 10px; }
#Roster-days-container tr .hours-given { opacity: .8; }
#Roster-days-container tr .hours-today { align-items: flex-end; display: flex; justify-content: flex-end; padding: 4px 6px 4px 0; }
#Roster-days-container tr .break-today { align-items: flex-end; display: flex; padding: 4px 6px; }
#Roster-days-container .td-day-time {
    overflow: hidden;
}
#Roster-days-container .td-day-time .container {
    display: grid;
    grid-template-rows: 11px 1fr auto;
    grid-template-areas:
    "header"
    "add"
    "mod";
    height: 100%;
    width: 100%;
}
#Roster-days-container .td-day-time.free .container { display: flex; justify-content: center; align-items: center; }
#Roster-days-container .assigned .container { background-color: green; }
#Roster-days-container .td-day-time .container > p{ margin: 4px auto; max-width: 68px; }



#Roster-days-container .shift-split {
    all: unset;
    background-color: var(--color-lightred);
    border-left: 1px solid var(--color-black);
    cursor: pointer;
    display: flex;
    grid-area: header;
    margin-left: auto;
    opacity: .4;
    width: 25px;
}
#Roster-days-container .shift-split:hover { background-color: var(--color-red); opacity: .8; }
#Roster-days-container .shift-split:after { font-size: 12px; line-height: 10px; }

#Roster-days-container .shiftmodify-buttons-container {
    display: flex;
    grid-area: add;
    height: 100%;
    min-height: 50%;
    width: 100%;
}
#Roster-days-container .shiftmodify-buttons-container button {
    border-color: var(--color-lightgray);
    border-radius: 0;
    color: var(--color-lightgray);
    height: 100%;
    min-width: unset;
    padding: 0 8px;
}
#Roster-days-container .roster-add-extra-shift {    
    all: unset;
    color: gray;
    cursor: pointer;
    grid-area: header;
    font-size: 11px;
    line-height: 10px;
    text-align: center;
    background: var(--color-whiteblue);
}
#Roster-days-container .roster-add-extra-shift:hover { color: var(--color-black); background-color: var(--color-lightblue)}
#Roster-days-container .shiftmodify-buttons-container .roster-add-shift {
    background-color: var(--color-whitegray);
    border-bottom: 0;
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    color: gray;
    cursor: pointer;
    height: 100%;
    opacity: .8;
    order: 2;
    padding: 0;
    position: relative;
    margin: 0;
    min-height: unset;
    min-width: unset;
    width: 100%;
}
#Roster-days-container .shiftmodify-buttons-container .roster-add-shift:hover { background-color: var(--button-normal-hover-background); opacity: 1; }
#Roster-days-container .shiftmodify-buttons-container .button-extend-shorten {
    all: unset;
    align-items: center;
    background: var(--color-whitegray);
    border-top: 1px solid gray;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    height: 100%;
    justify-content: center;
    padding: 0 3px;
    width: 50%;
}
#Roster-days-container .shiftmodify-buttons-container .button-extend-shorten:hover { background: var(--color-whiteblue); }
#Roster-days-container .shiftmodify-buttons-container .button-extend-shorten:before {
    line-height: 0.5;
}

#Roster-days-container .roster-extend-shift { margin-left: auto; background-color: var(--color-whitegray); border-bottom: 0; }
#Roster-days-container .roster-extend-shift:before { color: var(--color-gray); }
#Roster-days-container .roster-extend-shift:hover { background-color: var(--button-normal-hover-background); border-color: gray; color: gray; }
#Roster-days-container .roster-extend-shift.chevron-left { margin-left: auto; border-right: 0; order: 3;}
#Roster-days-container .roster-extend-shift.chevron-right { margin-right: auto; border-left: 0; order: 1;}

#Roster-days-container .shiftmodify-buttons-container-inner { display: flex; grid-area: mod; }
#Roster-days-container .shiftmodify-buttons-container-inner button {
    background-color: #bfd9bf;
    border: 0;
    border-top: 1px solid #80808075;
    border-radius: 0;
    color: #80808094;
    min-height: unset;
    min-width: unset;
    padding-bottom: 0;
    padding-top: 0;
    width: 50%;
}
#Roster-days-container .shiftmodify-buttons-container-inner button:before { font-size: 23px; line-height: 16px; padding-bottom: 2px; }
#Roster-days-container .shiftmodify-buttons-container-inner button:hover { background-color: var(--button-normal-hover-background); border-color: gray; color: gray; }
#Roster-days-container .shiftmodify-buttons-container-inner .chevron-right { padding-right: 0; }
#Roster-days-container .shiftmodify-buttons-container-inner .chevron-left { padding-left: 0; }
#Roster-days-container .shiftmodify-buttons-container-inner .chevron-right:before { float: left; }
#Roster-days-container .shiftmodify-buttons-container-inner .chevron-left:before { float: right; }


#Roster-days-container .th-day-time { padding: 0; vertical-align: bottom; }
#Roster-days-container .th-day-time .time { font-size: 16px; margin-bottom: 4px; margin-top: 8px; transform: translateX(-50%);}
#Roster-days-container .th-day-time .time-amount { border-bottom: 1px solid var(--color-lightblue); display: flex; font-size: 12px; justify-content: center; line-height: 19px; opacity: .5;}
#Roster-days-container .th-day-time .time-amount:hover { opacity: .8; }
#Roster-days-container .th-day-time .time-amount p { margin: auto 0;}


#Roster-container-week { max-height: calc(100vh - 40px); overflow: auto;}

#Roster-week-view-settings { display: flex; flex-direction: column;  gap: 16px; padding-top: 20px; position: relative; border-top: 4px double var(--button-normal-border); }
#Roster-week-view-settings .settings { background: var(--color-lightblue-background); border: 1px solid var(--button-normal-border); display: flex; gap: 16px; flex-direction: column; max-width: max-content; padding: 16px; }
#Roster-week-view-settings .settings .row { display: flex; gap: 16px; align-items: flex-end; }
#Roster-week-view-settings .settings .row > div { min-width: 228px; }
#Roster-week-view-settings label { display: block; margin-bottom: 4px; }
#Roster-week-view-settings button { text-align: center; }
#Roster-week-print-mode { display: flex; flex-direction: column;}
#Roster-week-print-zoom { display: flex; flex-direction: column;}
#Roster-week-print-zoom input {box-sizing: border-box; background-color: white; height: 10px; width: 100px;}
#Roster-week-print-zoom >div { display: flex; gap: 6px; align-items: center; }
#Roster-week-print-zoom button { all: unset; color: var(--color-lightblue); cursor: pointer; font-size: 18px; font-weight: bold; line-height: 32px;}
#Roster-week-print-zoom button:first-child { font-size: 28px; }
#Roster-week-print-zoom button:hover { color: #4d879b; }

#Roster-week-display-overtime { width: 273px; }
#Roster-week-add-editable-row { display: flex; flex-direction: column; gap: 6px; margin-top: 8px;}
#Roster-week-add-editable-row button { width: 273px; }
#Roster-week-container { margin-top: 20px; margin-bottom: 40px; }
#Roster-week-container h2 { display: inline-block; }
#Roster-week-container > button { margin: 0 20px; display: inline-block; transform: translateY(-4px); }
#Roster-week-container th, #Roster-week-container td { padding: 0 6px;}
#Roster-week-container th p {margin: 8px 0; }
#Roster-week-container td { vertical-align: top; height: 0; }
#Roster-week-container .tr-editable td,
#Roster-week-container .tr-editable th { padding: 8px 6px; font-weight: normal; text-align: left; vertical-align: top; }
#Roster-week-container .td-name { display: grid; grid-template-areas: "name overtime" "hours breaks"; ; gap: 8px; margin-bottom: 6px; margin-top: 6px; }
#Roster-week-container .td-name p:first-child { grid-area: name; }
#Roster-week-container .td-name p:nth-child(2) { font-size: 14px; grid-area: overtime; text-align: right;}
#Roster-week-container .td-name p:nth-child(3) { font-size: 14px; grid-area: hours; }
#Roster-week-container .td-name p:nth-child(4) { font-size: 14px; grid-area: breaks; text-align: right; }
#Roster-week-container .td-name p { margin: 0; }
#Roster-week-container .Roster-week-td.free { vertical-align: middle;}
#Roster-week-container .Roster-week-td.free p { margin: 0; font-size: 19px; }
#Roster-week-container .Roster-week-td.free p.time { max-width: 100px; overflow: hidden; }
.Roster-week-td .container { display: grid; font-family: Arial, Helvetica, monospace; min-width: max-content; grid-template-areas: "time time time" "break mpa duration"; grid-template-columns: 1fr auto 1fr; white-space: pre; }
.Roster-week-td .time { margin-top: 6px; min-height: 19px; grid-area: time; text-align: center; }
.Roster-week-td .time >div { display: flex; }
.Roster-week-td .time p {	margin-bottom: 3px; margin-top: 0; }
.Roster-week-editable .Roster-week-td div.time:hover, 
.Roster-week-editable .Roster-week-td .mpa:hover {background-color: var(--button-normal-hover-background)}
.Roster-week-editable .Roster-week-td input:hover {background-color: var(--color-orange)}
.Roster-week-td .mpa input,
.Roster-week-td .time input {all: unset; -webkit-appearance: none; font-family: Arial, Helvetica, monospace; }
.Roster-week-td .mpa input { max-width: 53px; margin-right: -12px; }
.Roster-week-td .time input { font-size: 14px;}
.Roster-week-td .mpa input[type="time"]::-webkit-calendar-picker-indicatorA,
.Roster-week-td .time input[type="time"]::-webkit-calendar-picker-indicator { display: none; }
.Roster-week-td .duration { grid-area: duration; margin: 6px 0; text-align: right; justify-content: flex-end;}
.Roster-week-td .label { grid-area: label; text-align: center; font-size: 19px; margin: auto; display: flex; padding: 0 4px 0 2px;}
.Roster-week-td .mpa { grid-area: mpa; margin: 0 0 2px 0; text-align: center; font-size: 11px; padding: 0 2px 0 4px;}
.Roster-week-td .break { grid-area: break; margin: 6px 0; text-align: left; }
.Roster-week-td .info {	max-width: fit-content; font-size: 11px; white-space: break-spaces; }
.Roster-week-td .info >div { margin: 0 4px 4px;}
.Roster-week-td .break, .Roster-week-td .duration { display: flex; align-items: flex-end; }
#Roster-week-table .td-editable-cell {border-left: 4px double var(--color-black); font-weight: normal; padding-top: 6px; padding-bottom: 6px; text-align: left;  min-width: 60px; vertical-align: top;}

#Roster-week-info { max-width: fit-content; }
#Roster-week-info > div { white-space: break-spaces; margin-top: 40px; }

#Popup {
    background-color: var(--color-transparent-white);
    box-sizing: border-box;
    cursor: pointer;
    display: none;
    height: 100%;
    left: 0;
    padding: 20px 20px 60px;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 100000;
}
#Popup.active { display: flex; }
#Popup-container {
    background-color: white;
    border: 1px solid var(--color-lightblue);
    border-radius: 8px;
    cursor: unset;
    margin: auto;
    max-width: 600px;
    max-height: 80vh;
    min-width: 70vw;
    overflow: auto;
    position: relative;
    padding-top: 0 !important;
    white-space: break-spaces;
    z-index: 1;
}
#Popup-container .button-back { position: absolute; top: 0; left: 0; border-radius: 8px 0 0 0; border: 0; background: var(--color-lightblue); opacity: .6; }
#Popup-container .button-x { position: sticky; left: 100%; transform: translate(21px, 0); top: 0; width: 50px; border: 0; border-radius: 0 8px 0 0; background: var(--color-lightblue); opacity: .6; }
#Popup-container .button-x:hover { opacity: 1; } 
#Popup-container p { padding: 0 20px; font-size: 16px; }

#Popup.request-remove #Popup-container button { border-bottom: 0; border-left: 0; border-radius: 0; text-align: center; width: 50%; }
#Popup.request-remove #Popup-container button:nth-last-child(1) { border-right: 0; }

#Popup.help #Popup-container { padding: 20px; }
#Popup.help .container > button { width: 100%; border: 1px solid var(--button-normal-border); border-radius: 0;}
#Popup.help .container > p { display: none; cursor: unset; }
#Popup.help .container.active > p { display: inline-block; }

#Popup.closingtime #Popup-container { padding: 20px; }
#Popup.closingtime .container-add { margin-bottom: 20px; }
#Popup.closingtime #Set-closing-time { width: 100%; align-items: center; display: flex; }
#Popup.closingtime #Set-closing-time >* { margin-right: 6px;; }
#Popup.closingtime table, #Popup.closingtime table th, #Popup.closingtime table td { border-color: var(--button-normal-border); text-align: left; }
#Popup.closingtime table th, #Popup.closingtime table td { padding: 0 6px;}
#Popup.closingtime table th { padding: 4px 6px;}
#Popup.closingtime table td:first-child:not(.year) { border: 0;}
#Popup.closingtime table td.year { border-bottom: 0;}
#Popup.closingtime .td-person { text-align: center; }
#Popup.closingtime .td-person .person button {min-width: auto; margin-bottom: 4px;}
#Popup.closingtime .td-person .person .container button {margin-right: 2px; }

#Popup.reactivate-person #Popup-container {display: flex; justify-content: center; flex-direction: column; align-items: center; gap: 8px; padding: 20px; min-width: 248px;}

#Popup.vacations-overview #Popup-container {max-width: 98vw; padding: 20px;}
#Popup.vacations-overview #Popup-container > button {border-radius: 8px 8px 0 0;}
#Popup.vacations-overview th {padding: 8px; min-width: 84px; }
#Popup.vacations-overview td {position: relative; padding-top: 13px;}
#Popup.vacations-overview .td-name {padding: 4px 8px; height: 39px; box-sizing: border-box; }
#Popup.vacations-overview .view .td-name {height: auto; }
#Popup.vacations-overview .table-container {overflow: auto; }
#Popup.vacations-overview .table-container button {border-radius: 0; z-index: 2; padding: 0; min-height: 24px; min-width: 100%; background-color: #61a64d;}
#Popup.vacations-overview .table-container button:hover { background-color: #9ed18f; }
#Popup.vacations-overview .table-container button.isClosing:hover { background-color: #fdd3a7; }
#Popup.vacations-overview .table-container .button-spacer { height: 24px;}
#Popup.vacations-overview .table-container .button-new {background-color: var(--button-normal-border); opacity: .4; width: 100%;    min-height: 13px; font-size: 10px; font-weight: bold; position: absolute; left: 0; top: 0; z-index: 1;}
#Popup.vacations-overview .table-container .button-new:hover {opacity: .8;}
#Popup.vacations-overview .table-container table tr > *:first-child {background-color: white; position: sticky; left: 0; z-index: 10}
#Popup.vacations-overview .table-container .tr-x td {border-bottom: 4px double var(--color-black); height: auto;}
#Popup.vacations-overview .table-container .tr-x td:not(.td-name) { padding-top: 0; }
#Popup.vacations-overview .table-container .tr-x td > button {background-color: #ffaa4f; top: 0 !important;}
#Popup.vacations-overview .table-container td > button.isclosing {background-color: #ffaa4f;}
#Popup.vacations-overview .table-container.view td > button { min-height: 100%; border: 0; border-left: 1px solid white; border-right: 1px solid white; overflow: hidden; font-size: 12px; white-space: nowrap; padding-top: 1px !important;}
#Popup.vacations-overview .table-container.view td > button span { background-color: #61a64d; padding: 4px; }
#Popup.vacations-overview .table-container.view td > button.isclosing span { background-color: #ffaa4f; }
#Popup.vacations-overview .table-container.view td > button.button-new:hover { background-color: var(--button-normal-hover-background); opacity: .8; }
#Popup.vacations-overview .table-container.view td > button:not(.button-new):hover { overflow: visible; z-index: 100;}
#Popup.vacations-overview .table-container.view td > button:not(.button-new):hover span { background-color: #9ed18f; border: 1px solid white; }
#Popup.vacations-overview .table-container.view td > button.isclosing:hover span { background-color: #fdd3a7;}
#Popup.vacations-overview .table-container.view .button-new { opacity: 0.2;}
#Popup.vacations-overview .vacations-overview-popup-edit .button-x { position: absolute; top: 0; right: 0; left: unset; transform: unset;  min-width: 20px; min-height: 20px; background: var(--button-normal-border); border-radius: 0 0 0 10px; }
#Popup.vacations-overview .vacations-overview-popup-edit .button-x:hover { opacity: 1;}

#Popup.vacations-overview .table-container .vacations-overview-popup-edit > button:not(.button-x) { margin: 0; min-width: 50%; }
#Popup.vacations-overview .table-container .vacations-overview-popup-edit .button-remove {background: #f58186; }
#Popup.vacations-overview .table-container .vacations-overview-popup-edit .button-remove:hover {background: #FF0D0D; }
#Popup .vacations-overview-popup-edit { position: absolute; background: white; z-index: 100; border: 2px solid var(--button-normal-border); }
#Popup .vacations-overview-popup-edit .container { padding: 8px; }
#Popup .vacations-overview-popup-edit h4 { margin: 0 0 8px; }


#Roster-copy-person-from { margin: 20px 0 80px; grid-area: week-copy;}
#Roster-auto-add-shifts {grid-area: auto-add}

#Popup.roster-copy-person #Popup-container { padding: 20px; }
#Popup.roster-copy-person .box { display: flex; gap: 16px; }
#Popup.roster-copy-person .box .item { display: flex; flex-direction: column; }
#Popup.roster-copy-person .box .item button:not(.button-save) { border-radius: 0; }

#Popup.roster-copy-person-table { padding: 10vh 0 0; }
#Popup.roster-copy-person-table #Popup-container { box-sizing: border-box; padding: 20px; max-height: 90vh; min-width: unset; max-width: 100%;}
#Popup.roster-copy-person-table .box { display: flex; position: relative; max-height: calc(90vh - 101px);}
#Popup.roster-copy-person-table .box .item-table { max-width: calc(50% - 16px); }
#Popup.roster-copy-person-table .box .item-table > .container { max-height: calc(100% - 32px); overflow: auto; position: relative; z-index: 2;}
#Popup.roster-copy-person-table .box .item-table-to { max-width: calc(50% + 16px); position: relative; z-index: 2;}
#Popup.roster-copy-person-table .box .item-header { display: flex; position: sticky; left: 0; z-index: 3; margin-bottom: -1px; border-bottom: 1px solid var(--color-black);}
#Popup.roster-copy-person-table .box .item-table-to .item-header { justify-content: flex-end; max-width: calc(100% - 101px); margin-left: auto;}
#Popup.roster-copy-person-table .box .item-header .edit-shift { border-radius: 0; border-right: 0; border-bottom: 0;}
#Popup.roster-copy-person-table .box .item-header .change-date {line-height: 20px;}
#Popup.roster-copy-person-table .box .item-header .change-date button { min-width: unset; border-radius: 0; }
#Popup.roster-copy-person-table .box .item-header .change-date button:first-child { border-right: 0; }
#Popup.roster-copy-person-table .box .select-roster-label { background: #d3f0f9; border: 1px solid var(--color-black); border-bottom: 0; border-radius: 8px 0 0 0; display: flex; flex-direction: column; max-width: 110px; position: sticky; left: 0; }
#Popup.roster-copy-person-table .box .select-roster-label { height: 32px; }
#Popup.roster-copy-person-table .box .item-table-to > .container { margin-left: 32px; }
#Popup.roster-copy-person-table .box .item-table-to .select-roster-label { background: #fff2c5; border-radius: 0 8px 0 0; max-width: 110px; position: relative; left: unset;  width: 100% !important; }
#Popup.roster-copy-person-table .box .select-roster { border-radius: 0; background: transparent; border: 0; padding: 0 18px; line-height: 32px;}
#Popup.roster-copy-person-table .box table { z-index: 1; position: relative; background: white;}
#Popup.roster-copy-person-table .box table * { padding: 0 !important; margin: 0px !important;}
#Popup.roster-copy-person-table .box table thead { position: sticky; top: 0; z-index: 11;}
#Popup.roster-copy-person-table .box table th { padding: 4px 2px !important; background: white; z-index: 1;}
#Popup.roster-copy-person-table .box table th.inactive { background: #d5e3ca !important;}
#Popup.roster-copy-person-table .box table td { padding: 4px 2px !important; }
#Popup.roster-copy-person-table .box table td.inactive { background: #f0ffeb !important;}
#Popup.roster-copy-person-table .box table th.hover,
#Popup.roster-copy-person-table .box table th:hover,
#Popup.roster-copy-person-table .box table td.hover,
#Popup.roster-copy-person-table .box table td:hover { outline: 1px solid lightcoral;}
#Popup.roster-copy-person-table .box table p { font-size: 12px; }
#Popup.roster-copy-person-table .box table tr .Roster-week-td-name {position: sticky; left: 0; background: white; border-left: 1px solid var(--color-black); background: linear-gradient(to Right, var(--color-black) 1px, white 2px, white calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; padding: 4px 4px !important; transform: translate(-2px, 0); z-index: 10;}
#Popup.roster-copy-person-table .box table tr .Roster-week-td-name.inactive { background: linear-gradient(to Right, var(--color-black) 1px, #f0ffeb 2px, #f0ffeb  calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; }
#Popup.roster-copy-person-table .box table tr:nth-child(2n) .Roster-week-td-name:not(.inactive) { background: linear-gradient(to Right, var(--color-black) 1px, #f1f0f0 2px, #f1f0f0 calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; }
#Popup.roster-copy-person-table .box table tr:nth-child(2n) td:not(.Roster-week-td-name).inactive {background: #d5e3ca !important;}
#Popup.roster-copy-person-table .box table#Roster-week-table-from tr .Roster-week-td-name.active { background: linear-gradient(to Right, var(--color-black) 1px, #d3f0f9 2px, #d3f0f9 calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; }
#Popup.roster-copy-person-table .box table#Roster-week-table-from tr:nth-child(2n) .Roster-week-td-name.active { background: linear-gradient(to Right, var(--color-black) 1px, var(--color-lightblue) 2px, var(--color-lightblue) calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; }
#Popup.roster-copy-person-table .box table#Roster-week-table-from .Roster-week-td-name:not(.inactive).hover, 
#Popup.roster-copy-person-table .box table#Roster-week-table-from .Roster-week-td-name:not(.inactive):hover { background: linear-gradient(to Right, var(--color-black) 1px, #bfdae3 2px, #bfdae3 calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; }
#Popup.roster-copy-person-table .box table .Roster-week-td-name.inactive { background: linear-gradient(to Right, var(--color-black) 1px, #f0ffeb 2px, #f0ffeb calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; }
#Popup.roster-copy-person-table .box table tr:nth-child(2n) .Roster-week-td-name.inactive { background: linear-gradient(to Right, var(--color-black) 1px, #d5e3ca 2px, #d5e3ca calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; }

#Popup.roster-copy-person-table .box table#Roster-week-table-to tr .Roster-week-td-name.active { background: linear-gradient(to Right, var(--color-black) 1px, #fff2c5 2px, #fff2c5 calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; }
#Popup.roster-copy-person-table .box table#Roster-week-table-to tr:nth-child(2n) .Roster-week-td-name:not(.inactive) { background: linear-gradient(to Right, var(--color-black) 1px, #f1f0f0 2px, #f1f0f0 calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; }
#Popup.roster-copy-person-table .box table#Roster-week-table-to tr:nth-child(2n) .Roster-week-td-name.active { background: linear-gradient(to Right, var(--color-black) 1px, #fbce50 2px, #fbce50 calc(100% - 2px), var(--color-black) calc(100% - 1px)) !imporTAnt; }
#Popup.roster-copy-person-table .box table#Roster-week-table-to tr .Roster-week-td-name:not(.inactive).hover,
#Popup.roster-copy-person-table .box table#Roster-week-table-to tr .Roster-week-td-name:not(.inactive):hover { background: linear-gradient(to Right, var(--color-black) 1px, #f1de9d 2px, #f1de9d calc(100% - 2px), var(--color-black) calc(100% - 1px)) !important; }

#Popup.roster-copy-person-table .box table tr:nth-child(2n) td { background: #f1f0f0;}
#Popup.roster-copy-person-table .box table .breaks,
#Popup.roster-copy-person-table .box table .mpa >div:first-child,
#Popup.roster-copy-person-table .box table .td-editable-cell,
#Popup.roster-copy-person-table .box table .td-editable-row,
#Popup.roster-copy-person-table .box table .td-editable-row,
#Popup.roster-copy-person-table .box table .tr-editable,
#Popup.roster-copy-person-table .box table .tr-empty:nth-last-child(2),
#Popup.roster-copy-person-table .box table .info { display: none; }
#Popup.roster-copy-person-table .box table .Roster-week-td { box-sizing: content-box; min-width: 80px; }

#Popup.roster-copy-person-table .box .Roster-week-table-copy-person-container { position: relative; max-width: calc(50% - 16px); overflow: auto; }
#Popup.roster-copy-person-table .box .item:last-child .Roster-week-table-copy-person-container { padding: 33px 0 0 32px;}
#Popup.roster-copy-person-table .box table#Roster-week-table-from th:not(.inactive).hover,
#Popup.roster-copy-person-table .box table#Roster-week-table-from th:not(.inactive):hover { background-color: #c3e1eb !important;}
#Popup.roster-copy-person-table .box table#Roster-week-table-from td { cursor: pointer; }
#Popup.roster-copy-person-table .box table#Roster-week-table-from td:not(.no-shift).active { background-color: #d3f0f9;}
#Popup.roster-copy-person-table .box table#Roster-week-table-from tr:nth-child(2n) td:not(.no-shift).active { background-color: var(--button-normal-active-background);}
#Popup.roster-copy-person-table .box table#Roster-week-table-from td.Roster-week-td:not(.no-shift):not(.inactive).hover,
#Popup.roster-copy-person-table .box table#Roster-week-table-from td.Roster-week-td:not(.no-shift):not(.inactive):hover { background-color: #c3e1eb !important;}
#Popup.roster-copy-person-table .box table#Roster-week-table-from th { cursor: pointer; padding: 4px 2px !important; }
#Popup.roster-copy-person-table .box table#Roster-week-table-from th.active { background-color: var(--button-normal-active-background);}

#Popup.roster-copy-person-table .box table#Roster-week-table-to th.active { background: #fbce50;}
#Popup.roster-copy-person-table .box table#Roster-week-table-to th:not(.inactive).hover,
#Popup.roster-copy-person-table .box table#Roster-week-table-to th:not(.inactive):hover { background-color: #f1de9d !important;}
#Popup.roster-copy-person-table .box table#Roster-week-table-to td.active { background: #fff2c5;}
#Popup.roster-copy-person-table .box table#Roster-week-table-to tr:nth-child(2n) td.active { background: #fbce50;}
#Popup.roster-copy-person-table .box table#Roster-week-table-to td.Roster-week-td:not(.no-shift):not(.inactive).hover,
#Popup.roster-copy-person-table .box table#Roster-week-table-to td.Roster-week-td:not(.no-shift):not(.inactive):hover { background-color: #f1de9d !important;}
#Popup.roster-copy-person-table .box table#Roster-week-table-to td.Roster-week-td.no-shift:not(.inactive).hover,
#Popup.roster-copy-person-table .box table#Roster-week-table-to td.Roster-week-td.no-shift:not(.inactive):hover { background-color: #f1de9d !important;}
#Popup.roster-copy-person-table .box .button-save { border-radius: 0; border: 1px solid var(--color-black); line-height: 22px; display: flex; height: 100%; position:absolute; top: 0; left: 0; z-index: 1;}
#Popup.roster-copy-person-table .box table#Roster-week-table-to .Roster-week-td-name {transform: translate(-1px, 0) !important;}

#Popup.closingtime #Popup-container.lawful {padding: 40px 20px 20px;}
.lawful-vacations >div { display: grid; grid-template-columns: auto auto 1fr;}
.lawful-vacations >div >* {display: flex; align-items: center;}

#Add-closingtimes-closingtimes .td-person >div { display: flex; justify-content: center; padding: 4px 0; }
#Add-closingtimes-closingtimes .td-person .all { margin-right: auto; padding-right: 8px;}
#Add-closingtimes-closingtimes .td-person .all >button { height: 100%; }
#Add-closingtimes-closingtimes .td-person .container { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px;}
#Add-closingtimes-closingtimes .td-person button {padding: 4px 6px; min-width: unset; min-height: unset; border-radius: 6px;}

.Footer {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 40px;
}
.Footer a { color: var(--color-blue) !important; cursor: pointer; }

@keyframes loadingA {
    0%   {opacity: 1;}
    25%  {opacity: 1;}
    50%  {opacity: 0;}
    100% {opacity: 0;}
}

@keyframes loadingB {
    0%   {opacity: 0;}
    25%  {opacity: 1;}
    50%  {opacity: 1;}
    100% {opacity: 0;}
}

@keyframes loadingC {
    0%   {opacity: 0;}
    25%  {opacity: 0;}
    50%  {opacity: 1;}
    100% {opacity: 1;}
}



#Loading-screen.d-none { opacity: 0; display: flex !important; z-index: -1;}    
#Loading-screen {    
    transition: opacity 1s;
    align-items: center;
    background: var(--color-lightblue);
    display: flex;
    font-size: 45px;
    justify-content: center;
    height: 100%;
    left: 0;
    opacity: .8;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1000000;
}
#Loading-screen >div { animation-duration: 1s; animation-iteration-count: infinite;}    
#Loading-screen >div:nth-child(1) {  animation-name: loadingA; }
#Loading-screen >div:nth-child(2) {  animation-name: loadingB; }
#Loading-screen >div:nth-child(3) {  animation-name: loadingC; }

#Console { all: unset; position: fixed; bottom: 0; left: 0; width: 100%; background: black; z-index: 1000000; color: white; }
#Console-input { display: flex; height: 18px; white-space: pre; }
#Console-input div.person {color: var(--color-whitegreen);}
#Console-input div.day {color: var(--color-whiteblue);}
#Console-input div.time {color: var(--color-whiteblue);}
#Console-input div.time {color: var(--color-whiteblue);}
#Console-help  div.active{ background: white; color: black; }
