@import url("./workforce-custom.css");
.payroll{display:grid;gap:5px;min-width:0;width:100%;font-size:12px;color:#18354c}.payroll>*{min-width:0}.payroll h2{font-size:18px;margin:0 10px 0 0}.payroll-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.payroll-toolbar label{display:flex;align-items:center;gap:5px;font-size:12px}.payroll-toolbar input,.payroll-toolbar select{border:1px solid #bfd0df;border-radius:4px;padding:3px 6px;min-height:27px}.payroll button{font-size:12px;min-height:27px;padding:3px 9px}.payroll .payroll-sheet-select{margin-left:auto}.payroll-month-tools>strong{margin-right:8px}.payroll-month-tools button:first-of-type{margin-left:auto}.payroll-totals{display:flex;gap:6px;flex-wrap:wrap}.payroll-totals>div{flex:1 1 160px;border:1px solid #d7e1ec;border-radius:5px;padding:5px 9px;min-width:0}.payroll-totals span{font-size:11px;color:#52697c}.payroll-totals strong{display:block;font-size:17px;margin-top:1px;white-space:nowrap}.payroll-totals .payroll-unknown{font-size:12px;white-space:normal}.payroll-table-wrap{overflow:auto;border:1px solid #ccd8e5;width:100%;max-width:100%}.payroll .payroll-month-table{border-collapse:separate;border-spacing:0;font-size:12px;table-layout:fixed;width:100%;min-width:1335px}.payroll-label-column{width:255px}.payroll-sum-column{width:80px}.payroll .payroll-month-table th,.payroll .payroll-month-table td{box-sizing:border-box;height:19px;padding:0 2px;border-right:1px solid #e3e9ef;border-bottom:1px solid #e3e9ef;text-align:right;white-space:nowrap;line-height:17px;font-size:12px;text-transform:none;letter-spacing:normal;overflow:hidden}.payroll .payroll-month-table thead th{position:sticky;top:0;z-index:2;height:22px;background:#e5edf5;text-align:center}.payroll .payroll-month-table th:first-child{position:sticky;left:0;z-index:1;text-align:left;background:#f3f7fa}.payroll .payroll-month-table thead th:first-child{z-index:3}.payroll .payroll-month-table tbody th>span{display:inline-block;max-width:175px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.payroll .payroll-month-table tbody th>small{float:right;font-size:11px;font-weight:400;color:#546c7e}.payroll .payroll-month-table input{width:100%;min-width:0;min-height:17px;height:17px;padding:0 1px;border:1px solid transparent;border-radius:2px;background:transparent;font-size:12px;line-height:15px;text-align:right;box-sizing:border-box;appearance:textfield;-moz-appearance:textfield}.payroll .payroll-month-table input::-webkit-inner-spin-button,.payroll .payroll-month-table input::-webkit-outer-spin-button{appearance:none;margin:0}.payroll .payroll-month-table input:focus{border-color:#315d84;background:#fff;outline:none}.payroll .payroll-month-table .payroll-group-row th{background:#dfeaf3;height:19px;font-size:11px;font-weight:700;padding-left:7px}.payroll .payroll-month-table td:has(.payroll-imported){position:relative}.payroll .payroll-month-table td:has(.payroll-imported)>input:placeholder-shown{color:transparent}.payroll-imported{position:absolute;right:2px;top:0;color:#24633b;pointer-events:none;font-size:11px;line-height:17px}.payroll .payroll-grand-total td,.payroll .payroll-grand-total th{background:#e9f0f6;font-weight:700}.payroll .payroll-save-quantities{margin-top:4px}.payroll-import-history{font-size:12px}.payroll-source{display:flex;gap:8px;align-items:center;padding:4px}.payroll-message{color:#315d84;font-size:12px}.payroll-message:empty{display:none}.payroll-message.error{color:#a02b2b}.payroll-import-days{display:flex;gap:6px;flex-wrap:wrap;padding:6px 0}.payroll-import-days label{border:1px solid #d7e1ec;border-radius:4px;padding:3px;font-size:12px;display:flex;align-items:center;gap:5px}.payroll .muted{font-size:12px;color:#617487;margin:0}
.payroll-modal{margin:auto;padding:14px;border:1px solid #bed0e0;border-radius:8px;color:#18354c;font:13px Arial,sans-serif;max-height:90vh;overflow:auto;width:min(1340px,94vw);box-sizing:border-box}.payroll-modal::backdrop{background:#18354c66}.payroll-modal header,.payroll-modal footer,.payroll-rate-base{display:flex;align-items:center;gap:8px}.payroll-modal header{justify-content:space-between}.payroll-modal h3{margin:0;font-size:18px}.payroll-modal button,.payroll-modal input,.payroll-modal select{font:inherit;border:1px solid #bed0e0;border-radius:4px;padding:4px 7px;min-height:27px;box-sizing:border-box;background:#fff;color:inherit}.payroll-modal button{cursor:pointer;white-space:nowrap}.payroll-modal :disabled{opacity:.6;cursor:default}.payroll-modal-help{margin:7px 0;font-size:12px;color:#52697c}.payroll-modal footer{justify-content:flex-end;margin-top:10px}.payroll-modal footer [role=status]{margin-right:auto}.payroll-rate-base{margin:10px 0;flex-wrap:wrap}.payroll-rate-base label{display:flex;align-items:center;gap:6px}.payroll-rate-base input{max-width:150px}.payroll-rate-base button{margin-left:auto}.payroll-rate-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-items:start}.payroll-rate-group{border:1px solid #cbd9e6;border-radius:5px;padding:8px;background:#f7fafc;min-width:0}.payroll-group-title{display:flex;gap:7px;align-items:center;font-size:11px;color:#52697c}.payroll-group-title input{font-weight:700;width:100%;min-width:0;background:#eaf1f7}.payroll-rate-row,.payroll-rate-column-head{display:grid;grid-template-columns:minmax(0,1fr) 51px 67px;gap:4px;margin:4px 0}.payroll-rate-row input,.payroll-rate-row select{min-width:0;width:100%;font-size:12px;padding:3px 4px}.payroll-rate-column-head{font-size:11px;color:#64798a;margin-top:8px}.payroll-rate-group>button{margin-top:4px;font-size:12px}.payroll-modal-settlement{width:min(600px,94vw)}.payroll-settlement-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.payroll-settlement-fields label{display:grid;gap:5px;font-size:12px}.payroll-settlement-fields input{width:100%;min-width:0}.payroll-modal [role=alert]{color:#a02b2b;font-size:12px}.payroll-modal [role=alert]:empty{display:none}@media(max-width:1000px){.payroll-rate-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll .payroll-sheet-select{margin-left:0}}@media(max-width:650px){.payroll-rate-groups,.payroll-settlement-fields{grid-template-columns:1fr}.payroll-rate-base label{display:grid}.payroll-modal{padding:10px}.payroll h2{width:100%}}@media(min-width:1600px){.payroll-rate-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}
.payroll .payroll-month-table th{color:#18354c}.payroll .payroll-month-table input::placeholder{color:#24633b;opacity:1}.payroll-imported{left:2px;right:auto}.payroll .payroll-month-table td:has(.payroll-imported)>input{padding-left:7px}.payroll-modal-rates{width:min(1520px,94vw)}@media(min-width:1600px){.payroll-rate-groups{grid-template-columns:repeat(4,minmax(0,1fr))}}
.payroll-modal-rates .payroll-rate-groups{grid-template-columns:minmax(0,1fr);gap:8px}.payroll-modal-rates[open]{display:flex;flex-direction:column;padding:0;overflow:hidden;zoom:1}.payroll-modal-rates>header{flex:none;margin:0;padding:12px 14px;border-bottom:1px solid #cbd9e6;background:#fff}.payroll-modal-rates>header h3{margin-right:auto}.payroll-modal-rates>.dialog-content{min-height:0;overflow:auto;padding:10px 14px}.payroll-rate-scope label{display:flex;align-items:center;gap:7px;font-size:12px}.payroll-rate-scope input[type=checkbox]{min-height:0}.payroll-modal-rates footer{position:sticky;bottom:-10px;background:#fff;border-top:1px solid #cbd9e6;padding:8px 0;margin-bottom:-10px;z-index:1}.payroll-modal-rates .payroll-rate-row{margin:3px 0}.payroll-modal-rates .payroll-rate-group{padding:7px}.payroll-modal-rates .payroll-rate-column-head{margin-top:5px}
.payroll .payroll-month-heading{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:3px 0 4px;font-size:22px;line-height:1.25;color:#18354c}.payroll-month-heading strong{font-weight:750}.payroll-month-heading span{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.payroll .payroll-month-table input{border:1px solid #bdcddd;border-radius:4px;background:#fff}.payroll .payroll-month-table input:disabled{background:#f0f3f6;color:#53697b}.payroll .payroll-month-table input:focus{border-color:#315d84;box-shadow:0 0 0 1px #315d84}.payroll-modal-statistics{width:min(1140px,calc(100vw - 24px))}.payroll-modal-statistics .payroll-toolbar{margin-top:14px}.payroll-stat-scroll{overflow:auto}.payroll-stat-table{width:100%;border-collapse:separate;border-spacing:0;min-width:860px;font-size:12px;font-variant-numeric:tabular-nums}.payroll-stat-table th,.payroll-stat-table td{padding:7px;border-bottom:1px solid #d8e2ec;text-align:right}.payroll-stat-table th:first-child{text-align:left;white-space:nowrap}.payroll-stat-table thead th{background:#e9f0f6;font-size:12px;color:#18354c;text-transform:none;letter-spacing:normal}.payroll-stat-table small{display:block;font-size:10px;font-weight:normal;color:#617487}.payroll-stat-year,.payroll-stat-table tfoot{background:#edf3f8;font-weight:700}.payroll-stat-unknown{color:#8d581f;font-size:11px}
.payroll-stat-table th{text-transform:none;letter-spacing:normal}
.payroll-month-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.payroll-month-bar .payroll-month-tools{flex:1;justify-content:flex-end}.payroll-month-bar .payroll-month-tools>span{font-size:11px;color:#52697c}.payroll-month-bar .payroll-month-tools button:first-of-type{margin-left:0}
.payroll-modal-settlement{width:min(480px,94vw)}.payroll-settlement-fields{grid-template-columns:1fr;gap:8px}.payroll-settlement-fields input[readonly]{background:#eef3f7}.payroll-settlement-remaining{display:flex;justify-content:space-between;align-items:center;padding:9px;background:#eaf1f7;border-radius:5px}.payroll-settlement-remaining strong{font-size:18px}
.payroll .payroll-month-table .payroll-weekend{background:#f7dfdd}.payroll .payroll-month-table .payroll-holiday{background:#f2ccc7}.payroll .payroll-month-table thead .payroll-weekend{color:#7d3030;background:#edc2be}.payroll .payroll-month-table thead .payroll-holiday{color:#772c28;background:#e6aaa3}.payroll .payroll-month-table .payroll-weekend input{background:#fff0ee}.payroll .payroll-month-table .payroll-holiday input{background:#ffe5e1}.payroll .payroll-month-table [data-table-cell-selected] input{background:#e3effa}.payroll .payroll-month-table input:disabled{pointer-events:none}
.payroll-table-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.payroll-calendar-legend{display:inline-flex;gap:12px;font-size:11px;color:#576677}.payroll-calendar-legend>span{display:inline-flex;align-items:center;gap:5px}.payroll-calendar-legend>span:before{content:"";width:12px;height:12px;border:1px solid #d29b95;border-radius:3px;background:#f7dfdd}.payroll-calendar-legend>.payroll-holiday:before{background:#f2ccc7;border-color:#c77d73}

/* Keep calendar columns recognizable in locked months as well. */
.payroll .payroll-month-table .payroll-weekend,.payroll .payroll-month-table .payroll-holiday{border-right-color:#d29b95}.payroll .payroll-month-table .payroll-weekend input,.payroll .payroll-month-table .payroll-holiday input{border-color:#d5aaa5}.payroll .payroll-month-table input:disabled{opacity:1;color:#425b6d;-webkit-text-fill-color:#425b6d}

.payroll-import-day{display:flex;align-items:center;gap:6px;border:1px solid #d7e1ec;border-radius:4px;padding:4px}.payroll-import-days .payroll-import-day label{border:0;padding:0}.payroll-import-day select{max-width:240px;border:1px solid #bfd0df;border-radius:4px;font-size:12px;padding:3px}.payroll-import-days{align-items:start}


.payroll .payroll-month-table td:has(.payroll-hour-breakdown){position:relative;background:#fffbef;height:26px}.payroll .payroll-month-table td:has(.payroll-hour-breakdown)>input{color:transparent;-webkit-text-fill-color:transparent}.payroll .payroll-month-table td:has(.payroll-hour-breakdown):has(input:not(:disabled):focus)>input{color:inherit;-webkit-text-fill-color:currentColor}.payroll-hour-breakdown{position:absolute;inset:0 2px;display:flex;flex-wrap:wrap;column-gap:2px;align-content:center;align-items:center;justify-content:center;font-size:12px;font-weight:400;line-height:12px;white-space:normal;text-align:center;color:#24633b;pointer-events:none}.payroll .payroll-month-table td:has(input:not(:disabled):focus) .payroll-hour-breakdown{display:none}.payroll-overtime-legend{font-size:11px;color:#765018}

.payroll-hour-breakdown>span{white-space:nowrap}.payroll-hour-breakdown strong{font-weight:700}

.payroll-totals>button.payroll-total-edit{display:block;flex:1 1 160px;border:1px solid #d7e1ec;border-radius:5px;padding:5px 9px;min-width:0;text-align:left;background:transparent;color:inherit;font:inherit;cursor:pointer}.payroll-totals>button.payroll-total-edit strong{display:block;font-size:17px;margin-top:1px}.payroll-totals>button.payroll-total-edit:hover{background:#e9f1f8;border-color:#91aec6}.payroll-totals>button.payroll-total-edit:focus-visible{outline:2px solid #315d84;outline-offset:2px}.payroll-settlement-fields label:focus-within{background:#edf4fb;border-radius:4px}

.payroll-settlement-amount{display:flex;gap:7px;align-items:center}.payroll-settlement-amount>input:not([type=hidden]){flex:1;min-width:0}.payroll-settlement-amount>button{width:30px;height:30px;flex:0 0 30px;padding:0;font-size:20px;font-weight:700}.payroll-settlement-amount>button[data-effect="1"]{color:#276639;background:#eef8ef}.payroll-settlement-amount>button[data-effect="-1"]{color:#963c39;background:#fff0ee}.payroll-settlement-amount>button[data-effect="0"]{background:#f2f5f8}

/* Position every hours value inside its input box, independent of table line-height and global small margins. */
.payroll .payroll-month-table th,.payroll .payroll-month-table td{vertical-align:middle}
.payroll .payroll-cell-editor{position:relative;display:block;width:100%;height:20px;min-width:0}
.payroll .payroll-cell-editor:has(.payroll-hour-breakdown){height:26px}
.payroll .payroll-month-table .payroll-cell-editor>input{display:block;vertical-align:middle;margin:0;width:100%;height:100%;min-height:0;padding:0 2px;line-height:normal;text-align:right;box-sizing:border-box}
.payroll .payroll-cell-editor>.payroll-imported,.payroll .payroll-cell-editor>.payroll-hour-breakdown{position:absolute;inset:1px 3px;margin:0;padding:0;border:0;display:flex;align-items:center;align-content:center;justify-content:flex-end;text-align:right;box-sizing:border-box;pointer-events:none;min-width:0}
.payroll .payroll-cell-editor>.payroll-imported{font-size:12px;line-height:16px;font-weight:400}
.payroll .payroll-cell-editor>.payroll-hour-breakdown{font-size:12px;line-height:12px;column-gap:2px;row-gap:0;flex-wrap:wrap}
.payroll .payroll-cell-editor:has(.payroll-imported)>input,.payroll .payroll-cell-editor:has(.payroll-hour-breakdown)>input{color:transparent;-webkit-text-fill-color:transparent}
.payroll .payroll-month-table .payroll-cell-editor>input:not(:disabled):focus{color:inherit;-webkit-text-fill-color:currentColor}
.payroll .payroll-cell-editor:has(input:not(:disabled):focus)>.payroll-imported,.payroll .payroll-cell-editor:has(input:not(:disabled):focus)>.payroll-hour-breakdown{display:none}

.payroll-category-inclusion{display:inline-flex;align-items:center;vertical-align:middle;margin-right:5px}.payroll .payroll-month-table .payroll-category-inclusion>input{appearance:auto;width:13px;height:13px;min-height:13px;padding:0;margin:0;accent-color:#315d84;cursor:pointer}.payroll .payroll-month-table [data-category-excluded]>th>span{color:#7a8791}.payroll .payroll-month-table [data-category-excluded] .payroll-row-total{color:#7a8791}.payroll-exclusion-note{margin:0;color:#765018;font-size:12px}

.payroll .payroll-day-reviews th,.payroll .payroll-day-reviews td{height:25px;background:#edf5ef;text-align:center}
.payroll .payroll-day-reviews th>label{display:flex;align-items:center;gap:6px;margin:0;font-size:12px}
.payroll .payroll-month-table .payroll-day-reviews input{appearance:auto;width:14px;height:14px;min-height:14px;padding:0;margin:0;vertical-align:middle;accent-color:#315d84;cursor:pointer}
.payroll .payroll-day-reviews input:disabled{opacity:.45;cursor:default}
.payroll-source-status,.payroll-source-warning{margin:0;font-size:11px;line-height:1.3;color:#52697c}
.payroll-source-warning,.payroll-source-warnings,.payroll-source-conflict-note{color:#855600}
.payroll-source-warnings{font-size:11px}.payroll-source-warnings ul{margin:4px 0;padding-left:20px}
.payroll .payroll-month-table [data-source-conflict=true]{background:#fff0cd}
.payroll .payroll-source-conflict{position:absolute;left:2px;top:2px;z-index:1;display:block;min-width:11px;border:0;border-radius:3px;background:#f0d18b;color:#734b00;font-size:11px;line-height:15px;text-align:center;text-decoration:none;cursor:help}
.payroll-source-conflict-note{font-size:11px;font-weight:600}.payroll-import-history .payroll-toolbar{margin:5px 0}

.payroll-group-inclusion{display:inline-flex;flex-direction:row-reverse;align-items:center;gap:5px;vertical-align:middle;margin:0;cursor:pointer}
.payroll .payroll-month-table .payroll-group-inclusion>input{appearance:auto;width:13px;height:13px;min-height:13px;padding:0;margin:0;accent-color:#315d84;cursor:pointer}
.payroll-hour-exceptions{margin-top:5px;font-size:11px;color:#52697c}
.payroll-hour-exceptions summary{cursor:pointer}.payroll-hour-exceptions:has(input:not(:checked)) summary{color:#855600;font-weight:600}
.payroll-hour-exceptions p{margin:5px 0;max-width:850px;line-height:1.4}
.payroll-hour-exception-days{display:flex;flex-wrap:wrap;gap:4px}
.payroll-hour-exception-days label{display:inline-flex;align-items:center;gap:4px;margin:0;padding:3px 5px;border:1px solid #d5dfe8;border-radius:4px;font-size:11px;background:#fff;cursor:pointer}
.payroll-hour-exception-days input{width:13px;height:13px;min-height:13px;margin:0;accent-color:#315d84}.payroll-hour-exception-days label:has(input:not(:checked)){color:#855600;background:#fff0cd;border-color:#d9b36a}

.payroll .payroll-day-facts th,.payroll .payroll-day-facts td{height:21px;background:#f2f5f7;text-align:center;font-size:11px}
.payroll .payroll-day-fact{display:block;margin:0;width:100%;border:0;border-radius:3px;background:transparent;color:#52697c;font-size:11px;line-height:17px;min-height:17px;padding:0;white-space:nowrap;text-align:center}
.payroll button.payroll-day-fact{cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.payroll .payroll-day-fact[data-fact-state=pending]{background:#fff0cd;color:#855600}.payroll .payroll-day-fact[data-fact-state=draft]{background:#e5edf8;color:#315d84}
.payroll-pending-legend{margin:0;color:#855600;font-size:11px;line-height:1.3}
.payroll-modal-overtime{width:min(540px,94vw)}.payroll-modal-overtime form>label{display:grid;gap:5px;margin:12px 0 4px;max-width:280px}.payroll-modal-overtime small{font-size:11px;color:#52697c}.payroll-modal-overtime footer{flex-wrap:wrap}.payroll-modal-overtime p{line-height:1.45}

.payroll-compensation-fields{display:grid;gap:8px;border:1px solid #bdd6c9;border-radius:5px;padding:9px;margin:0;background:#f3f9f5}.payroll-compensation-fields legend{font-weight:600}.payroll-compensation-fields textarea{resize:vertical;min-width:0;max-width:100%;box-sizing:border-box;border:1px solid #bed0e0;border-radius:4px;padding:6px;font:inherit}.payroll-compensation-fields small{font-size:11px;color:#52697c}.payroll-compensation-trips>div{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:8px;padding:6px 0;border-bottom:1px solid #d7e1ec}.payroll-compensation-trips span{overflow-wrap:anywhere}.payroll-compensation-fields details{font-size:11px}.payroll .payroll-compensation-row>th,.payroll .payroll-compensation-row>td{background:#edf7f0;height:22px}.payroll .payroll-compensation-row button{border:0;background:transparent;padding:0;min-height:18px;font:inherit;color:#245b3c;text-decoration:underline;text-underline-offset:2px}.payroll .payroll-compensation-row .payroll-compensation-note{text-align:left;overflow:hidden;text-overflow:ellipsis;color:#52697c;font-weight:normal}.payroll-modal-transport{width:min(780px,94vw)}
.payroll-modal-settlement{width:min(580px,94vw)}.payroll-settlement-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-settlement-fields>label:first-child,.payroll-settlement-remaining,.payroll-compensation-fields{grid-column:1/-1}.payroll-compensation-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-compensation-fields>details,.payroll-compensation-fields>small{grid-column:1/-1;order:1}.payroll-compensation-fields summary{cursor:pointer}.payroll-compensation-note-editor label{margin-top:7px}.payroll-compensation-fields .text-field-assistant{max-width:100%}@media(max-width:480px){.payroll-settlement-fields,.payroll-compensation-fields{grid-template-columns:1fr}}

.payroll .payroll-month-table.customizable-table,.payroll-stat-table.customizable-table{min-width:0}.payroll .payroll-month-table.customizable-table thead th{min-width:0}.payroll .payroll-month-table.customizable-table .column-rename{width:14px;min-height:14px;padding:0;font-size:10px}
