body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}.app-container{display:flex;min-height:100vh}.sidebar{background-color:#6c84af;color:#fff;display:flex;flex-direction:column;padding:14px;width:260px}.sidebar-header{border-bottom:1px solid #ffffff1a;margin-bottom:20px;padding-bottom:20px}.sidebar-header h3{color:#fff;font-size:1.5rem;margin:0;text-align:center}.menu-nav ul{list-style:none;margin:0;padding:0}.menu-nav li{margin-bottom:10px}.menu-nav a{border-radius:4px;color:#f7b7b7;display:block;padding:10px 15px;text-decoration:none;transition:background-color .3s ease}.menu-nav a.active,.menu-nav a:hover{background-color:#ffffff1a}.menu-group-title{color:#fff9;display:block;font-size:.8rem;margin-bottom:5px;text-transform:capitalize}.main-content{display:flex;flex-direction:column;flex-grow:1}.app-header{align-items:center;background-color:#fff;border-bottom:1px solid #f0f0f0;display:flex;height:64px;justify-content:space-between;padding:0 24px}.header-right{align-items:center;display:flex}.user-profile{margin-right:20px}.logout-btn{background-color:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px;transition:background-color .3s ease}.logout-btn:hover{background-color:#d32f2f}.page-content{background-color:#f0f2f5;flex-grow:1;padding:24px}.menu-group-title{border-radius:4px;font-weight:700;padding:10px 15px}.menu-group-title:hover{background-color:#ffffff1a}.sub-menu{margin-top:5px;padding-left:15px;transition:max-height .4s ease-in-out}.sub-menu li{margin-bottom:5px}.sub-menu a{color:#fffc;font-size:.9rem;padding:8px 15px}.sub-menu a.active,.sub-menu a:hover{background-color:#ffffff1a;color:#fff}.menu-group-title{align-items:center;border-radius:6px;color:#fffc;cursor:pointer;display:flex;font-weight:600;justify-content:space-between;padding:12px 15px;transition:background-color .3s ease}.menu-group-title.active,.menu-group-title:hover{background-color:#ffffff1a}.menu-group-title:after{content:"▶";font-size:.6em;transition:transform .3s ease-in-out}.menu-group-title.active:after{transform:rotate(90deg)}.sub-menu{background-color:#0003;border-radius:4px;list-style:none;margin:5px 0 10px;max-height:0;overflow:hidden;padding:0;transition:all .4s ease-in-out}.sub-menu.active{max-height:500px;padding:10px 0}.sub-menu li{margin:0}.kpi-tree-table{border:2px solid #e8e8e8;border-collapse:collapse;font-size:.9rem;width:100%}.kpi-tree-table td,.kpi-tree-table th{border:2px solid #a59e9e;padding:12px 16px;text-align:center;vertical-align:middle}.kpi-tree-table thead th{background-color:#8bc0f4}.kpi-name{font-weight:500}.action-btn-group{align-items:center;display:flex;gap:8px}.action-btn{align-items:center;border:1px solid #0000;border-radius:4px;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:500;justify-content:center;padding:6px 12px;transition:all .2s ease}.action-btn.edit{background-color:#e6f7ff;border-color:#91d5ff;color:#1890ff}.action-btn.edit:hover{background-color:#bae7ff}.action-btn.delete{background-color:#fff1f0;border-color:#ffa39e;color:#f5222d}.action-btn.delete:hover{background-color:#ffccc7}.kpi-tree-table td{text-align:center;vertical-align:middle}.kpi-tree-table td:first-child{text-align:left}.kpi-tree-table thead th{background-color:#f8f9fa;font-weight:600;text-align:center}.kpi-tree-table thead th:first-child{text-align:left}:root{--color-border:#e5e7eb;--color-primary:#2563eb;--z-navbar:1100;--z-dropdown:1200;--z-toolbar:100;--z-calendar:1;--z-drawer:999;--z-modal:1000}.planning-page{display:flex;flex-direction:column;gap:12px}.planning-toolbar{align-items:center;display:flex;gap:12px;justify-content:space-between;position:relative;z-index:100;z-index:var(--z-toolbar)}.planning-toolbar .left{display:flex;gap:8px}.tab{background:#e5e7eb;border-radius:999px;cursor:pointer;padding:8px 12px}.tab.active{background:#2563eb;background:var(--color-primary);color:#fff}.planning-toolbar .center select{border:1px solid #e5e7eb;border:1px solid var(--color-border);border-radius:8px;margin-right:8px;padding:8px}.planning-toolbar .dropdown{position:relative}.planning-toolbar .dropdown-menu{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--color-border);border-radius:10px;box-shadow:0 8px 30px #0000001f;left:0;min-width:220px;overflow:hidden;position:absolute;top:100%;z-index:110;z-index:calc(var(--z-toolbar) + 10)}.btn{border:1px solid #e5e7eb;border-radius:8px}.btn--primary{background:#2563eb;border-color:#2563eb}.btn--ghost{border-color:#2563eb;border-color:var(--color-primary);color:#2563eb}.btn--ghost:hover{background:#eff6ff}.btn--danger{background:#dc2626;border-color:#dc2626;color:#fff}.btn-split{display:flex;flex-wrap:wrap;gap:8px}.calendar-wrapper{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 1px 2px #0000000d;padding:8px;position:relative;z-index:1;z-index:var(--z-calendar)}.fc,.fc *{z-index:auto}.modal-backdrop{background:#0f172a73;z-index:1000;z-index:var(--z-modal)}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0003;padding:18px;width:min(820px,95vw)}.modal-body{grid-gap:10px;display:grid;gap:10px}.modal-body.grid2{grid-template-columns:1fr 1fr}.modal-body .full{grid-column:1/-1}.modal-body label{color:#555;display:block;font-size:12px;margin-bottom:6px}.modal-body input,.modal-body select{border:1px solid #e5e7eb;border:1px solid var(--color-border);border-radius:8px;padding:8px 10px;width:100%}.modal-actions{gap:10px;margin-top:8px}.drawer{background:#0206174d;display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:999;z-index:var(--z-drawer)}.drawer__panel{background:#fff;box-shadow:-4px 0 24px #0003;display:flex;flex-direction:column;height:100%;padding:16px;width:min(420px,92vw)}.drawer__header{align-items:center;display:flex;justify-content:space-between}.drawer__body{flex:1 1;overflow:auto}.drawer__actions{display:flex;gap:10px;justify-content:flex-end}.conflict{border-radius:8px;padding:8px 10px}.conflict.warn{background:#fff7ed;border:1px solid #fdba74}.conflict.error{background:#fef2f2;border:1px solid #fca5a5}:root{--navbar-height:56px}.planning-page{padding-bottom:72px;padding-top:16px}.calendar-wrapper{margin-top:12px}.fab-add-plan{align-items:center;background:#2563eb;background:var(--color-primary);border:none;border-radius:999px;bottom:24px;box-shadow:0 10px 24px #0000002e;color:#fff;cursor:pointer;display:inline-flex;gap:8px;padding:12px 16px;position:fixed;right:24px;z-index:1200}.fab-add-plan:hover{filter:brightness(1.05)}.fab-add-plan .icon{font-size:18px;line-height:1}.fab-add-plan .label{font-weight:600}@media (max-width:640px){.fab-add-plan .label{display:none}}.planning-toolbar{background:#fff;border-radius:10px;box-shadow:0 4px 18px #0000000f;position:-webkit-sticky;position:sticky;top:64px;top:calc(var(--navbar-height) + 8px);z-index:3000}.planning-toolbar select{position:relative;z-index:3001}.calendar-wrap,.fc{position:relative;z-index:1}.fc .fc-scrollgrid,.fc .fc-view-harness,.fc .fc-view-harness-active{z-index:1!important}.planning-page{overflow:visible}.login-container{align-items:center;background-color:#f0f2f5;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;justify-content:center;min-height:100vh}.login-form{background:#fff;border-radius:12px;box-shadow:0 8px 24px #0000001a;max-width:400px;padding:40px;text-align:center;width:100%}.login-form h2{color:#333;font-size:2rem;margin-bottom:25px}.input-group{text-align:left}.input-group label{color:#555;display:block;font-weight:500;margin-bottom:8px}.input-group input{border:1px solid #ddd;border-radius:8px;padding:12px 15px;transition:border-color .2s,box-shadow .2s}.input-group input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff33;outline:none}.login-btn{background-color:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px;transition:background-color .2s;width:100%}.login-btn:hover{background-color:#0056b3}.error-message{background-color:#fbe9eb;border-radius:6px;color:#dc3545;font-size:.9rem;margin-bottom:15px;padding:10px}.input-group{display:flex;flex-direction:column;margin-bottom:20px;position:relative}.input-group input{border:1px solid #ccc;border-radius:5px;box-sizing:border-box;font-size:1rem;padding:10px 40px 10px 15px;width:100%}.password-toggle-icon{color:#888;cursor:pointer;font-size:1.2rem;position:absolute;right:15px;top:60%;transform:translateY(-50%);z-index:10}.input-group label{font-weight:700;margin-bottom:5px}:root{--primary-color:#3b82f6;--success-color:#16a34a;--danger-color:#ef4444;--text-primary:#1e293b;--text-secondary:#64748b;--bg-page:#f8fafc;--bg-container:#fff;--border-color:#e2e8f0;--border-radius:12px;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.page-container{margin:0 auto;max-width:1200px;padding:24px}.page-title{color:#1e293b;color:var(--text-primary);font-size:28px;font-weight:700;margin-bottom:24px;text-align:center}.widget-container{display:flex;justify-content:center;margin-bottom:40px}.time-widget{background-color:#fff;background-color:var(--bg-container);border-radius:12px;border-radius:var(--border-radius);border-top:4px solid;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;box-shadow:var(--shadow-lg);max-width:500px;transition:border-color .3s ease;width:100%}.time-widget.status--not_started{border-color:#9ca3af}.time-widget.status--working{border-color:#16a34a;border-color:var(--success-color)}.time-widget.status--finished{border-color:#3b82f6;border-color:var(--primary-color)}.widget-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:16px 20px}.widget-date{color:#64748b;color:var(--text-secondary);font-weight:500}.status-indicator{border-radius:99px;color:#fff;font-size:12px;font-weight:500;padding:4px 12px}.status-indicator--not_started{background-color:#9ca3af}.status-indicator--working{background-color:#16a34a;background-color:var(--success-color)}.status-indicator--finished{background-color:#3b82f6;background-color:var(--primary-color)}.widget-body{padding:32px 20px;text-align:center}.timer-display,.timer-display--placeholder{color:#1e293b;color:var(--text-primary);font-family:monospace;font-size:48px;font-weight:700;margin-bottom:24px}.timer-display--placeholder{color:#d1d5db}.action-button{align-items:center;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;padding:12px;transition:all .2s ease;width:100%}.action-button.checkin{background-color:#16a34a;background-color:var(--success-color)}.action-button.checkout{background-color:#ef4444;background-color:var(--danger-color)}.action-button:hover{transform:translateY(-2px)}.completion-message{align-items:center;color:#3b82f6;color:var(--primary-color);display:flex;font-size:16px;font-weight:500;gap:8px;justify-content:center}.widget-footer{background-color:#f9fafb;border-radius:0 0 12px 12px;border-radius:0 0 var(--border-radius) var(--border-radius);border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);display:flex;justify-content:space-around;padding:16px 20px}.time-record{text-align:center}.time-record span{color:#64748b;color:var(--text-secondary);font-size:12px}.time-record strong{color:#1e293b;color:var(--text-primary);display:block;font-size:18px}.history-section{background-color:#fff;background-color:var(--bg-container);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:12px;border-radius:var(--border-radius);padding:20px}.history-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.history-header h2{font-size:20px;margin:0}.history-filters{display:flex;gap:12px}.history-filters select{border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:6px;font-size:14px;padding:6px 10px}.history-table{border-collapse:collapse;width:100%}.history-table td,.history-table th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:10px 12px;text-align:left}.history-table thead th{background-color:#f9fafb;color:#64748b;color:var(--text-secondary);font-size:12px;font-weight:600;text-transform:uppercase}.history-table tbody tr:last-child td{border-bottom:none}.device-info{align-items:center;display:flex;gap:8px}.device-info i{font-size:16px}.device-info i,.table-state-cell{color:#64748b;color:var(--text-secondary)}.table-state-cell{font-style:italic;padding:40px;text-align:center}@media (max-width:768px){.widget-body{padding:24px 16px}.timer-display{font-size:36px}.history-header{align-items:flex-start;flex-direction:column;gap:12px}}:root{--font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;--color-success:#16a34a;--color-danger:#dc2626;--color-text-primary:#1e293b;--color-text-secondary:#64748b;--color-bg-container:#fff;--color-border:#e2e8f0;--shadow-lg:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--radius:12px}.modal-backdrop{align-items:center;background-color:#1e293b99;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:2000}.payslip-modal{background-color:#fff;background-color:var(--color-bg-container);border-radius:12px;border-radius:var(--radius);box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-family:var(--font-family);max-height:92vh;max-width:820px;overflow:hidden;position:relative;width:100%}.payslip-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:16px 20px}.payslip-header h3{color:#1e293b;color:var(--color-text-primary);font-size:18px;font-weight:700}.close-btn{background:none;border:none;border-radius:8px;color:#94a3b8;cursor:pointer;font-size:22px;line-height:1;padding:2px 6px}.close-btn:hover{background:#f1f5f9;color:#475569}.payslip-body{flex:1 1;overflow-y:auto;padding:20px}.employee-info{align-items:baseline;border-bottom:1px dashed #e2e8f0;border-bottom:1px dashed var(--color-border);display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:12px}.employee-name{color:#1e293b;color:var(--color-text-primary);font-size:20px;font-weight:700}.employee-id{color:#64748b;color:var(--color-text-secondary);font-size:13px}.payslip-main-content{display:flex;gap:24px}.payslip-details{grid-gap:20px;display:grid;flex:1 1;gap:20px;grid-template-columns:1fr 1fr}.details-section .section-title{border-bottom:2px solid;color:#1e293b;color:var(--color-text-primary);font-size:13px;font-weight:700;margin:0 0 10px;padding-bottom:8px}.income-title{border-color:#3b82f6;border-color:var(--color-primary)}.deduction-title{border-color:#dc2626;border-color:var(--color-danger)}.detail-item{align-items:baseline;display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.detail-item span:first-child{color:#64748b;color:var(--color-text-secondary)}.detail-item span:last-child{font-weight:600}.detail-item.total-item{color:#1e293b;color:var(--color-text-primary);font-weight:700;margin-top:8px;padding-top:12px}.detail-item.total-item,.payslip-footer{border-top:1px solid #e2e8f0;border-top:1px solid var(--color-border)}.payslip-footer{align-items:center;background:#f9fafb;display:flex;justify-content:space-between;padding:14px 20px}.net-salary-section span:first-child{color:#16a34a;color:var(--color-success);font-size:12px;font-weight:600}.net-salary-section .net-salary-value{color:#15803d;font-size:24px;font-weight:800}.action-buttons{display:flex;gap:10px}.btn{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--color-border);border-radius:10px;color:#1e293b;color:var(--color-text-primary);padding:8px 14px}.btn--primary{background:#3b82f6;background:var(--color-primary);border-color:#3b82f6;border-color:var(--color-primary);color:#fff}.btn--ghost{background:#fff;border-color:#bfdbfe;color:#3b82f6;color:var(--color-primary)}.btn:disabled{cursor:not-allowed;opacity:.6}.payslip-modal-new .ant-modal-content{border-radius:12px;overflow:hidden;padding:0}.payslip-header{background:#f7f9fc;border-bottom:1px solid #e8e8e8;padding:16px 24px;text-align:center}.payslip-header h3{color:#333;font-size:1.5em;margin:0}.payslip-header p{color:#666;margin:0}.employee-details{background:#fff;border-bottom:1px solid #e8e8e8;display:flex;flex-wrap:wrap;justify-content:space-between;padding:16px 24px}.employee-details>div{align-items:center;color:#555;display:flex;gap:8px}.salary-highlight{color:#1890ff;font-weight:700}.summary-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;padding:24px}.summary-cards .net-salary{grid-column:1/-1}.card{align-items:center;border-radius:8px;color:#fff;display:flex;padding:16px}.card-icon{font-size:2em;margin-right:16px;opacity:.8}.card-content{display:flex;flex-direction:column}.card-title{font-size:.9em;opacity:.9}.card-value{font-size:1.5em;font-weight:700}.card-value-net{font-size:2em;font-weight:700}.card.income{background:linear-gradient(135deg,#28a745,#218838)}.card.deduction{background:linear-gradient(135deg,#dc3545,#c82333)}.card.net-salary{background:linear-gradient(135deg,#007bff,#0056b3);justify-content:center;text-align:center}.details-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr;padding:0 24px}.section-title{align-items:center;border-bottom:2px solid #1890ff;color:#333;display:flex;font-size:1.1em;gap:8px;margin-bottom:12px;padding-bottom:8px}.details-column ul{list-style:none;margin:0;padding:0}.details-column li{border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:8px 0}.details-column li:last-child{border-bottom:none}.details-column li span:first-child{color:#666}.details-column li span:last-child{color:#333;font-weight:500}.modal-actions{background:#f7f9fc;border-top:1px solid #e8e8e8;display:flex;gap:12px;justify-content:flex-end;padding:24px;text-align:right}:root{--font-family:"Inter",sans-serif;--color-primary:#3b82f6;--color-primary-dark:#2563eb;--color-secondary:#f3f4f6;--color-outline:#d1d5db;--color-text-primary:#1f2937;--color-text-secondary:#6b7280;--color-text-white:#fff;--color-bg-page:#f9fafb;--color-bg-card:#fff;--color-highlight-bg:#eff6ff;--color-kpi-bg:#e0f2fe;--color-net-bg:#dcfce7;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--border-radius:8px}.payroll-page{background-color:#f9fafb;background-color:var(--color-bg-page);font-family:Inter,sans-serif;font-family:var(--font-family);padding:24px}.view-header{margin-bottom:24px}.view-title{color:#1f2937;color:var(--color-text-primary);font-size:28px;font-weight:700}.filter-card{background-color:#fff;background-color:var(--color-bg-card);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);gap:16px;justify-content:space-between;margin-bottom:24px;padding:16px 24px}.filter-card,.filter-group{align-items:center;display:flex;flex-wrap:wrap}.filter-group{gap:24px}.form-group{display:flex;flex-direction:column}.form-group label{color:#6b7280;color:var(--color-text-secondary);font-size:14px;font-weight:500;margin-bottom:6px}.form-select{background-color:#fff;background-color:var(--color-bg-card);border:1px solid #d1d5db;border:1px solid var(--color-outline);border-radius:6px;font-weight:500;padding:8px 12px}.month-year-group{display:flex;gap:8px}.action-group{display:flex;gap:12px}.btn{align-items:center;border:1px solid #0000;border-radius:6px;cursor:pointer;display:inline-flex;font-weight:600;gap:8px;padding:8px 16px;transition:all .2s}.btn:hover:not(:disabled){box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-primary{background-color:#3b82f6;background-color:var(--color-primary);color:#fff;color:var(--color-text-white)}.btn-primary:hover:not(:disabled){background-color:#2563eb;background-color:var(--color-primary-dark)}.btn-secondary{background-color:#f3f4f6;background-color:var(--color-secondary);border-color:#d1d5db;border-color:var(--color-outline);color:#1f2937;color:var(--color-text-primary)}.btn-view{background-color:#fff;border:1px solid #d1d5db;border:1px solid var(--color-outline);border-radius:4px;cursor:pointer;font-size:13px;padding:4px 10px}.table-wrapper{background-color:#fff;background-color:var(--color-bg-card);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);overflow-x:auto}.payroll-table{border-collapse:collapse;width:100%}.payroll-table thead th{background-color:#2087ee;border-bottom:1px solid #d1d5db;border-bottom:1px solid var(--color-outline);border-right:1px solid #d1d5db;border-right:1px solid var(--color-outline);color:#fff;font-size:12px;font-weight:600;padding:12px 16px;text-align:center;text-transform:uppercase;vertical-align:middle;white-space:nowrap}.payroll-table thead th:last-child{border-right:none}.payroll-table tbody td{border-bottom:1px solid #e5e7eb;color:#1f2937;color:var(--color-text-primary);font-size:14px;padding:14px 16px;text-align:left;white-space:nowrap}.payroll-table tbody tr:nth-child(2n){background-color:#f9fafb}.col-numeric{text-align:right}.col-kpi{background-color:#e0f2fe;background-color:var(--color-kpi-bg);font-weight:600}.col-net{background-color:#dcfce7;background-color:var(--color-net-bg);font-weight:700}.inline-input{background-color:initial;border:1px solid #0000;border-radius:4px;font-family:Inter,sans-serif;font-family:var(--font-family);font-size:14px;min-width:100px;padding:6px 8px;text-align:right;transition:all .2s ease-in-out;width:100%}.inline-input:hover{border-color:#d1d5db}.inline-input:focus{background-color:#fff;border-color:#3b82f6;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f633;outline:none}.notification-banner.error{background-color:#fee2e2;border-radius:6px;color:#b91c1c;margin-bottom:1rem;padding:1rem}.payroll-table th.col-editable{min-width:120px}.editable-cell-input{border:1px solid #d9d9d9;border-radius:4px;padding:6px;text-align:right;transition:border-color .3s;width:100%}.editable-cell-input:focus{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33;outline:none}
/*# sourceMappingURL=main.2e8a25c1.css.map*/