.internal-payroll-view{padding:24px;min-height:100%;background:#f4f7fb;color:#172033}
.internal-payroll-view *{box-sizing:border-box}
.internal-payroll-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}
.internal-payroll-hero h1{margin:0 0 4px;font-size:27px;letter-spacing:0}
.internal-payroll-hero p,.internal-payroll-card-header p{margin:0;color:#667085}
.internal-payroll-month-actions{display:flex;gap:8px;align-items:center}
.internal-payroll-month-actions input,.internal-payroll-month-actions button,.internal-payroll-form input,.internal-payroll-form select,.internal-payroll-form textarea,.internal-payroll-form button,.internal-payroll-row-actions button,.internal-payroll-list-row>button,.internal-payroll-published button,.internal-payroll-card-header button,.internal-payroll-empty-state button,.internal-payroll-form-heading button{min-height:36px;border:1px solid #d5dce7;border-radius:8px;background:#fff;padding:7px 11px;color:#243047}
.internal-payroll-view button{cursor:pointer;font:inherit}
.internal-payroll-view button.primary,.internal-payroll-month-actions button.primary{background:#176b5c;border-color:#176b5c;color:#fff}
.internal-payroll-view button.compact{min-height:34px;padding:6px 10px;font-size:13px;font-weight:700;white-space:nowrap}
.internal-payroll-tabs{display:flex;gap:4px;border-bottom:1px solid #dfe5ee;margin-bottom:14px}
.internal-payroll-tabs button{border:0;background:transparent;padding:10px 14px;color:#667085;font-weight:700}
.internal-payroll-tabs button.is-active{color:#176b5c;border-bottom:3px solid #176b5c}
.internal-payroll-notice{position:fixed;top:78px;right:24px;z-index:1300;max-width:520px;padding:12px 16px;border-radius:10px;background:#e8f5f1;color:#155b50;box-shadow:0 8px 30px #22304726}
.internal-payroll-notice[data-type=error]{background:#fff0f0;color:#a32626}
.internal-payroll-table-wrap,.internal-payroll-card{background:#fff;border:1px solid #e1e6ee;border-radius:8px;box-shadow:0 5px 18px #2130470a}
.internal-payroll-table-wrap{overflow:auto}
body.admin-visual .internal-payroll-view table{table-layout:auto}
body.admin-visual .internal-payroll-view th,body.admin-visual .internal-payroll-view td{width:auto;overflow:visible}
.internal-payroll-table{width:100%;border-collapse:collapse;min-width:1040px}
.internal-payroll-table th,.internal-payroll-table td{padding:12px;text-align:left;border-bottom:1px solid #edf0f4;white-space:nowrap}
.internal-payroll-table th{font-size:12px;color:#697386;background:#f9fafb}
.internal-payroll-table tbody tr{cursor:pointer}
.internal-payroll-table tbody tr:hover{background:#f1faf7}
.internal-payroll-table td small{display:block;color:#9a6700}
.internal-payroll-table tfoot td{padding:13px 12px;border-top:2px solid #dfe7e4;border-bottom:0;background:#f5faf8;color:#344054;font-weight:700}
.internal-payroll-table tfoot td:nth-child(9){color:#176b5c;font-size:15px}
.internal-payroll-manual-chip{display:inline-flex!important;width:max-content;margin-top:4px;padding:2px 7px;border-radius:999px;background:#fff4d8;color:#805600!important;font-size:11px;font-weight:700}
.internal-payroll-two-column{display:grid;grid-template-columns:minmax(0,3fr) minmax(320px,2fr);align-items:start;gap:16px}
.internal-payroll-card{padding:18px}
.internal-payroll-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.internal-payroll-card h2{margin:0 0 5px;font-size:18px}
.internal-payroll-list{display:grid;gap:8px}
.internal-payroll-list-meta{color:#667085;font-size:13px}
.internal-payroll-member-table-wrap{overflow:auto;border:1px solid #edf0f4;border-radius:8px}
.internal-payroll-config-table{width:100%;min-width:760px;border-collapse:collapse}
.internal-payroll-config-table th,.internal-payroll-config-table td{padding:10px 11px;text-align:left;border-bottom:1px solid #edf0f4;white-space:nowrap}
body.admin-visual .internal-payroll-config-table th:nth-child(5),body.admin-visual .internal-payroll-config-table td:nth-child(5){width:1%;white-space:nowrap}
.internal-payroll-config-table th{background:#f9fafb;color:#697386;font-size:12px}
.internal-payroll-config-table tbody tr:last-child td{border-bottom:0}
.internal-payroll-status{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:#eef6f3;color:#176b5c;font-size:12px;font-weight:700}
.internal-payroll-row-actions{display:flex;gap:6px;justify-content:flex-end}
.internal-payroll-form{display:grid;gap:10px;margin:14px 0 0}
.internal-payroll-inline-form{max-width:420px;padding:14px;border:1px solid #e6ebf2;border-radius:8px;background:#fbfcfe}
.internal-payroll-form-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.internal-payroll-form-heading button{min-height:30px;padding:4px 9px;font-size:13px}
.internal-payroll-form label{display:grid;gap:5px;color:#526071;font-size:13px}
.internal-payroll-form label small{color:#7b8493}
.internal-payroll-inline-form button[type=submit]{justify-self:start;min-width:118px}
.internal-payroll-hint{margin:4px 0 0;color:#7b8493;font-size:12px}
.internal-payroll-holiday-list{display:grid;gap:0;border-top:1px solid #eef1f5}
.internal-payroll-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #eef1f5}
.internal-payroll-list-row:last-child{border-bottom:0}
.internal-payroll-list-row small{display:block;margin-top:3px;color:#7b8493}
.internal-payroll-empty{text-align:center;color:#7d8795;padding:22px!important}
.internal-payroll-empty-state.compact{display:grid;justify-items:start;gap:7px;min-height:0;padding:14px;border:1px dashed #dce3ec;border-radius:8px;background:#fbfcfe;text-align:left}
.internal-payroll-empty-state.compact h3{margin:0;font-size:16px}
.internal-payroll-empty-state.compact p{margin:0;color:#667085}
.internal-payroll-drawer-root{position:fixed;inset:0;z-index:1400}
.internal-payroll-drawer-mask{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background:#0d172a66}
.internal-payroll-drawer{position:absolute;top:0;right:0;height:100%;width:min(680px,94vw);background:#fff;box-shadow:-16px 0 50px #0d172a29;overflow:auto}
.internal-payroll-drawer>header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid #e6eaf0;background:#fff}
.internal-payroll-drawer header small{color:#748091}
.internal-payroll-drawer header h2{margin:3px 0 0}
.internal-payroll-drawer header button{border:0;background:transparent;font-size:28px}
.internal-payroll-drawer-body{padding:22px}
.internal-payroll-drawer-body h3{margin:22px 0 10px}
.internal-payroll-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.internal-payroll-day{display:grid;place-items:center;gap:3px;min-height:62px;border:1px solid #e2e7ee;border-radius:8px;background:#fff}
.internal-payroll-day span{font-size:11px}
.internal-payroll-day.status-present{background:#edf8f4;color:#176b5c}
.internal-payroll-day.status-leave{background:#fff1ef;color:#a13c31}
.internal-payroll-day.status-saturday_rest{background:#f3f4f7;color:#687080}
.internal-payroll-day.status-statutory_rest{background:#fff7e6;color:#8d6110}
.internal-payroll-day.status-not_hired{background:#f5f5f5;color:#9a9a9a}
.internal-payroll-day.status-terminated{background:#f1f2f4;color:#606775}
.internal-payroll-formula{display:grid;gap:7px;margin-top:14px;padding:14px;border-radius:8px;background:#f4f8fb}
.internal-payroll-formula p{margin:0;color:#243047;line-height:1.55}
.internal-payroll-formula span{color:#667085;font-size:13px}
.internal-payroll-adjustments{grid-template-columns:1fr 1fr;max-width:none}
.internal-payroll-adjustments button{grid-column:1/-1}
.internal-payroll-manual{margin:14px 0;padding:12px;border:1px solid #efd7a3;border-radius:8px;background:#fffaf0}
.internal-payroll-manual summary{cursor:pointer;color:#8a5a00;font-weight:700}
.internal-payroll-publish-one{width:auto;margin-top:10px}
.internal-payroll-published{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px;border:1px solid #d8e9e4;border-radius:8px;background:#f2faf7}
.internal-payroll-published span{color:#586576}
.internal-payroll-statement-list{display:grid;gap:16px;max-width:860px;margin:0 auto}
.internal-payroll-employee-statement>header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.internal-payroll-employee-statement header small{color:#6f7b8d}
.internal-payroll-employee-statement header span{display:block;margin-top:14px;color:#667085;font-size:14px}
.internal-payroll-employee-amount{margin:4px 0 0;font-size:38px;line-height:1.05;color:#176b5c}
.internal-payroll-chip{display:inline-flex;align-items:center;min-height:26px;padding:4px 10px;border-radius:999px;background:#eef6f3;color:#176b5c;font-size:13px;white-space:nowrap}
.internal-payroll-breakdown{margin-top:18px;border-top:1px solid #e8edf3}
.internal-payroll-breakdown h3{margin:14px 0 6px;font-size:16px}
.internal-payroll-breakdown-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:baseline;padding:9px 0;border-bottom:1px solid #eef1f5}
.internal-payroll-breakdown-row span{color:#526071}
.internal-payroll-breakdown-row strong{font-weight:700;color:#172033}
.internal-payroll-breakdown-row small{grid-column:1/-1;color:#7b8493}
.internal-payroll-attendance-summary{display:grid;gap:6px;margin-top:14px;padding-top:14px;border-top:1px solid #e8edf3}
.internal-payroll-attendance-summary span{color:#526071}
.internal-payroll-employee-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:12px}
.internal-payroll-employee-days span{display:grid;place-items:center;min-height:55px;border-radius:8px;background:#f4f6f8;font-size:11px}
.internal-payroll-response-form{display:grid;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e9ef}
.internal-payroll-actions{display:flex;gap:10px;align-items:center}
.internal-payroll-actions button{min-height:38px;border:1px solid #d5dce7;border-radius:8px;background:#fff;padding:8px 14px;color:#243047}
.internal-payroll-actions button.primary{background:#176b5c;border-color:#176b5c;color:#fff}
.internal-payroll-link-button{border-color:transparent!important;background:transparent!important;color:#176b5c!important}
.internal-payroll-dispute{display:grid;gap:10px;padding:12px;border:1px solid #e3e9f1;border-radius:8px;background:#fbfcfe}
.internal-payroll-dispute label{display:grid;gap:6px;color:#526071;font-size:13px}
.internal-payroll-dispute textarea{width:100%;min-height:92px;border:1px solid #d5dce7;border-radius:8px;padding:10px;resize:vertical}
.internal-payroll-choice{display:flex;flex-wrap:wrap;gap:8px}
.internal-payroll-choice button{min-height:32px;border:1px solid #d5dce7;border-radius:999px;background:#fff;padding:6px 12px;color:#243047}
.internal-payroll-choice button.is-active{border-color:#176b5c;background:#eef6f3;color:#176b5c;font-weight:700}
.internal-payroll-dispute-note{margin:14px 0 0;padding:12px;border-radius:8px;background:#fff7e6;color:#624600}
.internal-payroll-dispute-note span{color:#805600}
.internal-payroll-manual-banner{padding:10px;border-radius:8px;background:#fff4d8;color:#805600}
.internal-payroll-employment-modal{width:min(520px,calc(100vw - 32px))!important}
.internal-payroll-employment-modal .cost-config-confirm-modal__body{display:grid;gap:14px}
.internal-payroll-employment-modal .cost-config-confirm-modal__details,.internal-payroll-employment-modal .cost-config-confirm-modal__tips{margin:0}
.internal-payroll-employment-reason{display:grid;gap:7px;color:#334155;font-size:13px;font-weight:700}
.internal-payroll-employment-reason textarea{width:100%;min-height:86px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:10px 11px;color:#0f172a;font:inherit;line-height:1.5;resize:vertical}
.internal-payroll-employment-reason textarea:focus{outline:0;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}
.internal-payroll-employment-reason textarea.field-invalid{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}
.internal-payroll-employment-error{color:#b42318;font-size:12px;font-weight:600}
.internal-payroll-empty-state{text-align:center;padding:44px 20px}
.internal-payroll-drawer-open{overflow:hidden}
@media(max-width:1100px){.internal-payroll-two-column{grid-template-columns:1fr}.internal-payroll-card{padding:16px}}
@media(max-width:900px){.internal-payroll-view{padding:18px}.internal-payroll-hero{align-items:stretch;flex-direction:column}.internal-payroll-month-actions{display:grid;grid-template-columns:1fr 1fr}.internal-payroll-month-actions input{grid-column:1/-1}.internal-payroll-calendar,.internal-payroll-employee-days{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.internal-payroll-view{padding:12px}.internal-payroll-hero h1{font-size:23px}.internal-payroll-card-header{align-items:stretch;flex-direction:column}.internal-payroll-tabs button{flex:1;padding:10px 8px;font-size:13px}.internal-payroll-card{padding:14px}.internal-payroll-inline-form{max-width:none}.internal-payroll-row-actions{justify-content:flex-start}.internal-payroll-adjustments{grid-template-columns:1fr}.internal-payroll-calendar,.internal-payroll-employee-days{grid-template-columns:repeat(3,1fr)}.internal-payroll-drawer{width:100%}.internal-payroll-drawer-body{padding:15px}.internal-payroll-published,.internal-payroll-actions{align-items:stretch;flex-direction:column}.internal-payroll-employee-amount{font-size:36px}}
