*{box-sizing:border-box}body{margin:0;background:#f4f5f0;color:#163932;font:16px system-ui,sans-serif}header{padding:24px 5%;display:flex;justify-content:space-between;border-bottom:1px solid #ccd7ce;letter-spacing:2px;font-weight:700}main{max-width:1400px;margin:auto;padding:48px 5%}h1{font-size:clamp(32px,5vw,58px);line-height:1.08;letter-spacing:-2px;margin:0}h2{font-size:24px}.intro{font-size:20px;color:#65776b;margin-bottom:36px}form{max-width:400px;background:white;padding:28px;border-radius:16px}label{display:block;margin:18px 0}input{display:block;width:100%;padding:13px;margin-top:6px;border:1px solid #acbcb0;border-radius:6px;font:inherit}button{background:#174e3e;color:white;border:0;padding:12px 20px;border-radius:6px;font:inherit;cursor:pointer}.notice{padding:20px;background:#e6ebd8;border-left:4px solid #6a823d;border-radius:6px;line-height:1.6}section{margin-top:36px;padding:26px;background:white;border-radius:14px}section p{color:#596d61;line-height:1.6}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:#637466;font-size:12px;text-transform:uppercase;letter-spacing:1px;padding:14px 12px;background:#f1f4ed}td{padding:16px 12px;border-bottom:1px solid #e6ebe3;vertical-align:top}td:nth-child(3),td:nth-child(4){white-space:nowrap}#status{color:#8b362d}[hidden]{display:none!important}
#boards{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}a{color:#1d694f}#boards a{padding:10px;background:#e5ebdf;border-radius:6px}.metrics{display:flex;gap:18px;flex-wrap:wrap}.metrics article{padding:24px;background:#eef2e8;min-width:180px;border-radius:10px}.metrics strong{display:block;font-size:30px;margin-top:12px}progress{width:100%;height:18px;accent-color:#286b50}

.assistant-row td:first-child{padding-left:38px}.assistant-row td:first-child:before{content:'↳ ';color:#637466}.pay-total td{font-weight:700;background:#eef2e8;border-top:2px solid #c6d3c3}

/* Publisher-controlled presentation; independent from source data. */
.board-section{--accent:#174e3e;--tint:#eff5f1;--grid:#a8beb2;--hover:#e5f0e9}
.accent-blue{--accent:#234e76;--tint:#eff5fb;--grid:#a8bbcf;--hover:#e3edf8}
.accent-slate{--accent:#354454;--tint:#f0f3f6;--grid:#adb8c3;--hover:#e5ebf1}
.surface-tinted{background:var(--tint)}
.table-boxed .scroll{border:1px solid var(--grid);border-radius:10px}
.table-boxed table{background:white}
.table-boxed th{background:var(--accent);color:white;border:1px solid var(--grid);padding:16px}
.table-boxed td{border:1px solid var(--grid);padding:16px;font-variant-numeric:tabular-nums}
.striped tbody tr:nth-child(even):not(.pay-total) td{background:var(--tint)}
.board-section tbody tr:hover:not(.pay-total) td{background:var(--hover)}
.table-boxed .pay-total td{background:var(--tint);border-top:2px solid var(--accent);font-weight:750}
.table-boxed .assistant-row td:first-child{padding-left:38px}
.density-compact th,.density-compact td{padding:10px 12px}
.board-section .metrics article{border:1px solid var(--grid);background:var(--tint)}

.board-section.table-boxed .pay-subtotal td{border-top:2px solid #c8d6cd;border-bottom:2px solid #c8d6cd;background:#f7f9f7;font-weight:600}

/* Shared three-column payroll layout and aligned grand total. */
.payroll-grid{table-layout:fixed;min-width:620px}
.payroll-grid th:nth-child(1),.payroll-grid td:nth-child(1){width:40%}
.payroll-grid th:nth-child(2),.payroll-grid td:nth-child(2){width:36%}
.payroll-grid th:nth-child(3),.payroll-grid td:nth-child(3){width:24%;text-align:right;font-variant-numeric:tabular-nums}
.board-section h2{margin:0 0 22px}
.board-section.table-boxed .payroll-grid td{padding:17px 16px;line-height:1.5}
.board-section.table-boxed .payroll-grid th{padding:16px}
.grand-total-section{background:transparent;padding-top:0;padding-bottom:0}
.grand-total-section h2,.grand-total-section thead{display:none}
.grand-total-section .scroll{border:0;border-radius:10px}
.board-section.grand-total-section.table-boxed .pay-total td{background:#174e3e;color:#fff;border:0;padding:25px 16px;font-size:22px;font-weight:750}
.grand-total-section .payroll-grid td:first-child{white-space:nowrap}
