/* Scoped payroll screens; keep the portal's dark navigation and red accent. */
.payroll-review{padding:20px;font-size:14px;line-height:1.6}.payroll-review h2{font-size:20px;margin-top:0}.payroll-review-summary{display:flex;flex-wrap:wrap;gap:10px 24px}.payroll-review li{margin:8px 0}.payroll-review td{vertical-align:top;white-space:normal;min-width:130px;max-width:340px;overflow-wrap:anywhere}.payroll-review td small{display:block;color:var(--muted)}.payroll-review .payroll-formula{font-family:monospace;word-break:break-word}.payroll-side-mark{display:block;font-size:9px}.payroll-day-attendance{background:#fff4df;color:#885f21}.payroll-day-unpaid_leave,.payroll-day-vacation_offset{background:#edf2ff;color:#455a91}.payroll-day-unknown_absence{background:#fdebec;color:var(--red-dark)}
.payroll-workspace{min-width:0;max-width:100%;font-size:14px}.payroll-workspace .button{font-size:14px}.payroll-workspace .tabs{margin-bottom:16px}
.payroll-toolbar{display:flex;align-items:end;gap:20px;padding:18px;margin-bottom:12px;flex-wrap:wrap}.payroll-toolbar label{display:block;min-width:170px;margin:0;font-size:14px}.payroll-toolbar input{display:block;width:100%;margin:7px 0 0;font-size:16px}.payroll-search{flex:1;max-width:480px}.payroll-timezone{font-size:12px;color:var(--muted);padding-bottom:12px}
.payroll-disclaimer{font-size:14px;line-height:1.7;color:var(--muted);padding:12px 16px;border-left:3px solid var(--red);background:#fff7f7;margin:12px 0 18px}.payroll-hint{font-size:13px;line-height:1.7;color:var(--muted);margin:0;padding:12px 18px}.payroll-empty{padding:28px;font-size:14px;line-height:1.7}.payroll-empty .form-error{font-size:14px}
.payroll-legend{display:flex;gap:8px 18px;flex-wrap:wrap;padding:16px 18px 0;color:var(--muted);font-size:12px}.payroll-time-scroll{max-height:66vh;overflow:auto;position:relative}.payroll-workspace .payroll-time-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.payroll-workspace .payroll-time-table th,.payroll-workspace .payroll-time-table td{padding:5px 3px;text-align:center;border-bottom:1px solid var(--line)}
.payroll-time-table thead th{position:sticky;top:0;background:#f3f5f7;z-index:2;height:36px}.payroll-workspace .payroll-time-table .payroll-person{position:sticky;left:0;min-width:220px;width:220px;max-width:220px;text-align:left;padding:12px 14px;background:#fff;border-right:1px solid var(--line);z-index:1}.payroll-time-table thead .payroll-person{z-index:3;background:#f3f5f7}
.payroll-workspace .payroll-time-table .payroll-total{min-width:78px;padding:9px;font-weight:600;font-variant-numeric:tabular-nums;background:#f8f2f2;border-left:1px solid var(--line);line-height:1.5}
.payroll-person strong{display:block;font-size:14px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.payroll-person small{display:block;font-size:12px;font-weight:400;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}.payroll-day{position:relative;width:39px;min-height:36px;padding:5px 2px;border:1px solid transparent;border-radius:4px;background:#f5f7f9;color:var(--text);font-family:inherit;font-size:13px;line-height:1.2;font-variant-numeric:tabular-nums;cursor:pointer}.payroll-day:hover:not(:disabled){border-color:var(--red);background:#fff0f0}.payroll-day:focus-visible{outline:2px solid var(--red);outline-offset:1px}.payroll-day:disabled{opacity:.4;cursor:default}.payroll-day-work{background:#eaf4ed;color:#246444}.payroll-day-vacation{background:#edf2ff;color:#455a91}.payroll-day-sick{background:#fff4df;color:#885f21}.payroll-day-absence{background:#fdebec;color:var(--red-dark)}.payroll-day-off{background:#edf0f3;color:#697785}.payroll-day-other{background:#f1edf7;color:#6b5289}.payroll-day-unset{color:#80909d}.payroll-note-dot{position:absolute;top:0;right:2px;font-size:11px;line-height:1;color:var(--red)}
.payroll-workspace .payroll-archived>.payroll-person{background:#f5f6f7}.payroll-salary-scroll{overflow:auto}.payroll-workspace .payroll-salary-table{font-size:14px;min-width:1080px}.payroll-workspace .payroll-salary-table th{font-size:12px;line-height:1.5;white-space:normal}.payroll-salary-table .payroll-person{min-width:210px;max-width:270px;text-align:left}.payroll-money{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.payroll-overpaid{color:var(--red-dark)}.payroll-salary-note{min-width:180px;max-width:260px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}
.payroll-pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.payroll-pagination>div{display:flex;gap:8px}.payroll-editor{font-size:14px;line-height:1.7}.payroll-editor label,.payroll-editor .check{font-size:14px}.payroll-editor input,.payroll-editor select,.payroll-editor textarea{font-size:16px}.payroll-editor .payroll-hint{padding:8px 0}.payroll-editor .check{line-height:1.6}
/* Wide tables scroll inside the section; unbroken source text must not size the page. */
#payroll-tabs,#payroll-content,.payroll-workspace>.panel,.payroll-review,.payroll-editor{min-width:0;max-width:100%}
.payroll-workspace .table-scroll,.payroll-review .table-scroll{width:100%;min-width:0;max-width:100%;overflow:auto;overscroll-behavior:contain}
.payroll-workspace .tabs,.payroll-review .tabs{min-width:0;max-width:100%;overscroll-behavior-x:contain}
.payroll-workspace .tabs .button,.payroll-review .tabs .button{flex-shrink:0}
.payroll-workspace .payroll-person{white-space:normal;overflow-wrap:anywhere}
.payroll-workspace .payroll-person strong,.payroll-workspace .payroll-person small{white-space:normal}
.payroll-workspace .payroll-money{white-space:nowrap;overflow:visible;text-overflow:clip}
.payroll-workspace .payroll-salary-table td:last-child{min-width:150px;white-space:normal}
.payroll-workspace .payroll-salary-table td:last-child .button{max-width:100%;margin:3px 3px 3px 0}
.payroll-disclaimer,.payroll-hint,.payroll-empty,.payroll-review p,.payroll-review li,.payroll-review summary,.payroll-review-summary>span,.payroll-editor p,.payroll-editor label{overflow-wrap:anywhere}
.payroll-review th{white-space:normal;overflow-wrap:anywhere;min-width:100px}
.payroll-review .payroll-formula{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}
.payroll-review-summary>*{min-width:0;max-width:100%}
.payroll-pagination{flex-wrap:wrap}.payroll-pagination>span,.payroll-pagination>div{min-width:0;max-width:100%}.payroll-pagination>span{overflow-wrap:anywhere}.payroll-pagination>div{flex-wrap:wrap}
.payroll-editor .form-grid>*{min-width:0;max-width:100%}.payroll-editor input,.payroll-editor select,.payroll-editor textarea{min-width:0;max-width:100%}.payroll-editor textarea{resize:vertical}
.payroll-editor .check{align-items:flex-start;white-space:normal}.payroll-editor .check input[type=checkbox]{flex:0 0 17px;margin-top:3px}
.dialog:has(.payroll-editor,.payroll-review){max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:auto}
.dialog:has(.payroll-editor,.payroll-review) .dialog-heading{gap:12px;min-width:0}
.dialog:has(.payroll-editor,.payroll-review) .dialog-heading h2{min-width:0;overflow-wrap:anywhere;line-height:1.45}
.dialog:has(.payroll-editor,.payroll-review) .close-button{flex:0 0 31px}
.dialog:has(.payroll-editor,.payroll-review) #dialog-body,.dialog:has(.payroll-editor) #editor{min-width:0;max-width:100%}
.dialog:has(.payroll-editor) .form-actions{flex-wrap:wrap}.dialog:has(.payroll-editor) .form-actions .button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px){.payroll-toolbar{gap:14px;padding:14px}.payroll-toolbar label{width:100%;max-width:none;min-width:0}.payroll-timezone{padding:0}.payroll-pagination{align-items:start;flex-direction:column;padding:14px}.payroll-pagination>div{width:100%;justify-content:space-between}.payroll-workspace .payroll-time-table .payroll-person{min-width:155px;width:155px;max-width:155px;padding:9px}.payroll-person strong{font-size:13px}.payroll-day{width:36px;min-height:38px}.payroll-time-scroll{max-height:62vh}.payroll-hint,.payroll-disclaimer{font-size:13px}.payroll-editor .form-grid{grid-template-columns:1fr}}
@media(max-width:480px){.dialog:has(.payroll-editor,.payroll-review) #dialog-body{padding:14px}.dialog:has(.payroll-editor,.payroll-review) .dialog-heading{padding:14px}.payroll-review{padding:14px}.dialog .payroll-review{padding:0}.payroll-pagination>div .button{flex:1;white-space:normal}}
/* Imported unknown values and unresolved source rows remain visible, read-only evidence. */
.payroll-day{width:48px;white-space:nowrap}
.payroll-source dl{margin:18px 0}.payroll-source dl>div{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.payroll-source dt{min-width:0;color:var(--muted);overflow-wrap:anywhere}.payroll-source dd{min-width:0;margin:0;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.payroll-source ul,.payroll-source-note{white-space:pre-wrap;overflow-wrap:anywhere}
.payroll-note-details{white-space:normal}.payroll-note-details summary{cursor:pointer;font-size:13px}.payroll-note-details p{max-height:180px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}
.payroll-pending{min-width:0;max-width:100%;padding:18px;font-size:14px;line-height:1.65;overflow-wrap:anywhere}.payroll-pending>summary{font-size:16px;line-height:1.5}.payroll-pending>p{margin:14px 0;color:var(--muted)}
.payroll-pending table{font-size:14px;min-width:780px}.payroll-pending th{font-size:13px;white-space:normal;overflow-wrap:anywhere;min-width:100px}.payroll-pending td{min-width:150px;max-width:420px;vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.payroll-pending .payroll-pending-person{min-width:220px;max-width:300px;width:260px;vertical-align:top}.payroll-pending-person strong,.payroll-pending-person small{display:block;white-space:normal;overflow-wrap:anywhere}.payroll-pending-person small{font-size:12px;font-weight:400;color:var(--muted)}
.payroll-pending td summary{font-size:14px;white-space:normal}.payroll-pending .payroll-pending-days{width:500px;max-width:70vw;margin-top:12px}.payroll-pending-days table{min-width:650px}.payroll-pending-days th,.payroll-pending-days td{min-width:100px;max-width:240px;padding:9px;font-size:13px}
@media(max-width:700px){.payroll-day{width:46px}.payroll-pending{padding:14px}}
@media(max-width:480px){.payroll-source dl>div{grid-template-columns:minmax(0,1fr);gap:5px}.payroll-source dd{text-align:left}}
