.payroll-workspace-cover{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:34px 38px;background:radial-gradient(ellipse at top right,#184c7b,transparent 65%),#062c5c;color:#fff;border-radius:18px;border-bottom:5px solid #e4a51c;overflow:hidden}
.payroll-workspace-cover h2{color:#fff;font-size:clamp(27px,3vw,40px);line-height:1.15;margin:12px 0;letter-spacing:-1px}.payroll-workspace-cover p{color:#d5e0ec;max-width:630px;line-height:1.7;margin:10px 0}.payroll-workspace-cover .contract-kicker{color:#f5cc77}
.payroll-cover-actions{display:grid;gap:12px;min-width:245px}.payroll-cover-actions button{background:#fff;color:#062c5c;border:0;text-align:left;padding:13px 17px}.payroll-cover-actions button+button{background:#e4a51c}.payroll-cover-actions small{color:#cfdae9;line-height:1.6}.payroll-cover-seal{border:1px solid #c49844;border-radius:50%;width:140px;height:140px;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#f5cc77;font-size:40px;font-weight:800}.payroll-cover-seal span{font-size:10px;letter-spacing:3px}
.payroll-dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:22px 0}.payroll-dashboard-metrics>div{background:#fff;padding:21px;border:1px solid #dbe3ed;border-radius:13px;min-width:0;box-shadow:0 4px 16px #092d5705}.payroll-dashboard-metrics span,.payroll-dashboard-metrics small{display:block;color:#68778a;font-size:12px;line-height:1.6}.payroll-dashboard-metrics strong{display:block;font-size:clamp(19px,1.7vw,27px);color:#062c5c;margin:8px 0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.payroll-dashboard-metrics>div:nth-child(3){background:#fff9eb;border-color:#e9d7ad}
.payroll-report-links{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}.payroll-report-links button{background:transparent;border-color:#d3deeb;color:#21496f}.payroll-workspace-table th strong,.payroll-register-table th strong{display:block}.payroll-workspace-table th small,.payroll-register-table th small{display:block;font-size:11px;font-weight:400;color:#7b8797;margin-top:5px}.payroll-workspace-table td,.payroll-register-table td{font-variant-numeric:tabular-nums}.payroll-net-cell{font-weight:700;color:#062c5c}.payroll-workspace-table td:nth-child(2){font-size:12px}.payroll-workspace-table th[scope=row]{min-width:200px}
.payroll-workspace-dialog{max-width:1280px;width:calc(100vw - 48px)}.payroll-workspace-dialog .modal-body{padding:0}.payroll-run-document>.payroll-workspace-cover{border-radius:0}.payroll-run-body{padding:0 30px 30px}.payroll-run-body>.payroll-dashboard-metrics{margin-top:24px}.payroll-journey{list-style:none;padding:20px 30px;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:15px;background:#f2f5f9;border-bottom:1px solid #dce4ee}.payroll-journey li{display:flex;gap:12px;align-items:center}.payroll-journey li>span{width:34px;height:34px;border:1px solid #cbd5e2;display:grid;place-items:center;border-radius:50%;font-size:11px;font-weight:700;color:#7d8b9a;background:#fff;flex-shrink:0}.payroll-journey li.current>span{background:#062c5c;color:#fff;border-color:#062c5c;box-shadow:0 0 0 4px #e4a51c44}.payroll-journey li.complete>span{background:#e6f0eb;color:#256b50;border-color:#c1d9cc}.payroll-journey strong{font-size:12px;color:#29425e}.payroll-journey small{display:block;font-size:10px;color:#7a8898;margin-top:4px}.payroll-preflight{padding:16px 19px;border:1px solid #d2ddeb;background:#f2f6fb;border-radius:10px;line-height:1.6;margin:15px 0}.payroll-preflight.ready{color:#22563f;border-color:#c6dfd0;background:#eff8f2}.payroll-preflight.blocked{color:#815417;background:#fff6e7;border-color:#eddbba}.payroll-register-section{margin-top:30px}.payroll-register-table{font-size:12px}.payroll-register-table td{white-space:nowrap}.payroll-register-table tfoot{font-weight:700;background:#f0f4f9}.payroll-register-table caption{text-align:left;color:#6b7e92;font-size:12px;padding:14px 0}.payroll-register-section>.table-scroll{margin-bottom:16px}
.payroll-statement-v2 .payslip-statement-cover{background:radial-gradient(ellipse at top right,#1c507b,transparent 65%),#062c5c}.payslip-draft-notice{background:#fff0d1;color:#755011;padding:13px 28px;text-align:center;font-size:13px;font-weight:600}.payslip-calculation-flow{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0 24px}.payslip-calculation-flow span{background:#f2f5fa;padding:9px 12px;border-radius:7px;color:#516780;font-size:11px}.payslip-calculation-flow span:last-child{background:#fbf0d8;color:#775516}.payslip-ledger-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:20px}.payslip-ledger{border:1px solid #dbe3ed;border-radius:12px;overflow:hidden;min-width:0}.payslip-ledger h3{margin:0;padding:18px 20px;background:#f3f6fa;color:#062c5c;font-size:15px;border-bottom:1px solid #dbe3ed}.payslip-ledger>.payroll-amount-list{padding:0 20px}.payslip-period-ytd{width:100%;font-size:12px}.payslip-period-ytd th{font-size:11px;white-space:normal}.payslip-period-ytd td{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.payslip-period-ytd thead th:not(:first-child){text-align:right}.payslip-period-ytd tbody th{font-weight:500}.payslip-period-ytd .payslip-total-row{background:#f4f7fb;color:#062c5c;font-weight:750}.payslip-period-ytd .payslip-total-row th{font-weight:750}.payslip-contribution-panel{margin:28px 0;padding:23px;background:#f5f8fc;border:1px solid #dae3ef;border-radius:14px}.payslip-contribution-panel h3{color:#062c5c;margin:8px 0}.payslip-contribution-panel p{color:#63758a;line-height:1.6;font-size:12px}.payslip-contribution-panel .table-scroll{background:#fff;border-radius:8px}.payslip-ytd-panel{margin:30px 0}.payslip-nis-note{display:flex;gap:12px 22px;flex-wrap:wrap;background:#fff7e7;border:1px solid #eddbb9;border-radius:9px;padding:15px;font-size:11px;color:#76603a;margin-top:16px}.payslip-nis-note strong{color:#062c5c}.payroll-statement-v2 .payslip-net-reconciliation{margin:24px 0}.payroll-statement-v2 pre{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1000px){.payroll-dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.payslip-ledger-grid{grid-template-columns:1fr}.payroll-workspace-table{min-width:930px}.payroll-journey small{display:none}}
@media(max-width:600px){.payroll-workspace-cover{padding:26px 22px;flex-direction:column;align-items:stretch;gap:20px}.payroll-workspace-cover h2{font-size:28px}.payroll-cover-actions{min-width:0}.payroll-cover-seal{display:none}.payroll-dashboard-metrics{gap:9px}.payroll-dashboard-metrics>div{padding:14px}.payroll-dashboard-metrics strong{font-size:18px}.payroll-dashboard-metrics small{font-size:10px}.payroll-report-links{display:grid}.payroll-workspace-dialog{width:calc(100vw - 16px)}.payroll-run-body{padding:0 16px 20px}.payroll-journey{padding:17px 15px;gap:8px}.payroll-journey li{flex-direction:column;gap:8px}.payroll-journey strong{font-size:10px}.payslip-contribution-panel{padding:15px}.payslip-period-ytd td,.payslip-period-ytd th{padding:12px 9px;font-size:10px}.payslip-calculation-flow{gap:6px}.payslip-calculation-flow span{font-size:10px;padding:8px}}
@media print{.payroll-print-document .payslip-statement{box-shadow:none;border:0;border-radius:0;color:#172d44}.payroll-print-document .payslip-statement-cover{-webkit-print-color-adjust:exact;print-color-adjust:exact}.payroll-print-document .payslip-statement-body{padding:18px 0}.payroll-print-document .payslip-ledger-grid{display:block}.payroll-print-document .payslip-ledger{margin-bottom:15px;break-inside:avoid}.payroll-print-document .table-scroll{overflow:visible}.payroll-print-document .payslip-paye-card,.payroll-print-document .payslip-net-reconciliation{break-inside:avoid}.payroll-print-document .payslip-period-ytd{font-size:10px}.payroll-print-document .payslip-statement-hero{display:flex}.payroll-print-document .payslip-take-home strong{font-size:27px}}

.payroll-editor-body{padding:28px 30px}.payroll-editor-body>.helper{line-height:1.8}.payroll-editor-body .payroll-worker-input{background:#fff;border:1px solid #dbe3ed;border-radius:11px;margin:15px 0;padding:18px}.payroll-editor-body .payroll-worker-input summary{color:#062c5c;font-weight:700}.payroll-editor-body .payroll-worker-input[open] summary{border-bottom:1px solid #e0e6ef;padding-bottom:15px;margin-bottom:15px}@media(max-width:600px){.payroll-editor-body{padding:22px 16px}}

.payslip-ledger{background:#fff}

.payslip-row-actions{display:flex;align-items:center;gap:8px}.payslip-row-actions .payslip-icon-action{display:inline-grid;place-items:center;width:40px;height:40px;padding:9px;min-width:40px;border:1px solid #d4dfec;border-radius:10px;background:#fff;color:#21496f}.payslip-icon-action svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.payslip-row-actions .payslip-icon-action:hover{background:#fff6e4;border-color:#d4b371;color:#062c5c}.payslip-row-actions .payslip-icon-action:focus-visible{outline:3px solid #caa04b;outline-offset:3px}.payslip-row-actions .payslip-icon-action:disabled{opacity:.5;cursor:wait}

/* A compact payroll advice, independent of the interactive statement layout. */
.pay-advice{font-family:Arial,sans-serif;color:#000;background:#fff;font-size:10px;line-height:1.35}.advice-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:12px}.advice-company{display:flex;align-items:center;gap:12px;min-width:0}.advice-company img{width:130px;max-height:60px;object-fit:contain}.advice-company strong{font-family:Georgia,serif;display:block;font-size:16px}.advice-company span{display:block;font-size:9px;margin-top:5px}.advice-period{text-align:right;font-size:9px;line-height:1.7;max-width:48%}.advice-period strong{font-size:8px}.pay-advice table{border-collapse:collapse;width:100%;color:#000;font-size:10px;table-layout:fixed}.pay-advice th,.pay-advice td{padding:5px 6px;vertical-align:top;white-space:normal;background:#fff;color:#000;border:0}.advice-identity{border:1.5px solid #000}.advice-identity th,.advice-identity td{border:1px solid #000;text-align:left;overflow-wrap:anywhere}.advice-identity th{background:#c6c6c6;font-size:9px}.advice-label-col{width:14%}.advice-earnings-col{width:41%}.advice-deductions-col{width:33%}.advice-ytd-col{width:26%}.advice-columns{border:1.5px solid #000;border-top:0}.advice-columns>thead>tr>th{background:#c6c6c6;border:1px solid #000;text-align:center;font-size:9px;padding:9px 3px}.advice-columns>tbody>tr>.advice-panel{padding:0;border:1px solid #000;height:85mm}.pay-advice .advice-panel table th{font-size:8px;text-align:left;font-weight:normal}.pay-advice .advice-panel table td{font-size:9px}.pay-advice .advice-panel table thead th{background:#c6c6c6;border-bottom:1px solid #000;font-weight:bold;padding:6px 4px}.advice-panel td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pay-advice .advice-panel .advice-earnings th:nth-child(1){width:39%}.pay-advice .advice-earnings th:nth-child(2){width:11%}.pay-advice .advice-earnings th:nth-child(3){width:19%}.pay-advice .advice-earnings th:nth-child(4){width:31%}.advice-earnings td{padding:6px 4px}.advice-earnings td:not(:first-child){text-align:right}.advice-earnings td+td,.advice-earnings th+th{border-left:1px solid #888}.advice-deductions th:first-child{width:61%}.advice-deductions .advice-group th{padding-top:11px!important;font-weight:bold!important}.advice-ytd th{font-weight:bold!important;width:58%}.pay-advice .advice-ytd th,.pay-advice .advice-ytd td{padding:10px 5px}.advice-ytd-note{font-size:7px;padding:10px 6px;margin:0;color:#333}.advice-columns tfoot td{border:1px solid #000;background:#c6c6c6;padding:8px 5px;font-size:9px}.advice-columns tfoot span{display:block;font-size:8px;font-weight:bold}.advice-columns tfoot strong{display:block;text-align:right;font-size:11px;margin-top:5px;white-space:nowrap}.advice-announcements{border:1.5px solid #000;border-top:0;min-height:16mm}.pay-advice .advice-announcements h2{margin:0;padding:5px 6px;background:#c6c6c6;border-bottom:1px solid #000;font-family:Arial,sans-serif;font-size:8px;letter-spacing:0}.advice-announcements p{padding:4px 7px;margin:4px 0;font-size:10px}.advice-footer{display:flex;justify-content:space-between;gap:12px;font-size:7px;margin-top:8px}.advice-status{text-align:center;font-weight:bold;border:1px solid #000;padding:5px}
@page pay-advice{size:Letter portrait;margin:12mm}
@media print{#contract-print-document.pay-advice-print{page:pay-advice;font-family:Arial,sans-serif;font-size:10px;line-height:1.35}#contract-print-document.pay-advice-print .pay-advice{width:100%;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}#contract-print-document.pay-advice-print h2{font-size:8px;margin:0;padding:5px 6px}.pay-advice tr{break-inside:avoid}.pay-advice .advice-columns thead{display:table-header-group}}

.advice-total{display:flex;justify-content:space-between;align-items:baseline;gap:6px;white-space:nowrap}.advice-columns tfoot .advice-total strong{margin:0;font-size:10px}.advice-columns tfoot .advice-total span{font-size:8px;white-space:nowrap}

/* Continue every internal divider through the unused space to the totals. */
.pay-advice .advice-panel>table{height:100%}.pay-advice .advice-column-fill{height:100%}.pay-advice .advice-column-fill td{padding:0}.pay-advice .advice-panel table tr>*+*{border-left:1px solid #000}.pay-advice .advice-panel table thead th{border-left-color:#000}.pay-advice .advice-announcements .advice-ytd-note{font-size:7px}

.pay-advice .advice-announcements{border-top:1.5px solid #000}

/* Use one consistent stroke for every pay-advice grid and outline. */
.pay-advice table,.pay-advice th,.pay-advice td,.pay-advice .advice-announcements,.pay-advice .advice-announcements h2,.pay-advice .advice-status{border-color:#000;border-width:1px}
.pay-advice .advice-columns,.pay-advice .advice-announcements,.pay-advice .advice-status{margin-top:-1px}

.pay-advice .advice-panel table thead th{padding:5px 4px}.pay-advice .advice-earnings td{padding:4px}.pay-advice .advice-ytd th,.pay-advice .advice-ytd td{padding:7px 5px}.pay-advice .advice-deductions .advice-group th{padding-top:7px!important}.pay-advice .advice-columns>thead>tr>th{padding:6px 3px}.pay-advice .advice-columns tfoot td{padding:6px 5px}

/* Keep the shared totals/announcements edge visible in PDF and print. */
.pay-advice .advice-announcements{margin-top:0;border-top:0;position:relative}
.pay-advice .advice-announcements::before{content:"";display:block;position:absolute;top:-1px;left:0;right:0;height:1px;background:#000}

.pay-advice .advice-generated-credit{font-family:Arial,sans-serif;font-size:7px;line-height:1.4;text-align:center;color:#444;margin:9px 0 0;padding:0}
