:root{--primary-color: #2E7D32;--bg-body: #F1F8E9;--text-dark: #37474F;--sidebar-width: 260px;--navbar-height: 60px;--filter-area-height: 52px}body{font-family:Be Vietnam Pro,sans-serif;background-color:var(--bg-body);color:var(--text-dark);font-size:12px!important;overflow-x:hidden;overflow-y:auto!important}h1,h2,h3,h4,h5,h6,.card-title,.modal-title{font-size:12px!important;font-weight:700!important}#loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#ffffffe6;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:99999;display:none;justify-content:center;align-items:center;flex-direction:column}.loader-icon{font-size:3.5rem;background:-webkit-linear-gradient(#FFD700,#FFA000);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:spin 2s linear infinite;margin-bottom:15px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-card{background:#fff;width:100%;max-width:400px;border-radius:20px;box-shadow:0 10px 40px #2e7d3226;border:1px solid rgba(46,125,50,.1);z-index:100}.login-logo{max-width:120px;height:auto}.gradient-btn{background:linear-gradient(135deg,#43a047,#2e7d32);border:none;color:#fff}.gradient-btn:hover{background:linear-gradient(135deg,#2e7d32,#1b5e20);transform:translateY(-2px);color:#fff}.navbar{box-shadow:0 2px 10px #0000001a;border-bottom:none}.main-navbar{background-color:var(--primary-color)!important}.main-content{display:flex;flex-direction:column;min-height:0}.main-content .content-tab:not(.d-none){flex:1;min-height:0;display:flex;flex-direction:column}@media (min-width: 992px){.offcanvas-start{position:fixed!important;top:var(--navbar-height)!important;left:0!important;width:var(--sidebar-width)!important;height:calc(100vh - var(--navbar-height))!important;visibility:visible!important;transform:none!important;background:#fff;border-right:1px solid #E0E0E0;z-index:1000;padding-top:10px}.main-content{margin-left:var(--sidebar-width)!important;padding:10px 12px;margin-top:var(--navbar-height);min-height:calc(100vh - var(--navbar-height));display:flex;flex-direction:column}.table-responsive{flex:1;border-radius:8px;border:1px solid #eee;background:#fff}.table-scroll{overflow:auto!important}#tab-generic .card-header{padding:8px 12px}body.sidebar-closed .offcanvas-start{left:calc(var(--sidebar-width) * -1)!important}body.sidebar-closed .main-content{margin-left:0!important}.offcanvas-backdrop{display:none!important}}.sidebar-heading{color:#90a4ae;font-size:.75rem;font-weight:700;text-transform:uppercase;margin:20px 20px 8px;letter-spacing:.5px}.sidebar-item{padding:12px 20px;margin:2px 12px;border-radius:8px;cursor:pointer;color:#546e7a;font-weight:500;transition:all .2s ease;display:flex;align-items:center}.sidebar-item:hover{background-color:#e8f5e9;color:var(--primary-color)}.sidebar-item.active{background-color:#e8f5e9;color:var(--primary-color);font-weight:700;box-shadow:inset 4px 0 0 var(--primary-color)}.sidebar-item i{width:24px;text-align:center;margin-right:12px;font-size:1.1rem}.dashboard-container{padding-bottom:24px}.kpi-card-premium{background:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 6px 20px #0000000a;border:1px solid rgba(0,0,0,.03);display:flex;align-items:center;justify-content:space-between;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden}.kpi-card-premium:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:4px;background:transparent;transition:all .3s}.kpi-card-premium:hover{transform:translateY(-8px);box-shadow:0 15px 40px #2e7d321f}.kpi-content{flex-grow:1}.kpi-label{color:#90a4ae;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}.kpi-value{font-size:32px;font-weight:800;line-height:1}.kpi-icon-wrap{width:60px;height:60px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#fff;box-shadow:0 8px 20px #0000001a}.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.menu-card-modern{background:#fff;border-radius:12px;padding:14px 12px;text-align:center;box-shadow:0 2px 8px #00000008;border:1px solid #F1F1F1;cursor:pointer;transition:all .3s cubic-bezier(.25,.8,.25,1);display:flex;flex-direction:column;align-items:center;height:100%}.menu-card-modern:hover{transform:translateY(-5px);box-shadow:0 10px 30px #2e7d3226;border-color:var(--primary-color)}.menu-card-modern i{font-size:2.2rem;margin-bottom:15px;color:var(--primary-color);background:#e8f5e9;width:60px;height:60px;line-height:60px;border-radius:50%;transition:all .3s}.menu-card-modern:hover i{background:var(--primary-color);color:#fff}.menu-card-modern span{font-weight:600;font-size:.95rem;color:var(--text-dark)}#tab-generic{display:flex;flex-direction:column;min-height:0}#tab-generic .card{flex:1;display:flex;flex-direction:column;min-height:0}.card-body-table{overflow:hidden;min-height:0;flex:1;display:flex;flex-direction:column}.table-viewport{display:flex;flex-direction:column;min-height:0;overflow:hidden;flex:1}.filter-area-sticky{flex-shrink:0;background:#fff;box-shadow:0 1px 3px #0000000f}.filter-bar-block{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:10px 12px!important}.filter-bar-block .filter-item{min-width:0}@media (min-width: 992px){.filter-bar-block{flex-wrap:nowrap;gap:1rem}.filter-bar-block .filter-item{flex:0 0 auto;width:140px}.filter-bar-block .filter-item-search{flex:1;min-width:200px;max-width:320px}}.table-scroll{flex:1 1 0;min-height:120px;overflow:auto;-webkit-overflow-scrolling:touch;border-radius:8px;background:#fff;box-shadow:0 2px 8px #0000001a}.table-scroll::-webkit-scrollbar{width:10px;height:12px}.table-scroll::-webkit-scrollbar-track{background:#f1f3f4;border-radius:6px;margin:2px}.table-scroll::-webkit-scrollbar-thumb{background:linear-gradient(135deg,var(--primary-color) 0%,#4CAF50 100%);border-radius:6px;border:2px solid #f1f3f4;background-clip:content-box}.table-scroll::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#1e5e23,#388e3c)}.table-scroll::-webkit-scrollbar-corner{background:#f1f3f4;border-radius:6px}.table-responsive{overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch;border:1px solid #dee2e6;border-radius:8px;background:#fff;transition:box-shadow .3s ease}.table-responsive:hover{box-shadow:0 4px 12px #0000001a}.table-responsive::-webkit-scrollbar{height:8px}.table-responsive::-webkit-scrollbar-track{background:#f8f9fa;border-radius:4px}.table-responsive::-webkit-scrollbar-thumb{background:var(--primary-color);border-radius:4px;border:1px solid #e9ecef}.table-responsive::-webkit-scrollbar-thumb:hover{background:#1e5e23}.custom-table{font-size:12px!important;border-collapse:separate!important;border-spacing:0!important;min-width:100%!important;position:relative!important}.table-with-horizontal-scroll{min-width:1200px!important;table-layout:auto!important}.table-with-horizontal-scroll th,.table-with-horizontal-scroll td{white-space:nowrap!important;padding:8px 10px!important;border-right:1px solid #e9ecef!important}.action-column-sticky{position:sticky!important;right:0!important;background-color:#f8f9fa!important;z-index:20!important;border-left:2px solid var(--primary-color)!important;min-width:100px!important;max-width:100px!important;box-shadow:-2px 0 4px #0000001a!important}.action-column-sticky .btn-group{display:flex!important;gap:2px!important;justify-content:center!important}.action-column-sticky .btn-xs{padding:4px 6px!important;font-size:11px!important;border-radius:4px!important;min-width:32px!important}.sticky-header{position:sticky!important;top:0!important;z-index:25!important;background-color:var(--primary-color)!important;color:#fff!important;font-weight:600!important;box-shadow:0 2px 4px #0000001a!important;border-bottom:2px solid #1e5e23!important}.table-row-with-scroll:hover{background-color:#fff3cd!important;transform:translateY(-1px)!important;box-shadow:0 4px 8px #0000001a!important;transition:all .2s ease!important}.table-row-with-scroll:hover .action-column-sticky{background-color:#fdf5e6!important;border-left-color:#28a745!important}@keyframes fadeInOut{0%{opacity:0;transform:translateY(-50%) translate(10px)}15%{opacity:1;transform:translateY(-50%) translate(0)}85%{opacity:1;transform:translateY(-50%) translate(0)}to{opacity:0;transform:translateY(-50%) translate(10px)}}.scroll-indicator{animation:fadeInOut 3s ease-in-out!important}.table-scroll:after{content:"";position:absolute;top:0;right:0;width:20px;height:100%;background:linear-gradient(to left,#0000001a,#0000);pointer-events:none;opacity:0;transition:opacity .3s ease;z-index:15}.table-scroll.has-horizontal-scroll:after{opacity:1}@media (max-width: 768px){.table-with-horizontal-scroll{min-width:800px!important}.action-column-sticky{min-width:80px!important;max-width:80px!important}.action-column-sticky .btn-xs{padding:3px 4px!important;font-size:10px!important;min-width:24px!important}.scroll-indicator{font-size:10px!important;padding:3px 6px!important}}.table-loading{position:relative;opacity:.6;pointer-events:none}.table-loading:before{content:"";position:absolute;top:50%;left:50%;width:30px;height:30px;border:3px solid #f3f3f3;border-top:3px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;transform:translate(-50%,-50%);z-index:100}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.table-with-horizontal-scroll.compact{font-size:11px!important}.table-with-horizontal-scroll.compact th,.table-with-horizontal-scroll.compact td{padding:6px 8px!important;font-size:11px!important}.table-with-horizontal-scroll .money-cell{background-color:#f8fff9!important;min-width:90px!important}.table-with-horizontal-scroll .number-cell{background-color:#f8f9fa!important;min-width:70px!important}.table-with-horizontal-scroll th.text-end,.table-with-horizontal-scroll td.text-end{padding-right:12px!important}.table-with-horizontal-scroll.fit-mode{width:100%!important;table-layout:fixed!important}.table-with-horizontal-scroll.fit-mode th,.table-with-horizontal-scroll.fit-mode td{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.table-with-horizontal-scroll.fit-mode .action-column-sticky{width:100px!important;min-width:100px!important;max-width:100px!important}.scroll-indicator{position:absolute!important;top:50%!important;right:120px!important;transform:translateY(-50%)!important;background:#2e7d32e6!important;color:#fff!important;padding:6px 12px!important;border-radius:20px!important;font-size:11px!important;font-weight:600!important;z-index:40!important;pointer-events:none!important;box-shadow:0 2px 8px #0000004d!important;-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important}.table-scroll.has-horizontal-scroll:before,.table-responsive.has-horizontal-scroll:before{content:"";position:absolute;top:0;left:0;width:20px;height:100%;background:linear-gradient(to right,#2e7d321a,#2e7d3200);pointer-events:none;z-index:15}.table-scroll.has-horizontal-scroll:after,.table-responsive.has-horizontal-scroll:after{content:"";position:absolute;top:0;right:120px;width:20px;height:100%;background:linear-gradient(to left,#2e7d321a,#2e7d3200);pointer-events:none;z-index:15}.table-scroll,.table-responsive{position:relative!important}@media (max-width: 768px){.table-scroll,.table-responsive{-webkit-overflow-scrolling:touch!important;scroll-behavior:smooth!important}.table-with-horizontal-scroll{min-width:900px!important}.scroll-indicator{right:90px!important;font-size:10px!important;padding:4px 8px!important}.table-scroll.has-horizontal-scroll:after,.table-responsive.has-horizontal-scroll:after{right:90px!important;width:15px!important}}.table-container-loading{position:relative}.table-container-loading:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#fffc;z-index:50}.table-container-loading:after{content:"⟳";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:30px;color:var(--primary-color);animation:spin 1s linear infinite;z-index:51}.action-column-sticky .btn-group{touch-action:manipulation!important}.action-column-sticky .btn-xs:active{transform:scale(.95)!important;transition:transform .1s ease!important}.child-table-scroll{-webkit-overflow-scrolling:touch}.child-table-inline{white-space:nowrap}.child-detail-table.child-table-inline thead.child-thead-success th,.child-table-scroll .child-thead-success th{position:sticky;top:0;z-index:5;background-color:var(--primary-color)!important;color:#fff!important;font-weight:600;padding:6px 10px;white-space:nowrap;box-shadow:0 1px 2px #00000014}.child-row-clickable:hover{background-color:#2e7d3214}.child-detail-table th:last-child,.child-detail-table td:last-child{position:relative;right:auto;box-shadow:none}.detail-modal-footer{flex-wrap:nowrap}.table-cell-img{vertical-align:middle}.custom-table thead.thead-sticky th{position:sticky;top:0;z-index:20;background-color:var(--primary-color);color:#fff;font-weight:600;padding:6px 10px;white-space:nowrap;box-shadow:0 1px 2px #00000014}.custom-table th:last-child,.custom-table td:last-child{position:sticky;right:0;background-color:#fff;z-index:10;border-left:1px solid #eee;box-shadow:-2px 0 5px #0000000d}.custom-table thead th:last-child{z-index:30;background-color:var(--primary-color)!important}.custom-table td{padding:5px 10px;vertical-align:middle;border-bottom:1px solid #F1F1F1;white-space:nowrap}.detail-modal-title{font-size:15px!important;font-weight:800!important;color:var(--primary-color);text-transform:uppercase;letter-spacing:1px;padding-top:10px!important}.swal2-html-container,.swal2-content{font-size:12px!important}.swal2-popup{padding:1.25rem!important;border-radius:15px!important}.form-control,.form-select,.btn,.form-label{font-size:12px!important}.footer-bar{position:fixed;bottom:0;left:0;width:100%;background:#fff;border-top:1px solid #eee;text-align:center;padding:5px;font-size:11px;color:#999;z-index:2000}.avatar-circle{width:32px;height:32px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center}.hover-white:hover{color:#fff!important;cursor:pointer}@media (max-width: 768px){:root{--navbar-height: 50px;--filter-area-height: 44px}body{font-size:11px!important}.main-content{padding:4px 4px 55px;margin-top:var(--navbar-height);min-height:calc(100vh - var(--navbar-height) - 40px);overflow-y:auto!important;display:flex;flex-direction:column}.dashboard-container .kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;overflow:visible;padding-bottom:0;margin-left:0;margin-right:0}.dashboard-container .kpi-row>.kpi-col{flex:none;width:auto;max-width:none;min-width:0}.dashboard-container .kpi-card-premium{padding:4px 2px;border-radius:8px;height:100%;margin-bottom:0!important;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:56px}.dashboard-container .kpi-card-premium .kpi-content{order:2;width:100%}.dashboard-container .kpi-card-premium .kpi-icon-wrap{order:1;width:24px;height:24px;font-size:.7rem;border-radius:6px;margin-bottom:4px}.dashboard-container .kpi-label{font-size:9px;margin-bottom:1px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none!important;font-weight:600}.dashboard-container .kpi-value{font-size:18px;font-weight:800;line-height:1.2}.menu-grid{grid-template-columns:repeat(3,1fr);gap:4px}.menu-card-modern{padding:8px 4px;border-radius:8px}.menu-card-modern i{font-size:1.2rem;width:36px;height:36px;line-height:36px;margin-bottom:4px}.menu-card-modern span{font-size:11px;font-weight:500;line-height:1.2}.filter-area-sticky{padding:6px 10px!important}.filter-area-sticky .input-group-search .form-control,.filter-area-sticky .input-group-search .input-group-text{font-size:11px;padding:4px 8px;min-height:30px}.filter-bar-block{padding:4px 6px!important;margin:0 0 4px!important;border-radius:10px;flex-wrap:wrap}.filter-bar-block .filter-item{flex:1 1 45%;min-width:120px}.filter-bar-block .filter-item-search{flex:1 1 100%;min-width:0;max-width:none}.filter-bar-block label{font-size:11px;font-weight:600;color:#78909c;margin-bottom:1px}.filter-bar-block .form-control,.filter-bar-block .form-select,.filter-bar-block .form-control-sm,.filter-bar-block .form-select-sm{font-size:11px;padding:3px 5px;min-height:26px}.filter-bar-block .input-group-sm .input-group-text,.filter-bar-block .input-group-sm .form-control{padding:3px 5px;min-height:26px;font-size:11px}.card-body-table{border-radius:0 0 1rem 1rem}.table-viewport{border-radius:0 0 12px 12px}.custom-table{font-size:11px!important;line-height:1.35}.custom-table thead.thead-sticky th{padding:5px 8px;font-size:11px}.custom-table td{padding:5px 8px;line-height:1.35}.custom-table tbody tr{border-spacing:0}.custom-table th:last-child,.custom-table td:last-child{min-width:70px}.card-header .fw-bold,#page-title{font-size:11px!important}.navbar-brand img{height:24px!important}.navbar-brand span{font-size:14px!important}#data-table.attendance-table caption{font-size:11px!important;padding:8px!important}#data-table.attendance-table th{padding:6px 3px!important;font-size:10px!important;min-width:45px!important}#data-table.attendance-table thead th:first-child{min-width:60px!important}#data-table.attendance-table thead th:nth-child(2){left:60px!important;min-width:100px!important}#data-table.attendance-table thead th:nth-child(3){left:160px!important;min-width:70px!important}#data-table.attendance-table thead th:nth-child(4){left:230px!important;min-width:70px!important}#data-table.attendance-table tbody tr td:nth-child(2){left:60px!important}#data-table.attendance-table tbody tr td:nth-child(3){left:160px!important}#data-table.attendance-table tbody tr td:nth-child(4){left:230px!important}#data-table.attendance-table td{padding:6px 3px!important;font-size:10px!important}#filter-area{padding:8px 10px!important}#filter-area .d-flex{flex-wrap:wrap!important;gap:8px!important}#filter-area .d-flex>div{flex:1 1 45%!important;min-width:120px!important}#filter-area .flex-grow-1{flex:1 1 100%!important}#filter-area .form-select,#filter-area .form-control{font-size:11px!important;padding:6px 8px!important;min-height:32px!important}#filter-area .btn{font-size:11px!important;padding:6px 12px!important;min-height:32px!important}#filter-area label{font-size:10px!important;margin-bottom:2px!important}.swal2-popup{width:95vw!important;max-width:95vw!important;padding:12px!important;margin:10px!important}.swal2-title{font-size:14px!important;padding:8px 0!important}.swal2-html-container{font-size:11px!important;padding:8px 0!important;max-height:60vh!important;overflow-y:auto!important}.swal2-actions{margin:8px 0 0!important}.swal2-actions button{font-size:12px!important;padding:8px 16px!important;margin:4px!important}.detail-scroll-wrap{max-height:50vh!important;padding:10px!important;font-size:11px!important}.detail-scroll-wrap .col-md-4,.detail-scroll-wrap .col-6{flex:0 0 50%!important;max-width:50%!important;margin-bottom:10px!important}.detail-scroll-wrap small{font-size:9px!important}.detail-scroll-wrap span{font-size:11px!important}.child-table-scroll{max-height:200px!important;font-size:10px!important}.child-detail-table{font-size:10px!important}.child-detail-table th,.child-detail-table td{padding:4px 6px!important;font-size:10px!important}.btn-xs{padding:4px 6px!important;font-size:9px!important;min-width:28px!important;min-height:28px!important}.btn-xs i{font-size:9px!important}.btn-group{display:flex!important;gap:4px!important}.swal2-footer{padding:8px!important}.detail-modal-footer button{font-size:11px!important;padding:8px 12px!important;min-width:80px!important;min-height:36px!important}#extra-btn-area .btn{font-size:11px!important;padding:6px 12px!important;white-space:nowrap!important}#extra-btn-area{display:flex!important;flex-wrap:wrap!important;gap:6px!important;justify-content:flex-end!important}.modal-body .form-control,.modal-body .form-select{font-size:12px!important;padding:8px 10px!important;min-height:38px!important}.modal-body .form-label{font-size:11px!important;margin-bottom:4px!important}.modal-body .col-md-6{flex:0 0 100%!important;max-width:100%!important}#salary-calc-type,#salary-from-date,#salary-to-date,#salary-user-group,#salary-sudden-user,#salary-sudden-from,#salary-sudden-to,#salary-sudden-reason{font-size:12px!important;padding:8px!important;min-height:38px!important}.swal2-popup table{font-size:10px!important}.swal2-popup table th,.swal2-popup table td{padding:6px 4px!important;font-size:10px!important}.custom-table tbody tr{min-height:44px!important}.custom-table tbody tr td{padding:8px 6px!important}.navbar-brand{font-size:12px!important}#manual-sidebar-btn,#manual-home-btn{padding:6px 8px!important}.dropdown-menu{font-size:11px!important;min-width:150px!important}.dropdown-item{padding:8px 12px!important;font-size:11px!important}.card-header{padding:6px 10px!important}.card-header h5{font-size:12px!important;margin:0!important}.sidebar-item{padding:10px 16px!important;font-size:11px!important}.sidebar-heading{font-size:10px!important;margin:12px 16px 6px!important}.alert{font-size:11px!important;padding:10px!important}.badge{font-size:10px!important;padding:4px 8px!important}#loading-overlay .loader-text{font-size:12px!important}.footer-bar{display:none!important}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:2px solid var(--primary-color);padding-bottom:env(safe-area-inset-bottom,0);display:flex;justify-content:center;align-items:center;height:50px;z-index:9999;box-shadow:0 -2px 10px #0000001a}.mobile-bottom-nav .nav-item{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:0;padding:10px 20px;cursor:pointer;color:var(--primary-color);transition:all .2s;border:none;background:transparent;font-size:14px;font-weight:700}.mobile-bottom-nav .nav-item:active{background-color:#f0f0f0}.mobile-bottom-nav .nav-item i{font-size:20px;margin-bottom:0}.mobile-bottom-nav .nav-item span{display:none}.mobile-bottom-nav .nav-item.active{color:var(--primary-color);background-color:#e8f5e9;border-radius:25px}#manual-home-btn{display:none!important}.detail-field{display:flex;flex-direction:column}.detail-field .field-label{color:#666;font-size:10px!important;font-weight:600;margin-bottom:4px;display:block}.detail-field .field-value{color:#000;font-size:12px!important;font-weight:500;display:block;text-align:right!important}.detail-field .field-value.text-end{text-align:right!important}}.detail-field{display:flex;flex-direction:column}.detail-field .field-label{color:#2e7d32;font-size:11px;font-weight:600;margin-bottom:6px;display:block;text-align:left!important}.detail-field .field-value{color:#212121;font-size:13px;font-weight:500;display:block;text-align:right!important}#data-table.attendance-table{font-size:11px;border-collapse:separate;border-spacing:0}#data-table.attendance-table caption{background:linear-gradient(135deg,var(--primary-color),#1B5E20);color:#fff;padding:12px;border-radius:8px 8px 0 0;font-size:13px;letter-spacing:.5px}#data-table.attendance-table th{background-color:var(--primary-color)!important;color:#fff;font-weight:600;padding:10px 6px;text-align:center;position:sticky;top:0;z-index:10;border:1px solid #1B5E20;box-shadow:0 2px 4px #0000001a}#data-table.attendance-table thead th:first-child,#data-table.attendance-table thead th:nth-child(2),#data-table.attendance-table thead th:nth-child(3),#data-table.attendance-table thead th:nth-child(4){position:sticky;z-index:15;background-color:#1b5e20!important}#data-table.attendance-table thead th:first-child{left:0}#data-table.attendance-table thead th:nth-child(2){left:80px}#data-table.attendance-table thead th:nth-child(3){left:230px}#data-table.attendance-table thead th:nth-child(4){left:330px}#data-table.attendance-table td{padding:8px 6px;vertical-align:middle;border:1px solid #e0e0e0;transition:all .2s ease}#data-table.attendance-table sup{font-size:9px;color:#e53935;font-weight:700;margin-left:3px}#data-table.attendance-table tbody tr:hover{background-color:#fff9c4!important}#data-table.attendance-table tbody tr:nth-child(2n){background-color:#f9f9f9}#data-table.attendance-table tbody tr td:first-child,#data-table.attendance-table tbody tr td:nth-child(2),#data-table.attendance-table tbody tr td:nth-child(3),#data-table.attendance-table tbody tr td:nth-child(4){position:sticky;background-color:#fff;z-index:5;box-shadow:2px 0 4px #0000000d}#data-table.attendance-table tbody tr:nth-child(2n) td:first-child,#data-table.attendance-table tbody tr:nth-child(2n) td:nth-child(2),#data-table.attendance-table tbody tr:nth-child(2n) td:nth-child(3),#data-table.attendance-table tbody tr:nth-child(2n) td:nth-child(4){background-color:#f9f9f9}#data-table.attendance-table tbody tr:hover td:first-child,#data-table.attendance-table tbody tr:hover td:nth-child(2),#data-table.attendance-table tbody tr:hover td:nth-child(3),#data-table.attendance-table tbody tr:hover td:nth-child(4){background-color:#fff9c4!important}#data-table.attendance-table tbody tr td:first-child{left:0;font-weight:700;color:var(--primary-color)}#data-table.attendance-table tbody tr td:nth-child(2){left:80px;text-align:left;font-weight:500}#data-table.attendance-table tbody tr td:nth-child(3){left:230px;font-weight:700;color:var(--primary-color)}#data-table.attendance-table tbody tr td:nth-child(4){left:330px;font-weight:700;color:#e53935}.btn-xs{padding:2px 6px;font-size:10px;line-height:1.2;border-radius:3px}.btn-xs i{font-size:10px}.child-row-clickable:hover{background-color:#f0f0f0!important}.btn-group .btn-xs{margin:0 1px}.table-viewport:has(.payroll-table){border:1px solid #dee2e6;border-radius:8px;background:#fff;overflow:hidden}.table-responsive:has(.payroll-table){overflow-x:auto!important;overflow-y:visible!important;border:none}.table-responsive:has(.payroll-table)::-webkit-scrollbar{height:10px}.table-responsive:has(.payroll-table)::-webkit-scrollbar-track{background:#f8f9fa;border-radius:5px}.table-responsive:has(.payroll-table)::-webkit-scrollbar-thumb{background:var(--primary-color);border-radius:5px}.table-responsive:has(.payroll-table)::-webkit-scrollbar-thumb:hover{background:#1e5e23}.payroll-table{font-size:11px!important;border-collapse:separate!important;border-spacing:0!important;margin-bottom:0!important;min-width:1400px}.payroll-table th{position:sticky!important;top:0!important;z-index:100!important;background-color:var(--primary-color)!important;color:#fff!important;border-bottom:2px solid #1e5e23!important;font-weight:600!important;white-space:nowrap!important;box-shadow:0 2px 4px #0000001a!important}.payroll-table .payroll-row{transition:all .2s ease!important;border-bottom:1px solid #e9ecef!important;animation:fadeInUp .3s ease-out!important}.payroll-table .payroll-row:hover{background-color:#fff3cd!important;transform:translate(2px)!important;box-shadow:2px 2px 6px #0000001a!important;border-left:3px solid var(--primary-color)!important}.payroll-table td{padding:8px 6px!important;vertical-align:middle!important;white-space:nowrap!important;line-height:1.4!important;border-right:1px solid #e9ecef!important;font-size:11px!important}.payroll-table td:nth-child(8),.payroll-table td:nth-child(9),.payroll-table td:nth-child(10),.payroll-table td:nth-child(11){color:#28a745!important;font-weight:600!important}.payroll-table td:nth-child(12){color:#007bff!important;font-weight:700!important;background-color:#f0f8ff!important}.payroll-table td:nth-child(13),.payroll-table td:nth-child(14),.payroll-table td:nth-child(15){color:#dc3545!important;font-weight:600!important}.payroll-table td:nth-child(16){color:#6f42c1!important;font-weight:700!important;background-color:#f8f5ff!important;border-left:2px solid #6f42c1!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.payroll-table .table-warning{background-color:#fff3cd!important;border-top:2px solid #ffc107!important;font-weight:700!important}.payroll-table .table-warning td{padding:10px 6px!important;font-size:12px!important}@media (max-width: 768px){.payroll-table{font-size:9px!important;min-width:1200px}.payroll-table th,.payroll-table td{padding:4px 3px!important;font-size:9px!important}.payroll-table th{min-width:50px!important}}.payroll-table.compact{font-size:10px!important}.payroll-table.compact th,.payroll-table.compact td{padding:4px!important;line-height:1.2!important}.filter-area:has(#payroll-month-filter){background:linear-gradient(135deg,#f8f9fa,#e9ecef)!important;border-bottom:2px solid var(--primary-color)!important;margin-bottom:0!important}.filter-area:has(#payroll-month-filter) .form-select,.filter-area:has(#payroll-month-filter) .form-control{border:1px solid var(--primary-color)!important;font-size:11px!important}.filter-area:has(#payroll-month-filter) .btn{font-size:11px!important;padding:6px 12px!important}.payroll-table caption{background:linear-gradient(135deg,var(--primary-color) 0%,#1e5e23 100%)!important;color:#fff!important;font-size:14px!important;font-weight:700!important;padding:10px!important;margin:0!important;border-radius:8px 8px 0 0!important;text-shadow:1px 1px 2px rgba(0,0,0,.3)!important}.money-cell{text-align:right!important;font-weight:600!important;font-family:Courier New,monospace!important;color:#28a745!important;padding:6px 8px!important;background-color:#f8fff9!important}.money-cell:hover{background-color:#e8f5e8!important}.number-cell{text-align:right!important;font-weight:500!important;font-family:Courier New,monospace!important;color:#495057!important;padding:6px 8px!important;background-color:#fafafa!important}.number-cell:hover{background-color:#f0f0f0!important}.payroll-number-cell{text-align:right!important;font-weight:600!important;font-family:Be Vietnam Pro,Courier New,monospace!important;padding:6px 8px!important;white-space:nowrap!important;min-width:80px!important}.payroll-total-cell{text-align:right!important;font-weight:700!important;font-family:Be Vietnam Pro,Courier New,monospace!important;padding:8px!important;background-color:#fff3cd!important;border:1px solid #ffc107!important;font-size:12px!important}.custom-table td.text-end{font-family:Be Vietnam Pro,Courier New,monospace!important;letter-spacing:.5px!important;min-width:70px!important}.custom-table tbody tr:hover .money-cell{background-color:#d4edda!important;transform:scale(1.02)!important;box-shadow:0 2px 4px #28a74533!important}.custom-table tbody tr:hover .number-cell{background-color:#e2e6ea!important;transform:scale(1.02)!important}@media (max-width: 768px){.money-cell,.number-cell,.payroll-number-cell{font-size:10px!important;padding:4px 6px!important;min-width:60px!important}.payroll-total-cell{font-size:10px!important;padding:6px!important}}.money-cell,.number-cell{transition:all .2s ease!important}.money-cell.negative,.number-cell.negative{color:#dc3545!important;background-color:#fff5f5!important}.money-cell.negative:before,.number-cell.negative:before{content:"-";color:#dc3545;font-weight:700}.text-end.fw-bold{font-family:Be Vietnam Pro,Courier New,monospace!important;letter-spacing:.3px!important}.money-cell-inline{color:#28a745!important;font-weight:600!important;font-family:Be Vietnam Pro,Courier New,monospace!important;letter-spacing:.3px!important}.number-cell-inline{color:#495057!important;font-weight:500!important;font-family:Be Vietnam Pro,Courier New,monospace!important;letter-spacing:.3px!important}.money-display{color:#28a745!important;font-weight:600!important;font-family:Be Vietnam Pro,Courier New,monospace!important;letter-spacing:.5px!important;padding:2px 4px!important;background-color:#f8fff9!important;border-radius:3px!important}.number-display{color:#495057!important;font-weight:500!important;font-family:Be Vietnam Pro,Courier New,monospace!important;letter-spacing:.3px!important;padding:2px 4px!important;background-color:#f8f9fa!important;border-radius:3px!important}.custom-table td[class*=text-end]{text-align:right!important}.custom-table thead th:has(+td.text-end),.custom-table thead th:nth-child(n+5){text-align:right!important}@media (max-width: 768px){.money-cell-inline,.number-cell-inline,.money-display,.number-display{font-size:9px!important;padding:1px 2px!important;letter-spacing:.2px!important}.payroll-number-cell{min-width:50px!important;font-size:9px!important;padding:4px 6px!important}.payroll-total-cell{font-size:10px!important;padding:6px!important}}.money-cell-inline[data-value]:hover,.money-display[data-value]:hover{background-color:#d4edda!important;border:1px solid #28a745!important}
