:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f4f7f6;color:#17201d;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#eef2f1}.login-panel{width:min(420px,100%);background:#fff;border:1px solid #dfe7e3;border-radius:8px;padding:28px;box-shadow:0 18px 50px #14201d1f}.login-panel h1{margin-bottom:22px}.login-mark{width:48px;height:48px;display:grid;place-items:center;margin-bottom:18px;border-radius:8px;color:#fff;background:#19735d}.app-shell{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh}.sidebar{background:#172722;color:#f4fbf7;padding:22px 16px}.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 22px}.brand strong,.brand span{display:block}.brand span{color:#adc2bb;font-size:13px;margin-top:2px}nav{display:grid;gap:4px}nav button{width:100%;min-height:48px;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;background:transparent;color:#d7e4df;text-align:left}nav button small{color:#91aaa1;font-size:11px}nav button.active,nav button:hover{background:#2b463e;color:#fff}.content{padding:26px;display:grid;gap:22px;align-content:start}.topbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px) auto auto;gap:14px;align-items:end;padding-bottom:18px;border-bottom:1px solid #dce6e2}.lock-warning{display:flex;align-items:start;gap:12px;padding:14px 16px;color:#533c07;background:#fff7df;border:1px solid #f1d59a;border-radius:8px}.lock-warning strong,.lock-warning span{display:block}.lock-warning span{margin-top:3px;color:#71520c;font-size:13px}.eyebrow{color:#5f706a;margin:0 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:0}.status-line{margin:8px 0 0;color:#536660}h1,h2{margin:0;line-height:1.15}h1{font-size:30px}h2{font-size:18px}.period-select{display:grid;gap:6px;color:#4d5e58;font-size:13px}.icon-button{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;background:#fff;color:#20342f;border:1px solid #dfe7e3}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric,.panel,.table-section{background:#fff;border:1px solid #dfe7e3;border-radius:8px;box-shadow:0 1px 2px #14201d0d}.metric{min-height:108px;display:grid;align-content:space-between;gap:10px;padding:16px;color:#40534d}.metric strong{color:#17201d;font-size:21px;overflow-wrap:anywhere}.dashboard-grid,.page-grid,.review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.review-grid{grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr)}.full-page{display:grid;gap:16px}.panel,.table-section{padding:18px}.panel-title,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-title{justify-content:flex-start}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}label{display:grid;gap:6px;color:#4d5e58;font-size:13px}input,select,textarea{min-height:40px;border:1px solid #cbd8d3;border-radius:6px;padding:8px 10px;color:#17201d;background:#fff}textarea{min-height:72px;resize:vertical}.form-section-title{margin:16px 0 10px;color:#233631;font-size:13px;font-weight:700}.panel-title+.form-section-title{margin-top:0}.wide-field{margin-top:12px}.primary,.actions button,.quick-actions button,.mini-button{min-height:40px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#19735d;color:#fff;padding:0 14px;margin-top:16px}.primary.inline{margin-top:0}.actions button:disabled,.primary:disabled{background:#9aaba5;cursor:not-allowed}.mini-button{min-height:32px;margin-top:0;padding:0 10px;background:#edf5f2;color:#1f473e}.row-actions{display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.batch-row{align-items:flex-start}.note-input{width:min(190px,32vw)}.split-title{justify-content:space-between;align-items:start}.split-title span{display:block;margin-top:4px;color:#667872;font-size:13px}.employee-tools{grid-column:1 / -1}.search-field{min-height:40px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;padding:0 10px;border:1px solid #cbd8d3;border-radius:8px;background:#fff}.search-field input{min-height:34px;border:0;padding:0}.search-field input:focus{outline:0}.full-search{margin-bottom:14px}.profile-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.profile-summary div,.document-item{padding:12px;border:1px solid #e5ece9;border-radius:8px;background:#f8faf9}.profile-summary span,.document-item span,.document-item small{display:block;margin-top:4px;color:#667872;font-size:12px}.document-form{margin-top:18px;padding-top:18px;border-top:1px solid #e5ece9}.document-list{display:grid;gap:10px;margin-top:14px}.record-browser{display:grid;gap:16px}.record-toolbar{display:flex;align-items:start;justify-content:space-between;gap:16px;padding:18px;background:#fff;border:1px solid #dfe7e3;border-radius:8px;box-shadow:0 1px 2px #14201d0d}.record-toolbar p{margin:6px 0 0;color:#667872}.record-actions{display:flex;align-items:center;justify-content:end;flex-wrap:wrap;gap:10px}.browser-search{width:min(320px,42vw)}.segmented-control{display:inline-flex;gap:2px;padding:3px;border:1px solid #dfe7e3;border-radius:8px;background:#f6faf8}.segmented-control button{width:34px;height:34px;display:grid;place-items:center;border-radius:6px;color:#536660;background:transparent}.segmented-control button.active,.segmented-control button:hover{color:#17201d;background:#fff;box-shadow:0 1px 2px #14201d14}.record-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.record-card{display:grid;gap:12px;min-height:178px;padding:16px;background:#fff;border:1px solid #dfe7e3;border-radius:8px;box-shadow:0 1px 2px #14201d0d}.record-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.record-card-head>span:first-child{color:#536660;font-size:13px;font-weight:700}.record-card h3{margin:0;color:#17201d;font-size:18px;line-height:1.2}.record-meta{display:grid;gap:5px;color:#667872;font-size:13px}.record-card .mini-button{justify-self:start;margin-top:auto}.status-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border-radius:999px;background:#eef3f1;color:#40534d;font-size:12px;font-weight:700;text-transform:capitalize}.status-active,.status-approved,.status-paid,.status-current{background:#e5f5ee;color:#12664f}.status-review,.status-calculating,.status-requested{background:#fff2d8;color:#7a4b00}.status-locked{background:#e5e9e8;color:#17201d}.status-cancelled,.status-resigned,.status-suspended{background:#fee8e6;color:#9b2c22}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;justify-items:end;background:#17201d52}.record-drawer{width:min(760px,100%);height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr);background:#fff;box-shadow:-20px 0 60px #14201d2e}.drawer-header{display:flex;justify-content:space-between;gap:14px;padding:20px;border-bottom:1px solid #e5ece9}.drawer-header p{margin:6px 0 0;color:#667872}.drawer-body{overflow:auto;padding:20px}.print-drawer{width:min(980px,100%)}.print-backdrop{background:#17201d6b}.payslip-paper{display:grid;gap:18px;min-height:1120px;padding:38px;color:#17201d;background:#fff;border:1px solid #dfe7e3;border-radius:8px;box-shadow:0 8px 28px #14201d14}.payslip-head{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:18px;align-items:start;padding-bottom:18px;border-bottom:2px solid #172722}.payslip-head h2{margin-top:4px;font-size:28px}.payslip-head span{display:block;margin-top:8px;color:#536660}.qr-box{min-height:150px;display:grid;place-items:center;padding:14px;border:2px solid #172722;border-radius:8px;color:#172722;font-size:12px;font-weight:800;text-align:center;overflow-wrap:anywhere;background:linear-gradient(90deg,rgba(23,39,34,.08) 50%,transparent 0) 0 0 / 16px 16px,linear-gradient(rgba(23,39,34,.08) 50%,transparent 0) 0 0 / 16px 16px,#fff}.payslip-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.payslip-grid div{min-height:74px;padding:12px;border:1px solid #e5ece9;border-radius:8px;background:#f8faf9}.payslip-grid strong,.payslip-grid span{display:block}.payslip-grid span{margin-top:5px;color:#536660;overflow-wrap:anywhere}.payslip-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.payslip-columns>div{padding:16px;border:1px solid #e5ece9;border-radius:8px}.payslip-columns h3{margin:0 0 14px;font-size:16px}.payslip-total{padding:16px;border:1px solid #dfe7e3;border-radius:8px;background:#f8faf9}.signature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:auto;padding-top:70px}.signature-grid div{padding-top:12px;border-top:1px solid #172722;color:#40534d;text-align:center}.drawer-actions{position:sticky;bottom:0;display:flex;justify-content:end;gap:10px;margin-top:18px;padding:14px 0 0;background:#fff}.drawer-actions.static-actions{position:static;justify-content:start;padding-top:16px}.ghost-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border:1px solid #cbd8d3;border-radius:8px;background:#fff;color:#233631}.toggle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.manual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.manual-entry-form{align-content:start}.manual-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.table-note{padding:12px 14px;color:#5b6f68;background:#f8faf9;border-bottom:1px solid #e5ece9;font-size:13px}.checkbox-line{min-height:40px;display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid #dfe7e3;border-radius:8px;background:#f8faf9;color:#233631}.checkbox-line input{width:16px;min-height:16px}.quick-actions{display:flex;flex-wrap:wrap;gap:10px}.quick-actions button{margin-top:0;background:#edf5f2;color:#1f473e}.review-band{display:flex;justify-content:space-between;gap:16px;align-items:end;padding:16px;background:#fff;border:1px solid #dfe7e3;border-radius:8px}.actions{display:flex;gap:10px;flex-wrap:wrap}.table-wrap{overflow:auto;border:1px solid #e5ece9;border-radius:8px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #e8efec;white-space:nowrap}tr:last-child td{border-bottom:0}th{color:#586b64;font-size:13px;font-weight:700;background:#f8faf9}td{color:#233631}tbody tr{transition:background .14s ease}tbody tr:hover{background:#f8fbfa}.selected-row{background:#edf7f3}td strong,.subtext{display:block}.subtext{margin-top:2px;color:#667872;font-size:12px}.money-input{width:106px;min-height:34px;padding:6px 8px}.status-track{display:grid;gap:12px}.status-track div{display:flex;align-items:center;gap:10px;color:#61756e}.status-track span{width:12px;height:12px;border-radius:999px;background:#c9d8d3}.status-track .current{color:#17201d}.status-track .current span{background:#19735d}.rows-list,.summary-list{display:grid;gap:10px}.row-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf2f0}.row-item:last-child{border-bottom:0}.row-item span{display:block;margin-top:2px;color:#667872;font-size:12px}.summary-list{grid-template-columns:1fr auto;margin:0}.summary-list dt{color:#5b6f68}.summary-list dd{margin:0;font-weight:700}.detail-panel{display:grid;gap:16px;background:#fff;border:1px solid #dfe7e3;border-radius:8px;padding:18px;box-shadow:0 1px 2px #14201d0d}.detail-header{display:flex;justify-content:space-between;gap:16px;align-items:start;padding-bottom:14px;border-bottom:1px solid #edf2f0}.detail-header span{display:block;margin-top:4px;color:#667872}.detail-header>strong{color:#19735d;background:#edf7f3;padding:6px 10px;border-radius:999px;font-size:12px}.detail-block{display:grid;gap:10px}.detail-block h3{margin:0;font-size:14px;color:#233631}.source-breakdown{gap:10px}.source-row{display:flex;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #e5ece9;border-radius:8px;background:#f8faf9}.source-row span{display:block;margin-top:3px;color:#667872;font-size:12px}.source-row b{color:#12664f;white-space:nowrap}.source-row b.negative{color:#9b2c22}.money-rows{display:grid;grid-template-columns:1fr auto;gap:8px 16px;margin:0}.money-rows dt,.detail-total span{color:#60746d}.money-rows dd{margin:0;font-weight:650}.detail-total{display:grid;gap:8px;padding-top:14px;border-top:1px solid #edf2f0}.detail-total div{display:flex;justify-content:space-between;gap:16px}.detail-total div:last-child strong{color:#19735d;font-size:18px}.empty,.empty-state p{color:#667872}.empty-state{display:grid;justify-items:center;gap:10px;padding:56px 20px;background:#fff;border:1px solid #dfe7e3;border-radius:8px;text-align:center}.empty-state.compact{padding:36px 18px}@media (max-width: 1060px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}nav{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar,.metrics,.dashboard-grid,.page-grid,.record-card-grid,.manual-grid,.manual-tables,.review-grid{grid-template-columns:1fr}.record-toolbar{display:grid}.payslip-grid,.payslip-columns,.payslip-head{grid-template-columns:1fr}.qr-box{min-height:96px}.browser-search{width:100%}}@media (max-width: 560px){.content{padding:18px}.form-grid,nav{grid-template-columns:1fr}.record-actions{justify-content:stretch}.record-actions .primary,.search-field{width:100%}h1{font-size:26px}.payslip-paper{min-height:auto;padding:22px}}@media print{@page{size:A4;margin:12mm}body{background:#fff}body *{visibility:hidden}.payslip-paper,.payslip-paper *{visibility:visible}.no-print{display:none!important}.drawer-backdrop,.record-drawer,.drawer-body{position:static;display:block;width:auto;height:auto;padding:0;overflow:visible;background:transparent;box-shadow:none}.payslip-paper{position:absolute;top:0;right:0;bottom:0;left:0;min-height:auto;width:100%;padding:0;border:0;border-radius:0;box-shadow:none}}
