@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";:root{--primary: #1A4D2E;--primary-light: #2d6b43;--primary-dark: #143d24;--accent: #E8F5E9;--accent-hover: #C8E6C9;--bg-light: #f8faf9;--bg-white: #ffffff;--bg-dark: #102219;--border-subtle: #F3F4F6;--border-light: #E5E7EB;--text-primary: #0d1b14;--text-secondary: #64748b;--text-muted: #94a3b8;--text-white: #ffffff;--success: #10B981;--success-bg: #D1FAE5;--warning: #F59E0B;--warning-bg: #FEF3C7;--error: #EF4444;--error-bg: #FEE2E2;--info: #0EA5E9;--info-bg: #E0F2FE;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--sidebar-width: 250px;--sidebar-collapsed: 80px;--header-height: 64px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Manrope,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg-light);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:42px;padding:0 1rem;font-size:.875rem;font-weight:600;border-radius:var(--radius-md);transition:all .2s ease}.btn-primary{background-color:var(--primary);color:var(--text-white)}.btn-primary:hover{background-color:var(--primary-light)}.btn-secondary{background-color:var(--bg-white);color:var(--text-primary);border:1px solid var(--border-light)}.btn-secondary:hover{background-color:var(--bg-light)}.btn-danger{background-color:var(--error);color:var(--text-white)}.btn-danger:hover{background-color:#dc2626}.card{background-color:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-full)}.badge-success{background-color:var(--success-bg);color:#065f46}.badge-warning{background-color:var(--warning-bg);color:#92400e}.badge-error{background-color:var(--error-bg);color:#991b1b}.badge-info{background-color:var(--info-bg);color:#0369a1}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:2rem;overflow-y:auto}.modal-content{background-color:var(--bg-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-height:calc(100vh - 4rem);overflow-y:auto;margin:auto}.toast-container{position:fixed;top:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.75rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;min-width:320px;max-width:420px;background-color:#fff;border-radius:.75rem;box-shadow:0 8px 24px #0000001f,0 2px 8px #00000014;border-left:4px solid;pointer-events:auto;animation:toastSlideIn .3s ease-out}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-icon{font-size:1.375rem!important;flex-shrink:0}.toast-message{flex:1;font-size:.875rem;font-weight:500;color:#1e293b;line-height:1.4}.toast-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:.375rem;color:#94a3b8;flex-shrink:0;transition:all .15s ease}.toast-close:hover{background-color:#f1f5f9;color:#475569}.toast-close .material-symbols-outlined{font-size:1.125rem}.toast-success{border-left-color:#059669}.toast-success .toast-icon{color:#059669}.toast-error{border-left-color:#dc2626}.toast-error .toast-icon{color:#dc2626}.toast-warning{border-left-color:#d97706}.toast-warning .toast-icon{color:#d97706}.toast-info{border-left-color:#0284c7}.toast-info .toast-icon{color:#0284c7}.sidebar{position:fixed;left:0;top:0;height:100vh;width:var(--sidebar-width);background-color:var(--bg-white);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;transition:width .3s ease;z-index:100;box-shadow:1px 0 10px #00000005}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar-header{display:flex;align-items:center;gap:.75rem;padding:1.25rem;height:80px}.sidebar-logo{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;background-color:var(--primary);border-radius:var(--radius-xl);box-shadow:0 4px 12px #1a4d2e40}.logo-icon{display:flex;align-items:center;justify-content:center;color:var(--text-white)}.logo-text{font-size:1.25rem;font-weight:800;color:var(--text-primary)}.sidebar-toggle{margin-left:auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-secondary);transition:all .2s ease}.sidebar-toggle:hover{background-color:var(--bg-light);color:var(--primary)}.sidebar.collapsed .sidebar-toggle{margin-left:0}.sidebar-nav{flex:1;padding:.5rem;overflow-y:auto;overflow-x:hidden}.nav-group{margin-bottom:.5rem}.nav-category{display:block;padding:.5rem .75rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius-lg);color:var(--text-secondary);transition:all .2s ease;position:relative}.nav-item:hover{background-color:var(--bg-light);color:var(--primary)}.nav-item.active{background-color:var(--primary);color:var(--text-white);box-shadow:0 4px 12px #1a4d2e40}.nav-icon{font-size:1.375rem;min-width:24px}.nav-label{font-size:.875rem;font-weight:500}.nav-badge{position:absolute;top:.625rem;right:.625rem;width:8px;height:8px;background-color:var(--error);border-radius:50%;animation:pulse 2s infinite}.sidebar.collapsed .nav-badge{top:.5rem;right:.5rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.sidebar-footer{padding:1rem;border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:.75rem}.user-info{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.user-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;background-color:var(--accent);color:var(--primary);border-radius:50%;font-weight:700;font-size:.875rem}.user-details{display:flex;flex-direction:column;min-width:0}.user-name{font-size:.875rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:var(--text-muted);text-transform:capitalize}.logout-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);color:var(--text-secondary);transition:all .2s ease}.logout-btn:hover{background-color:var(--error-bg);color:var(--error)}.sidebar.collapsed .user-details{display:none}.sidebar.collapsed .sidebar-footer{flex-direction:column;gap:.5rem}.sidebar.collapsed .user-info{justify-content:center}.layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:var(--sidebar-width);padding:1.5rem 2rem;background-color:var(--bg-light);min-height:100vh;transition:margin-left .3s ease}.layout.sidebar-collapsed .main-content{margin-left:var(--sidebar-collapsed)}@media(max-width:1024px){.main-content{padding:1rem 1.5rem}}@media(max-width:768px){.main-content{margin-left:0;padding:1rem}}.login-container{min-height:100vh;display:flex;background-color:var(--bg-white)}.login-left{display:none;width:40%;background-color:#052e16;background-image:url(https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80);background-size:cover;background-position:center;position:relative;overflow:hidden;padding:3rem;align-items:center;justify-content:center}.login-left-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#052e16cc,#052e16f2);z-index:1}.login-left-content{position:relative;z-index:10;max-width:400px;color:#fff}.login-left-icon{width:48px;height:48px;border-radius:var(--radius-xl);background-color:#ffffff1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;margin-bottom:2rem}.login-left-icon .material-symbols-outlined{font-size:1.75rem;color:#fff}.login-left-title{font-size:2.25rem;font-weight:700;line-height:1.2;margin-bottom:1.5rem}.login-left-desc{font-size:1rem;line-height:1.6;color:#e8f3eecc;margin-bottom:2rem}.login-social-proof{display:flex;align-items:center;gap:1rem;margin-top:3rem}.avatar-stack{display:flex}.avatar{width:40px;height:40px;border-radius:50%;background-color:#1a4d2e;border:2px solid #052e16;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:#fff;margin-right:-12px}.avatar-count{background-color:#fff;color:#052e16;font-size:.625rem;margin-right:0}.social-proof-text{display:flex;flex-direction:column}.social-proof-title{font-size:.875rem;font-weight:600;color:#fff}.social-proof-subtitle{font-size:.875rem;color:#e8f3eeb3}.login-left-blur-1{position:absolute;bottom:-96px;left:-96px;width:256px;height:256px;background-color:#ffffff0d;border-radius:50%;filter:blur(48px)}.login-left-blur-2{position:absolute;top:25%;right:-48px;width:128px;height:128px;background-color:#10b9811a;border-radius:50%;filter:blur(32px)}.login-right{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.login-form-wrapper{width:100%;max-width:400px}.login-header{margin-bottom:2rem}.login-logo{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.login-logo .material-symbols-outlined{font-size:1.75rem;color:#052e16}.login-logo .logo-text{font-size:1.25rem;font-weight:700;color:#052e16;letter-spacing:-.025em}.login-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.login-subtitle{font-size:.875rem;color:var(--text-secondary)}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-error{padding:.75rem 1rem;background-color:var(--error-bg);border:1px solid #fca5a5;border-radius:var(--radius-md);color:#991b1b;font-size:.875rem}.input-wrapper{position:relative}.input-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1.25rem;color:var(--text-muted)}.input-field.with-icon{padding-left:2.75rem;padding-right:2.75rem}.password-toggle{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;color:var(--text-muted);padding:.25rem}.password-toggle:hover{color:var(--text-secondary)}.password-toggle .material-symbols-outlined{font-size:1.25rem}.login-options{display:flex;align-items:center;justify-content:space-between}.checkbox-wrapper{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);cursor:pointer}.checkbox-wrapper input[type=checkbox]{width:1rem;height:1rem;accent-color:#052e16;cursor:pointer}.forgot-link{font-size:.875rem;font-weight:500;color:#052e16}.forgot-link:hover{text-decoration:underline}.login-btn{width:100%;padding:.75rem;font-size:.9375rem;background-color:#052e16;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 4px 12px #052e1640}.login-btn:hover{background-color:#0a4a26}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-btn .material-symbols-outlined{font-size:1.25rem;transition:transform .2s ease}.login-btn:hover .material-symbols-outlined{transform:translate(4px)}.login-divider{display:flex;align-items:center;margin:1.5rem 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background-color:var(--border-light)}.login-divider span{padding:0 1rem;font-size:.875rem;color:var(--text-muted)}.btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem;background-color:var(--bg-white);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--text-primary);transition:all .2s ease}.btn-google:hover{background-color:var(--bg-light)}.google-icon{width:20px;height:20px}.login-footer{margin-top:2rem;text-align:center;font-size:.75rem;color:var(--text-muted);line-height:1.6}.login-footer a{color:var(--text-muted)}.login-footer a:hover{color:#052e16}@media(min-width:768px){.login-left{display:flex}.login-right{width:60%;flex:none}.login-header{text-align:left}}@media(max-width:767px){.login-right{padding:1.5rem}.login-header{text-align:center}.login-logo{justify-content:center}}.header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.header-left{display:flex;flex-direction:column;gap:.25rem}.header-title{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.header-subtitle{font-size:.875rem;color:var(--text-secondary)}.header-right{display:flex;align-items:center;gap:.75rem}.header-actions{display:flex;align-items:center;gap:.5rem}.header-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--bg-white);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--text-primary);transition:all .2s ease}.header-btn:hover{background-color:var(--bg-light);border-color:var(--border-subtle)}.header-btn .material-symbols-outlined{font-size:1.25rem;color:var(--text-secondary)}.notification-btn{position:relative;padding:.5rem}.notification-btn span:first-child{color:var(--text-secondary)}.notification-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;background-color:var(--error);color:var(--text-white);font-size:.625rem;font-weight:700;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}@media(max-width:640px){.date-btn span:last-child{display:none}}.stat-card{background-color:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-sm);min-width:0;overflow:hidden}.stat-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:1rem}.stat-title{font-size:.8125rem;font-weight:500;color:var(--text-secondary);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;border-radius:var(--radius-full)}.stat-icon .material-symbols-outlined{font-size:1.125rem}.stat-icon-primary{background-color:var(--accent);color:var(--primary)}.stat-icon-success{background-color:#d1fae5;color:#059669}.stat-icon-warning{background-color:#fef3c7;color:#d97706}.stat-icon-error{background-color:#fee2e2;color:#dc2626}.stat-icon-info{background-color:#e0f2fe;color:#0284c7}.stat-icon-purple{background-color:#f3e8ff;color:#9333ea}.stat-body{display:flex;align-items:baseline;gap:.5rem}.stat-value{font-size:1.875rem;font-weight:700;color:var(--text-primary);line-height:1}.stat-trend{display:flex;align-items:center;gap:.125rem;font-size:.8125rem;font-weight:500;white-space:nowrap}.stat-trend .material-symbols-outlined{font-size:1rem}.stat-trend.up{color:var(--primary)}.stat-trend.down{color:var(--error)}.attendance-chart{padding:1.5rem}.chart-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.chart-title{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.chart-subtitle{font-size:.875rem;color:var(--text-secondary)}.chart-tabs{display:flex;gap:.25rem;background-color:var(--bg-light);padding:.25rem;border-radius:var(--radius-md)}.chart-tab{padding:.375rem .75rem;font-size:.75rem;font-weight:600;color:var(--text-secondary);border-radius:var(--radius-sm);transition:all .2s ease}.chart-tab:hover{color:var(--text-primary)}.chart-tab.active{background-color:var(--bg-white);color:var(--text-primary);box-shadow:var(--shadow-sm)}.chart-body{position:relative;height:200px;display:flex}.chart-grid{display:flex;flex-direction:column;justify-content:space-between;padding-right:.75rem}.chart-label{font-size:.75rem;color:var(--text-muted)}.chart-bars{flex:1;display:flex;align-items:flex-end;justify-content:space-around;gap:.5rem;padding-top:1rem;border-left:1px dashed var(--border-light)}.bar-container{flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center;max-width:60px}.bar{width:100%;background-color:#1a4d2e33;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:all .3s ease;position:relative;cursor:pointer}.bar:hover{background-color:#1a4d2e59}.bar-tooltip{position:absolute;top:-2rem;left:50%;transform:translate(-50%);background-color:var(--text-primary);color:var(--text-white);padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;opacity:0;visibility:hidden;transition:all .2s ease;white-space:nowrap}.bar:hover .bar-tooltip{opacity:1;visibility:visible}.chart-footer{display:flex;justify-content:space-around;padding-top:.75rem;padding-left:2.5rem}.chart-day{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.dashboard{max-width:1200px;margin:0 auto}.activity-table{margin-top:1.5rem;overflow:hidden}.table-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border-subtle)}.table-title{font-size:1rem;font-weight:700;color:var(--text-primary)}.view-all-link{font-size:.875rem;font-weight:500;color:var(--primary)}.data-table th{padding:.75rem 1.5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;color:var(--text-secondary);background-color:var(--bg-light);border-bottom:1px solid var(--border-subtle)}.data-table td{padding:1rem 1.5rem;font-size:.875rem;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.employee-avatar{width:32px;height:32px;border-radius:50%;background-color:var(--accent);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;overflow:hidden}.employee-avatar img{width:100%;height:100%;object-fit:cover}@media(max-width:640px){.stats-grid{grid-template-columns:1fr}.table-header{padding:1rem}.data-table th,.data-table td{padding:.75rem 1rem}}.data-table-container{overflow:hidden}.table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;text-align:left}.data-table th{padding:.875rem 1.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;color:var(--text-secondary);background-color:var(--bg-light);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.data-table td{padding:1rem 1.25rem;font-size:.875rem;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.data-table tbody tr{transition:background-color .15s ease}.data-table tbody tr:hover{background-color:var(--bg-light)}.data-table tbody tr.selected{background-color:#1a4d2e0d}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr:last-child td{border-bottom:none}.checkbox-col{width:48px!important;padding-left:1rem!important;padding-right:.5rem!important}.checkbox-col input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--primary);cursor:pointer}.loading-cell,.empty-cell{text-align:center;padding:3rem 1rem!important;color:var(--text-muted)}.loading-cell{display:flex;flex-direction:column;align-items:center;gap:.75rem}.loading-spinner{width:24px;height:24px;border:2px solid var(--border-light);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.table-pagination{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;border-top:1px solid var(--border-subtle);background-color:var(--bg-white)}.pagination-info{font-size:.875rem;color:var(--text-secondary)}.pagination-controls{display:flex;align-items:center;gap:.25rem}.pagination-btn{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 .5rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);background-color:var(--bg-white);border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all .15s ease}.pagination-btn:hover:not(:disabled){background-color:var(--bg-light);border-color:var(--text-muted)}.pagination-btn.active{background-color:var(--primary);border-color:var(--primary);color:var(--text-white)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-btn .material-symbols-outlined{font-size:1.125rem}.pagination-ellipsis{padding:0 .25rem;color:var(--text-muted)}.employee-avatar{width:36px;height:36px;border-radius:50%;background-color:var(--accent);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;flex-shrink:0}.employee-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.employee-info{display:flex;flex-direction:column}.employee-name{font-weight:500;color:var(--text-primary)}.status-aktif{background-color:var(--success-bg);color:#065f46}.status-aktif:before{background-color:#10b981}.status-nonaktif{background-color:#f3f4f6;color:#6b7280}.status-nonaktif:before{background-color:#9ca3af}.status-cuti{background-color:var(--warning-bg);color:#92400e}.status-cuti:before{background-color:#f59e0b}.action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-muted);transition:all .15s ease}.action-btn:hover{background-color:var(--bg-light);color:var(--text-primary)}@media(max-width:768px){.table-pagination{flex-direction:column;gap:1rem}}.employee-list-page{max-width:1400px;margin:0 auto}.search-input{position:relative;flex:1;min-width:200px}.search-input input{width:100%;height:42px;padding:0 .875rem 0 2.75rem;font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-white);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease}.filter-select{height:42px;padding:0 2rem 0 .875rem;font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-white);color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .625rem center;min-width:160px}@media(max-width:768px){.page-actions{flex-direction:column;align-items:stretch}.filters{order:2}.actions{order:1;justify-content:flex-end}.search-input{max-width:none;width:100%}}.action-dropdown{position:relative}.action-toggle{background:none;border:none;cursor:pointer;padding:.25rem;border-radius:var(--radius-md);color:var(--text-secondary)}.action-toggle:hover{background-color:var(--bg-light)}.action-menu{display:none;position:absolute;right:0;top:100%;min-width:160px;background:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50;padding:.25rem;flex-direction:column}.action-menu.show{display:flex}.action-menu button{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;font-size:.8125rem;border:none;background:none;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md);text-align:left}.action-menu button:hover{background-color:var(--bg-light)}.action-menu button.danger{color:var(--error)}.action-menu button .material-symbols-outlined{font-size:1.125rem}.face-cell{display:inline-flex;align-items:center;gap:.5rem}.face-thumb{width:34px;height:34px;border-radius:8px;object-fit:cover;border:1px solid var(--border-subtle);background-color:var(--bg-light)}.face-meta{display:flex;flex-direction:column;line-height:1.2}.face-label{font-size:.75rem;font-weight:600}.face-label.ready{color:var(--success)}.face-label.missing{color:var(--text-muted)}.face-subtitle{font-size:.6875rem;color:var(--text-muted)}.employee-form-page{max-width:800px;margin:0 auto}.breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.875rem}.breadcrumb a{color:var(--primary)}.breadcrumb a:hover{text-decoration:underline}.breadcrumb .material-symbols-outlined{font-size:1rem;color:var(--text-muted)}.breadcrumb>span:last-child{color:var(--text-secondary)}.form-header{margin-bottom:2rem}.form-header h1{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.form-header p{font-size:.875rem;color:var(--text-secondary)}.employee-form{display:flex;flex-direction:column;gap:1.5rem}.form-section{padding:1.5rem}.section-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-subtle)}.section-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background-color:var(--primary);color:var(--text-white);font-size:.875rem;font-weight:600;border-radius:50%}.section-header h2{font-size:1rem;font-weight:600;color:var(--text-primary)}.section-content{display:flex;gap:2rem}.photo-upload{display:flex;flex-direction:column;align-items:center;gap:.75rem;flex-shrink:0}.photo-preview{width:100px;height:100px;border-radius:50%;background-color:var(--bg-light);border:2px dashed var(--border-light);display:flex;align-items:center;justify-content:center;overflow:hidden}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-preview .material-symbols-outlined{font-size:2rem;color:var(--text-muted)}.upload-btn{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;font-size:.75rem;font-weight:500;color:var(--text-secondary);background-color:var(--bg-white);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.upload-btn:hover{background-color:var(--bg-light);border-color:var(--primary);color:var(--primary)}.upload-btn .material-symbols-outlined{font-size:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;flex:1}.input-group label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.required{color:var(--error)}.input-field{width:100%;padding:.625rem .875rem;font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-white);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease}.input-field:disabled{background-color:var(--bg-light);color:var(--text-muted);cursor:not-allowed}.input-field.error{border-color:var(--error)}.input-field.error:focus{box-shadow:0 0 0 3px #ef44441a}.error-text{font-size:.75rem;color:var(--error)}select.input-field{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem;cursor:pointer}.currency-input{position:relative;display:flex;align-items:center}.currency-prefix{position:absolute;left:.875rem;font-size:.875rem;color:var(--text-muted)}.currency-input .input-field{padding-left:2.5rem}.password-input{display:flex;gap:.5rem}.password-input .input-field{flex:1}.generate-btn{display:flex;align-items:center;gap:.25rem;padding:.625rem .75rem;font-size:.75rem;font-weight:500;color:var(--primary);background-color:var(--accent);border-radius:var(--radius-md);white-space:nowrap;transition:all .2s ease}.generate-btn:hover{background-color:var(--accent-hover)}.generate-btn .material-symbols-outlined{font-size:1rem}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem}@media(max-width:768px){.section-content{flex-direction:column}.photo-upload{flex-direction:row;justify-content:flex-start}.form-grid{grid-template-columns:1fr}}.employee-detail-page{max-width:1200px;margin:0 auto}.loading-page,.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;color:var(--text-muted)}.not-found .material-symbols-outlined{font-size:4rem}.not-found h2{color:var(--text-primary)}.detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.detail-header h1{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.header-actions{display:flex;gap:.75rem}.btn-danger-outline{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.875rem;font-weight:600;color:var(--error);background-color:transparent;border:1px solid var(--error);border-radius:var(--radius-md);transition:all .2s ease}.detail-content{display:grid;grid-template-columns:280px 1fr;gap:1.5rem}.profile-card{padding:1.5rem;text-align:center;position:sticky;top:1.5rem;height:fit-content}.profile-photo{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-light));display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:2.5rem;font-weight:700;color:#fff;overflow:hidden}.profile-photo img{width:100%;height:100%;object-fit:cover}.profile-name{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.profile-id{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.employee-badge{padding:.25rem .5rem;background-color:var(--bg-light);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;color:var(--text-secondary)}.profile-info{text-align:left;padding:1rem 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);margin-bottom:1rem}.profile-info .info-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 0}.profile-info .info-item .material-symbols-outlined{font-size:1.25rem;color:var(--primary);background-color:var(--accent);padding:.5rem;border-radius:var(--radius-md)}.profile-info .info-item .label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em}.profile-info .info-item .value{font-size:.875rem;font-weight:500;color:var(--text-primary)}.quick-contact{text-align:left}.quick-contact h4{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;color:var(--text-muted);margin-bottom:.75rem}.contact-item{display:flex;align-items:center;gap:.5rem;padding:.625rem 0;font-size:.875rem;color:var(--text-secondary);border:none;background:none;width:100%;text-align:left;cursor:pointer;transition:color .15s ease}.contact-item:hover{color:var(--primary)}.contact-item .material-symbols-outlined{font-size:1.125rem}.face-preview-panel{margin-top:1rem;text-align:left;border-top:1px solid var(--border-subtle);padding-top:1rem}.face-preview-panel h4{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;color:var(--text-muted);margin-bottom:.75rem}.face-preview-box{width:100%;height:120px;border:1px dashed var(--border-light);border-radius:var(--radius-md);overflow:hidden;background-color:var(--bg-light)}.face-preview-box img{width:100%;height:100%;object-fit:cover;display:block}.face-preview-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;color:var(--text-muted);font-size:.75rem}.face-preview-empty .material-symbols-outlined{font-size:1.5rem}.face-mini-status{margin-top:.625rem;display:inline-block;font-size:.75rem;font-weight:600}.face-mini-status.ready{color:var(--success)}.face-mini-status.missing{color:var(--warning)}.main-content{display:flex;flex-direction:column;gap:1.5rem}.tabs-container{overflow:hidden}.tabs{display:flex;border-bottom:1px solid var(--border-subtle);background-color:var(--bg-white)}.tab{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);border:none;background:none;cursor:pointer;position:relative;transition:color .15s ease}.tab:hover,.tab.active{color:var(--primary)}.tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background-color:var(--primary)}.tab .material-symbols-outlined{font-size:1.125rem}.tab-content{padding:1.5rem}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.info-section{padding:1rem;background-color:var(--bg-light);border-radius:var(--radius-lg)}.section-title{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.section-title .material-symbols-outlined{font-size:1.125rem;color:var(--primary)}.section-title h3{font-size:.875rem;font-weight:600;color:var(--text-primary);flex:1}.edit-link{font-size:.75rem;font-weight:500;color:var(--primary);padding:.25rem .5rem;border:none;background:none;cursor:pointer}.edit-link:hover{text-decoration:underline}.info-list,.salary-list{display:flex;flex-direction:column;gap:.75rem}.info-row,.salary-row{display:flex;justify-content:space-between;gap:1rem}.info-row .label,.salary-row .label{font-size:.8125rem;color:var(--text-muted);flex-shrink:0}.info-row .value,.salary-row .value{font-size:.875rem;color:var(--text-primary);text-align:right}.salary-total{margin-top:.5rem;padding-top:.75rem;border-top:1px dashed var(--border-light);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}.salary-total .label{font-size:.8125rem;color:var(--text-muted)}.salary-total .value{font-size:1.25rem;font-weight:700;color:var(--primary)}.salary-total .note{width:100%;font-size:.6875rem;font-style:italic;color:var(--text-muted);text-align:right}.face-verification-wrap{display:flex;flex-direction:column;gap:.875rem}.face-photo-box{width:100%;min-height:180px;border:1px dashed var(--border-light);border-radius:var(--radius-md);overflow:hidden;background-color:var(--bg-white)}.face-photo-box img{width:100%;height:180px;object-fit:cover;display:block}.face-photo-placeholder{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--text-muted);font-size:.8125rem}.face-photo-placeholder .material-symbols-outlined{font-size:2rem}.face-meta-list .info-row{align-items:center}.face-status{font-weight:600}.face-status.ready{color:var(--success)}.face-status.missing{color:var(--warning)}.coming-soon{text-align:center;padding:3rem;color:var(--text-muted)}.activity-card{padding:1.25rem}.activity-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.activity-header h3{font-size:1rem;font-weight:600;color:var(--text-primary)}.view-all-link{font-size:.875rem;font-weight:500;color:var(--primary);border:none;background:none;cursor:pointer}.view-all-link:hover{text-decoration:underline}.activity-table{width:100%;border-collapse:collapse}.activity-table th{padding:.75rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;color:var(--text-muted);background-color:var(--bg-light);text-align:left}.activity-table td{padding:.75rem 1rem;font-size:.875rem;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.activity-type{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-weight:500}.activity-type .material-symbols-outlined{font-size:1.125rem;color:var(--primary)}.activity-status{padding:.25rem .5rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-sm)}.status-success{background-color:var(--success-bg);color:#065f46}.status-error{background-color:var(--error-bg);color:#991b1b}.status-warning{background-color:var(--warning-bg);color:#92400e}.delete-modal{text-align:center;max-width:400px;padding:2rem}.modal-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.modal-icon.warning{background-color:var(--warning-bg);color:#d97706}.modal-icon .material-symbols-outlined{font-size:2rem}.delete-modal h2{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.delete-modal p{font-size:.875rem;color:var(--text-secondary);margin-bottom:1.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:center}.modal-actions .btn{flex:1}@media(max-width:1024px){.detail-content{grid-template-columns:1fr}.profile-card{position:static}.info-grid{grid-template-columns:1fr}}@media(max-width:640px){.detail-header{flex-direction:column;align-items:flex-start;gap:1rem}.tabs{overflow-x:auto}.tab{padding:.75rem 1rem;font-size:.8125rem;white-space:nowrap}}.detail-table{width:100%;border-collapse:collapse;font-size:.875rem}.detail-table thead{background-color:var(--bg-light)}.detail-table th{padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.8125rem;color:var(--text-secondary);border-bottom:2px solid var(--border-light);white-space:nowrap}.detail-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle}.detail-table tbody tr:hover{background-color:var(--bg-light)}.detail-table .status-badge{padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-terlambat{background-color:var(--warning-bg);color:var(--warning)}.status-pending{background-color:#fff7ed;color:#ea580c}.activity-section{margin-top:1rem;overflow:hidden}.activity-section .section-title{padding:1rem 1.25rem;border-bottom:1px solid var(--border-subtle)}.activity-section .detail-table{margin:0}.activity-cell{display:flex;align-items:center;gap:.5rem;font-weight:500}.attendance-photo-btn{display:inline-flex;align-items:center;gap:.5rem;border:none;background:transparent;padding:0;color:var(--primary);font-weight:600;font-size:.75rem;cursor:pointer}.attendance-photo-thumb{width:40px;height:40px;object-fit:cover;border-radius:8px;border:1px solid var(--border-light)}.attendance-photo-modal{width:min(92vw,760px);max-height:92vh;overflow:hidden;padding:0}.attendance-photo-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-subtle)}.attendance-photo-modal-header h3{margin:0;font-size:1rem;color:var(--text-primary)}.attendance-photo-close{border:none;background:transparent;width:32px;height:32px;border-radius:8px;cursor:pointer;color:var(--text-secondary)}.attendance-photo-close:hover{background-color:var(--bg-light)}.attendance-photo-large{width:100%;height:min(78vh,620px);object-fit:contain;display:block;background-color:#111827}.attendance-modal{max-width:750px;width:100%;max-height:calc(100vh - 4rem);overflow:hidden;display:flex;flex-direction:column}.attendance-modal .modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.attendance-modal .modal-header h2{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.attendance-modal .modal-header p{font-size:.8125rem;color:var(--text-muted)}.modal-body{display:grid;grid-template-columns:240px 1fr;gap:1.5rem;padding:1.5rem;overflow-y:auto;min-height:0;align-items:flex-start}.verification-photo{display:flex;flex-direction:column;gap:.75rem}.photo-card{background:linear-gradient(145deg,#052e16,#0a4a26);border-radius:var(--radius-lg);padding:1rem;position:relative}.face-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;margin-bottom:.75rem}.face-badge.verified{background-color:#10b98133;border:1px solid rgba(16,185,129,.3);color:#4ade80}.face-badge.unverified{background-color:#fbbf2433;border:1px solid rgba(251,191,36,.35);color:#fde68a}.face-badge .material-symbols-outlined{font-size:.875rem}.photo-placeholder{width:100%;height:clamp(260px,34vh,340px);background-color:#ffffff1a;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin-bottom:.75rem}.photo-placeholder .material-symbols-outlined{font-size:4rem;color:#ffffff4d}.photo-preview{width:100%;height:clamp(260px,34vh,340px);object-fit:cover;object-position:center top;border-radius:var(--radius-lg);display:block;margin-bottom:.75rem}.capture-time{display:flex;flex-direction:column;align-items:center;gap:.25rem;color:#ffffffb3;font-size:.75rem}.capture-time .material-symbols-outlined{font-size:1rem}.capture-time strong{font-size:1rem;color:#fff}.view-original-btn{width:100%;justify-content:center;font-size:.8125rem;text-decoration:none}.verification-details{display:flex;flex-direction:column;gap:1rem}.time-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.time-card{padding:1rem;background-color:var(--bg-light);border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.time-label{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--text-muted);margin-bottom:.25rem}.time-label .material-symbols-outlined{font-size:1rem}.time-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.375rem}.time-status{display:inline-block;padding:.25rem .5rem;font-size:.6875rem;font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase}.time-status.success{background-color:var(--success-bg);color:#065f46}.time-status.warning{background-color:var(--warning-bg);color:#92400e}.time-status.neutral{background-color:var(--bg-white);border:1px solid var(--border-light);color:var(--text-muted)}.info-row{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background-color:var(--bg-light);border-radius:var(--radius-md)}.info-row>.material-symbols-outlined{font-size:1.25rem;color:var(--primary);padding:.5rem;background-color:var(--accent);border-radius:var(--radius-md);flex-shrink:0}.info-row>div{display:flex;flex-direction:column;gap:.125rem;flex:1}.info-row .label{font-size:.75rem;color:var(--text-muted)}.info-row .value{font-size:.875rem;color:var(--text-primary)}.info-row strong{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.info-row .accuracy{font-size:.6875rem;color:var(--text-muted)}.duration-row{flex-direction:row;align-items:center}.map-preview{position:relative;overflow:hidden;border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.map-placeholder{height:120px;background:linear-gradient(135deg,#e8f3ee,#d1e7dd);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;color:var(--text-muted);font-size:.75rem}.map-placeholder .material-symbols-outlined{font-size:2rem;color:var(--primary);opacity:.5}.map-embed{width:100%;height:130px;border:none;display:block;background:var(--bg-light)}.map-link{position:absolute;bottom:.75rem;right:.75rem;display:flex;align-items:center;gap:.25rem;padding:.375rem .75rem;background-color:var(--bg-white);border-radius:var(--radius-md);font-size:.75rem;font-weight:500;color:var(--primary);box-shadow:var(--shadow-sm)}.map-link .material-symbols-outlined{font-size:.875rem}.map-link.disabled{pointer-events:none;color:var(--text-muted)}.modal-footer{display:flex;align-items:center;justify-content:flex-start;gap:1rem;flex-wrap:wrap;padding:1rem 1.5rem;border-top:1px solid var(--border-subtle);background-color:var(--bg-light);flex-shrink:0}.verified-text{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-muted)}.verified-text .material-symbols-outlined{font-size:1.125rem;color:var(--success)}.confidence-text .material-symbols-outlined{color:var(--primary)}@media(max-width:640px){.attendance-modal{max-height:calc(100vh - 2rem)}.modal-body{grid-template-columns:1fr;padding:1rem}.time-cards{grid-template-columns:1fr}.attendance-modal .modal-header,.modal-footer{padding:1rem}}.attendance-list-page{max-width:1400px;margin:0 auto}.search-input{position:relative;flex:1;max-width:280px;min-width:200px}.search-input input{width:100%;height:42px;padding:0 .875rem 0 2.75rem;font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-white);color:var(--text-primary)}.filter-select{height:42px;padding:0 2rem 0 .875rem;font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-white);color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .625rem center;min-width:160px}.actions{display:flex;align-items:center;gap:.75rem}.date-range-picker{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;font-size:.875rem;background-color:var(--bg-white);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:border-color .2s ease}.date-range-picker:hover{border-color:var(--primary)}.date-range-picker .material-symbols-outlined{font-size:1.125rem;color:var(--text-muted)}.time-cell{display:flex;align-items:center;gap:.5rem}.work-badge{padding:.125rem .375rem;font-size:.625rem;font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase}.work-badge.wfo{background-color:var(--accent);color:var(--primary)}.work-badge.wfh{background-color:#dbeafe;color:#1d4ed8}.status-hadir{background-color:var(--success-bg);color:#065f46}.status-hadir:before{background-color:#10b981}.status-terlambat{background-color:var(--warning-bg);color:#92400e}.status-terlambat:before{background-color:#f59e0b}.status-tidak-hadir{background-color:var(--error-bg);color:#991b1b}.status-tidak-hadir:before{background-color:#ef4444}.status-cuti{background-color:#dbeafe;color:#1d4ed8}.status-cuti:before{background-color:#3b82f6}.view-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-muted);transition:all .15s ease}.view-btn:hover{background-color:var(--bg-light);color:var(--primary)}@media(max-width:768px){.page-actions,.actions{flex-direction:column;align-items:stretch}.date-range-picker{justify-content:center}}.leave-modal{max-width:500px;width:100%}.leave-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-subtle)}.leave-modal .modal-header h2{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-muted);transition:all .15s ease}.close-btn:hover{background-color:var(--bg-light);color:var(--text-primary)}.leave-modal .modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.employee-section{display:flex;align-items:center;gap:1rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border-subtle)}.employee-avatar.large{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-light));display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#fff;flex-shrink:0}.employee-avatar.large img{width:100%;height:100%;object-fit:cover;border-radius:50%}.employee-details{display:flex;flex-direction:column;gap:.25rem}.employee-details h3{font-size:1rem;font-weight:600;color:var(--text-primary)}.employee-dept{font-size:.8125rem;color:var(--text-secondary)}.employee-badge{display:inline-block;padding:.25rem .5rem;background-color:var(--bg-light);border-radius:var(--radius-sm);font-size:.6875rem;font-weight:500;color:var(--text-muted);width:fit-content}.leave-details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.detail-item{display:flex;flex-direction:column;gap:.375rem}.detail-item.full{grid-column:span 2}.detail-item .label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em}.detail-item .value{font-size:.875rem;color:var(--text-primary)}.detail-item .value.bold{font-weight:600}.type-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-full);width:fit-content}.reason-section{display:flex;flex-direction:column;gap:.5rem}.reason-section .label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em}.reason-text{font-size:.875rem;color:var(--text-primary);line-height:1.5;padding:.75rem;background-color:var(--bg-light);border-radius:var(--radius-md)}.attachment-section{display:flex;flex-direction:column;gap:.5rem}.attachment-section .label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em}.attachment-card{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;background-color:var(--bg-light);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:.8125rem;color:var(--text-primary)}.attachment-card .material-symbols-outlined{font-size:1.25rem;color:var(--primary)}.download-btn{margin-left:auto;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);color:var(--text-muted);transition:all .15s ease}.download-btn:hover{background-color:var(--bg-white);color:var(--primary)}.download-btn .material-symbols-outlined{font-size:1.125rem}.approval-section{display:flex;flex-direction:column;gap:.5rem}.approval-section .label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em}.approval-section textarea{padding:.75rem;font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);resize:vertical;min-height:80px;font-family:inherit}.approval-section textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1a4d2e1a}.decision-section{display:flex;flex-direction:column;gap:.75rem}.decision-badge{display:flex;align-items:center;gap:.75rem;padding:.875rem;border-radius:var(--radius-md)}.decision-badge.approved{background-color:var(--success-bg)}.decision-badge.rejected{background-color:var(--error-bg)}.decision-badge .material-symbols-outlined{font-size:1.5rem}.decision-badge.approved .material-symbols-outlined{color:#059669}.decision-badge.rejected .material-symbols-outlined{color:#dc2626}.decision-status{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary)}.decision-by{font-size:.75rem;color:var(--text-muted)}.decision-notes{font-size:.8125rem;color:var(--text-secondary);padding:.75rem;background-color:var(--bg-light);border-radius:var(--radius-md)}.leave-modal .modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-subtle)}.btn-danger-outline{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.875rem;font-weight:600;color:var(--error);background-color:transparent;border:1px solid var(--error);border-radius:var(--radius-md);transition:all .2s ease}.btn-danger-outline:hover{background-color:var(--error);color:#fff}@media(max-width:480px){.leave-details-grid{grid-template-columns:1fr}.detail-item.full{grid-column:span 1}}.leave-list-page{max-width:1400px;margin:0 auto}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.leave-list-page .stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background-color:var(--bg-white);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.leave-list-page .stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.leave-list-page .stat-icon .material-symbols-outlined{font-size:1.5rem}.leave-list-page .stat-card.pending .stat-icon{background-color:var(--warning-bg);color:#d97706}.leave-list-page .stat-card.approved .stat-icon{background-color:var(--success-bg);color:#059669}.leave-list-page .stat-card.rejected .stat-icon{background-color:var(--error-bg);color:#dc2626}.leave-list-page .stat-card.total .stat-icon{background-color:#dbeafe;color:#2563eb}.leave-list-page .stat-content{display:flex;flex-direction:column;gap:.125rem}.leave-list-page .stat-label{font-size:.8125rem;color:var(--text-muted)}.leave-list-page .stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);line-height:1}.leave-list-page .stat-value small{font-size:.875rem;font-weight:500}.leave-list-page .stat-change{font-size:.75rem;color:var(--text-muted)}.leave-list-page .stat-change.up{color:#059669}.page-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.filters{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;flex:1}.search-input{position:relative;flex:1;max-width:360px;min-width:200px}.search-input .material-symbols-outlined{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1.25rem;color:var(--text-muted)}.search-input input{width:100%;height:42px;padding:0 .875rem 0 2.75rem;font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-white)}.search-input input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1a4d2e1a}.filter-select{height:42px;padding:0 2rem 0 .875rem;font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-white);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .625rem center;min-width:150px}.reset-filter-btn{padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:var(--primary);background:none;border:none;cursor:pointer}.reset-filter-btn:hover{text-decoration:underline}.type-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-full)}.type-tahunan{background-color:var(--accent);color:var(--primary)}.type-sakit{background-color:var(--error-bg);color:#dc2626}.type-izin{background-color:var(--info-bg);color:#0369a1}.type-khusus{background-color:#ede9fe;color:#5b21b6}.type-melahirkan{background-color:#fce7f3;color:#be185d}.type-tanpa-gaji{background-color:#f3f4f6;color:#4b5563}.status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-full)}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%}.status-pending{background-color:var(--warning-bg);color:#92400e}.status-pending:before{background-color:#f59e0b}.status-approved{background-color:var(--success-bg);color:#065f46}.status-approved:before{background-color:#10b981}.status-rejected{background-color:var(--error-bg);color:#991b1b}.status-rejected:before{background-color:#ef4444}.date-range{display:flex;flex-direction:column;gap:.125rem;font-size:.8125rem}.date-separator{font-size:.6875rem;color:var(--text-muted)}.detail-link{font-size:.8125rem;font-weight:500;color:var(--primary);background:none;border:none;cursor:pointer}.detail-link:hover{text-decoration:underline}@media(max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.stats-grid{grid-template-columns:1fr}.page-actions{flex-direction:column;align-items:stretch}}.overtime-modal{max-width:480px;width:100%;padding:0}.overtime-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-subtle)}.overtime-modal .modal-header h2{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.overtime-modal .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-muted);transition:all .15s ease}.overtime-modal .close-btn:hover{background-color:var(--bg-light);color:var(--text-primary)}.modal-body-scroll{padding:1.25rem 1.5rem;overflow-y:auto;max-height:calc(100vh - 200px);display:flex;flex-direction:column;gap:1.25rem}.ot-employee-info{display:flex;align-items:center;gap:.75rem}.ot-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;flex-shrink:0}.ot-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.ot-employee-detail{display:flex;flex-direction:column;gap:.125rem}.ot-name{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.ot-dept{font-size:.8125rem;color:var(--text-muted)}.ot-time-section{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background-color:var(--bg-light);border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.ot-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.ot-time-item,.ot-time-row{display:flex;flex-direction:column;gap:.25rem}.ot-time-label{font-size:.6875rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.ot-time-value{font-size:.875rem;font-weight:600;color:var(--text-primary)}.ot-calculation{border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden}.ot-calc-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background-color:var(--bg-light);border-bottom:1px solid var(--border-subtle)}.ot-calc-title{font-size:.75rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.03em}.ot-calc-rate{font-size:.75rem;color:var(--text-muted)}.ot-calc-rows{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.625rem}.ot-calc-row{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;color:var(--text-secondary)}.ot-calc-total{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-top:1px solid var(--border-subtle);font-size:.875rem;font-weight:600;color:var(--text-primary)}.ot-total-value{font-size:1.25rem;font-weight:700;color:var(--primary)}.ot-section-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem}.ot-reason-text{font-size:.875rem;color:var(--text-secondary);font-style:italic;padding:.75rem 1rem;background-color:var(--bg-light);border-radius:var(--radius-md);border-left:3px solid var(--border-light);line-height:1.5}.ot-notes-input{width:100%;padding:.75rem;font-size:.875rem;font-family:inherit;border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-white);color:var(--text-primary);resize:vertical;transition:border-color .2s ease}.ot-notes-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1a4d2e1a}.ot-notes-input::placeholder{color:var(--text-muted)}.ot-status-display{display:flex;justify-content:center;padding:.5rem 0}.status-badge-lg{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;border-radius:var(--radius-md)}.status-badge-lg.status-approved{background-color:var(--success-bg);color:#059669}.status-badge-lg.status-rejected{background-color:var(--error-bg);color:#dc2626}.status-badge-lg .material-symbols-outlined{font-size:1.125rem}.modal-footer-actions{display:flex;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-subtle);justify-content:center}.btn-reject{padding:.625rem 1.5rem;font-size:.875rem;font-weight:600;color:var(--error);border:1px solid var(--error);border-radius:var(--radius-md);background:transparent;transition:all .15s ease}.btn-reject:hover{background-color:var(--error-bg)}.btn-approve{padding:.625rem 1.5rem;font-size:.875rem;font-weight:600;color:#fff;background-color:var(--primary);border-radius:var(--radius-md);transition:all .15s ease}.btn-approve:hover{background-color:var(--primary-light)}@media(max-width:480px){.overtime-modal{max-width:100%;margin:1rem}.ot-time-grid{grid-template-columns:1fr}}.overtime-list-page{padding:0}.stats-grid.stats-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.overtime-list-page .stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background-color:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.overtime-list-page .stat-card .stat-icon{width:44px;height:44px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.overtime-list-page .stat-card.pending .stat-icon{background-color:#fef3c7;color:#d97706}.overtime-list-page .stat-card.approved .stat-icon{background-color:var(--success-bg);color:#059669}.overtime-list-page .stat-card.total .stat-icon{background-color:var(--info-bg);color:#0284c7}.overtime-list-page .stat-content{display:flex;flex-direction:column;gap:.125rem;flex:1}.overtime-list-page .stat-label{font-size:.75rem;color:var(--text-muted);font-weight:500}.overtime-list-page .stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);line-height:1.2}.overtime-list-page .stat-value small{font-size:.875rem;font-weight:500;color:var(--text-muted)}.overtime-list-page .stat-card .stat-tag{font-size:.6875rem;font-weight:600;padding:.25rem .5rem;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em;align-self:flex-start}.overtime-list-page .stat-card.pending .stat-tag{background-color:#fef3c7;color:#d97706}.overtime-list-page .stat-card.approved .stat-tag{background-color:var(--success-bg);color:#059669}.overtime-list-page .stat-card.total .stat-tag{background-color:var(--info-bg);color:#0284c7}.page-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.filters{display:flex;align-items:center;gap:.75rem;flex:1}.search-input{display:flex;align-items:center;gap:.5rem;height:42px;padding:0 .875rem;background-color:var(--bg-white);border:1px solid var(--border-light);border-radius:var(--radius-md);flex:1;max-width:400px}.search-input .material-symbols-outlined{font-size:1.125rem;color:var(--text-muted)}.search-input input{border:none;outline:none;font-size:.875rem;color:var(--text-primary);background-color:transparent;width:100%}.search-input input::placeholder{color:var(--text-muted)}.filter-select{height:42px;padding:0 2rem 0 .875rem;font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-white);color:var(--text-primary);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748b' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;cursor:pointer}.filter-select:focus{outline:none;border-color:var(--primary)}.actions{display:flex;gap:.75rem}.duration-value{display:inline-flex;align-items:center;padding:.25rem .625rem;background-color:var(--accent);color:var(--primary);font-size:.8125rem;font-weight:600;border-radius:var(--radius-sm)}.status-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em}.status-badge.status-pending{background-color:#fef3c7;color:#d97706}.status-badge.status-approved{background-color:var(--success-bg);color:#059669}.status-badge.status-rejected{background-color:var(--error-bg);color:#dc2626}.detail-link{font-size:.8125rem;font-weight:600;color:var(--text-muted);padding:.25rem .5rem;border-radius:var(--radius-sm);transition:all .15s ease;text-transform:uppercase;letter-spacing:.02em}.detail-link:hover{color:var(--primary);background-color:var(--accent)}.reason-text{font-size:.8125rem;color:var(--text-secondary)}.employee-cell{display:flex;align-items:center;gap:.75rem}.employee-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:600;flex-shrink:0}.employee-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.employee-info{display:flex;flex-direction:column;gap:.125rem}.employee-name{font-size:.875rem;font-weight:600;color:var(--text-primary)}.employee-id{font-size:.75rem;color:var(--text-muted)}@media(max-width:768px){.stats-grid.stats-3{grid-template-columns:1fr}.page-actions{flex-direction:column;align-items:stretch}.filters{flex-direction:column}.search-input{max-width:none}}.payslip-modal{max-width:700px;width:100%;padding:0;max-height:calc(100vh - 4rem);display:flex;flex-direction:column}.payslip-topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.payslip-topbar-left{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--text-primary)}.payslip-topbar-left .material-symbols-outlined{font-size:1.125rem;color:var(--primary)}.payslip-topbar-actions{display:flex;align-items:center;gap:.5rem}.btn-sm{padding:.375rem .75rem;font-size:.75rem}.btn-sm .material-symbols-outlined{font-size:.875rem}.payslip-body{padding:2rem;overflow-y:auto;flex:1}.payslip-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem}.company-info{display:flex;align-items:center;gap:.75rem}.company-logo{width:40px;height:40px;background-color:var(--primary);color:#fff;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:800}.company-info h3{font-size:1.125rem;font-weight:800;color:var(--text-primary);letter-spacing:.05em}.company-info p{font-size:.6875rem;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase}.slip-title{text-align:right}.slip-title h2{font-size:1.5rem;font-weight:800;color:var(--text-primary);letter-spacing:.05em}.slip-title p{font-size:.8125rem;color:var(--text-muted)}.divider{border:none;border-top:2px solid var(--primary);margin-bottom:1.5rem}.employee-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 2rem;margin-bottom:1.5rem}.detail-row{display:flex;justify-content:space-between;gap:.5rem}.detail-label{font-size:.8125rem;color:var(--text-muted)}.detail-value{font-size:.8125rem;font-weight:600;color:var(--text-primary);text-align:right}.payslip-tables{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.payslip-table{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-subtle)}.table-header{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.table-header .material-symbols-outlined{font-size:1rem}.earnings-header{background-color:#d1fae5;color:#065f46}.deductions-header{background-color:#fee2e2;color:#991b1b}.table-body{padding:.5rem 0}.table-row{display:flex;justify-content:space-between;padding:.5rem 1rem;font-size:.8125rem;color:var(--text-secondary)}.table-row .amount{font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums}.table-row .amount.deduction{color:var(--error)}.table-total{display:flex;justify-content:space-between;padding:.625rem 1rem;font-size:.8125rem;font-weight:700;border-top:1px solid var(--border-subtle);margin-top:.25rem}.table-total .amount{color:var(--text-primary)}.table-total.deduction-total .amount{color:var(--error)}.thp-section{background:linear-gradient(135deg,#052e16,#0a4a26);border-radius:var(--radius-xl);padding:1.25rem 1.5rem;margin-bottom:1.5rem}.thp-content{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.thp-logo{width:36px;height:36px;background-color:#ffffff26;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:800;color:#fff}.thp-info{display:flex;flex-direction:column}.thp-label{font-size:.6875rem;color:#fff9;text-transform:uppercase;letter-spacing:.04em}.thp-value{font-size:1.75rem;font-weight:800;color:#fff;line-height:1.2}.thp-words{display:flex;gap:.375rem;font-size:.75rem;color:#ffffffb3;font-style:italic;margin-top:.25rem}.thp-words-label{font-weight:600;color:#ffffffe6}.payslip-footer{text-align:center}.signature-area{display:flex;justify-content:space-around;margin-bottom:1.5rem}.sig-block{display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:120px}.sig-line{width:100%;height:1px;background-color:var(--text-muted);margin-top:3rem}.sig-block span{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.footer-note{font-size:.6875rem;color:var(--text-muted);margin-bottom:.25rem}.footer-disclaimer{font-size:.625rem;color:var(--text-muted);opacity:.7;max-width:500px;margin:0 auto;line-height:1.4}@media(max-width:640px){.payslip-tables,.employee-detail-grid{grid-template-columns:1fr}.payslip-header{flex-direction:column;gap:1rem}.slip-title{text-align:left}}.payroll-list-page{padding:0}.period-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.period-nav{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--border-light);background-color:var(--bg-white);color:var(--text-secondary);transition:all .15s ease}.period-nav:hover{background-color:var(--bg-light);color:var(--text-primary)}.period-display{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--bg-white);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;color:var(--text-primary)}.period-display .material-symbols-outlined{font-size:1.125rem;color:var(--text-muted)}.payroll-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.payroll-stat-card{display:flex;flex-direction:column;gap:.25rem;padding:1.25rem;background-color:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.payroll-stat-card.highlight{background:linear-gradient(135deg,#052e16,#0a4a26);border-color:transparent}.payroll-stat-card.highlight .pstat-label,.payroll-stat-card.highlight .pstat-sub{color:#ffffffb3}.payroll-stat-card.highlight .pstat-value,.payroll-stat-card.highlight .pstat-value-lg,.payroll-stat-card.highlight .pstat-value-xl{color:#fff}.pstat-label{font-size:.75rem;font-weight:500;color:var(--text-muted)}.pstat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1.2}.pstat-value-lg{font-size:.875rem;font-weight:500;color:#fff;opacity:.8}.pstat-value-xl{font-size:1.75rem;font-weight:800;color:#fff;line-height:1.2}.pstat-sub{font-size:.6875rem;color:var(--text-muted)}.pstat-pending{display:inline-flex;align-items:center;gap:.25rem;font-size:.6875rem;color:#d97706;margin-top:.125rem}.pstat-pending .material-symbols-outlined{font-size:.875rem}.money-cell{font-size:.8125rem;font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums}.money-cell.deduction{color:var(--error)}.money-cell.thp{font-weight:700;font-size:.875rem}.payroll-status{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em}.payroll-status.status-draft{background-color:#f1f5f9;color:#64748b}.payroll-status.status-generated{background-color:var(--info-bg);color:#0369a1}.payroll-status.status-paid{background-color:var(--success-bg);color:#059669}@media(max-width:1024px){.payroll-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.payroll-stats{grid-template-columns:1fr}}.payroll-generate-page{max-width:800px;margin:0 auto;padding:0 1rem}.generate-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.back-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);color:var(--text-secondary);transition:all .15s ease}.back-btn:hover{background-color:var(--bg-light);color:var(--text-primary)}.generate-header h1{font-size:1.375rem;font-weight:700;color:var(--text-primary)}.generate-header p{font-size:.8125rem;color:var(--text-muted)}.steps-indicator{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:2rem}.step{display:flex;align-items:center;gap:.5rem}.step-number{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:600;background-color:#e2e8f0;color:#94a3b8;flex-shrink:0;transition:all .2s ease}.step.active .step-number{background-color:var(--primary);color:#fff}.step.done .step-number{background-color:var(--success);color:#fff}.step.done .step-number .material-symbols-outlined{font-size:1rem}.step-label{font-size:.8125rem;font-weight:500;color:var(--text-muted);white-space:nowrap}.step.active .step-label{color:var(--text-primary);font-weight:600}.step-line{width:60px;height:2px;background-color:#e2e8f0;margin:0 .75rem}.step.done+.step .step-line,.step.active .step-line{background-color:var(--primary)}.step-content{padding:2rem;margin-bottom:1.5rem}.info-alert{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background-color:#eff6ff;border:1px solid #BFDBFE;border-radius:var(--radius-lg);margin-bottom:1.5rem}.info-alert .material-symbols-outlined{font-size:1.25rem;color:#2563eb;flex-shrink:0;margin-top:.125rem}.info-alert p{font-size:.8125rem;color:#1e40af;line-height:1.5}.warning-alert{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background-color:#fef3c7;border:1px solid #FDE68A;border-radius:var(--radius-lg);margin-top:1.5rem}.warning-alert .material-symbols-outlined{font-size:1.25rem;color:#d97706;flex-shrink:0}.warning-alert p{font-size:.8125rem;color:#92400e;line-height:1.5}.period-form{margin-bottom:1.5rem}.employee-select-section{margin-bottom:1.5rem;border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden}.select-all-row{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;border-bottom:1px solid var(--border-subtle);background-color:var(--bg-light)}.active-badge{font-size:.6875rem;font-weight:600;padding:.25rem .5rem;background-color:var(--success-bg);color:#059669;border-radius:var(--radius-sm);text-transform:uppercase}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.checkbox-text{font-size:.875rem;font-weight:500;color:var(--text-primary)}.emp-pos{font-weight:400;color:var(--text-muted)}.employee-checklist{padding:.5rem 1rem;display:flex;flex-direction:column;gap:.125rem}.employee-check{padding:.5rem 0}.more-employees{font-size:.8125rem;color:var(--primary);font-weight:500;padding:.5rem 0 .5rem 2.25rem}.bonus-check{align-items:flex-start;gap:.75rem}.checkbox-sub{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.125rem}.step-2 h3{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.review-subtitle{font-size:.8125rem;color:var(--text-muted);margin-bottom:1.5rem}.review-table-wrapper{overflow-x:auto}.review-table{width:100%;border-collapse:collapse;font-size:.8125rem}.review-table th{padding:.75rem;text-align:left;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background-color:var(--bg-light);border-bottom:1px solid var(--border-light)}.review-table td{padding:.75rem;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);font-variant-numeric:tabular-nums}.review-table tfoot td{background-color:var(--bg-light);font-weight:600;color:var(--text-primary);border-top:2px solid var(--border-light)}.review-emp{display:flex;flex-direction:column;gap:.125rem}.review-emp-name{font-weight:600;color:var(--text-primary)}.review-emp-dept{font-size:.6875rem;color:var(--text-muted)}.deduction-text{color:var(--error)!important}.net-text{font-weight:600!important;color:var(--text-primary)!important}.step-3{text-align:center}.confirm-icon{width:64px;height:64px;border-radius:50%;background-color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.confirm-icon .material-symbols-outlined{font-size:2rem;color:var(--primary)}.step-3 h3{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.confirm-subtitle{font-size:.8125rem;color:var(--text-muted);margin-bottom:1.5rem}.confirm-summary{max-width:400px;margin:0 auto;text-align:left;border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden}.summary-row{display:flex;justify-content:space-between;padding:.75rem 1rem;font-size:.8125rem;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.summary-row:last-child{border-bottom:none}.summary-value{font-weight:600;color:var(--text-primary)}.summary-row.total-row{background-color:var(--bg-light)}.summary-value.total{font-size:1rem;font-weight:700;color:var(--primary)}.generate-footer{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-top:1px solid var(--border-subtle)}.footer-right{display:flex;align-items:center;gap:1rem}.step-info{font-size:.8125rem;color:var(--text-muted)}.spinner-sm{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@media(max-width:640px){.form-row{grid-template-columns:1fr}.generate-footer{flex-direction:column;gap:1rem}.footer-right{width:100%;justify-content:space-between}}.admin-list-page{padding:0}.admin-list-page .stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background-color:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.admin-list-page .stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-list-page .stat-icon .material-symbols-outlined{font-size:1.5rem}.admin-list-page .stat-content{display:flex;flex-direction:column;gap:.125rem}.admin-list-page .stat-label{font-size:.8125rem;color:var(--text-muted)}.admin-list-page .stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);line-height:1}.role-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em}.role-badge.role-purple{background-color:#f3e8ff;color:#7c3aed}.role-badge.role-blue{background-color:var(--info-bg);color:#0369a1}.role-badge.role-green{background-color:var(--success-bg);color:#059669}.admin-status{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500}.status-dot{width:8px;height:8px;border-radius:50%}.admin-status.active .status-dot{background-color:#059669}.admin-status.active{color:#059669}.admin-status.inactive .status-dot{background-color:#94a3b8}.admin-status.inactive{color:#94a3b8}.text-muted{color:var(--text-muted);font-size:.8125rem}.action-btns{display:flex;gap:.25rem}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-muted);transition:all .15s ease}.icon-btn:hover{background-color:var(--accent);color:var(--primary)}.icon-btn.danger:hover{background-color:var(--error-bg);color:var(--error)}.icon-btn .material-symbols-outlined{font-size:1.125rem}.drawer-overlay{position:fixed;inset:0;background-color:#0006;z-index:1000;display:flex;justify-content:flex-end}.drawer{width:420px;max-width:100%;height:100%;background-color:var(--bg-white);display:flex;flex-direction:column;box-shadow:-4px 0 24px #0000001a;animation:slideIn .25s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-subtle)}.drawer-header h2{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.drawer-header .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-muted);transition:all .15s ease}.drawer-header .close-btn:hover{background-color:var(--bg-light);color:var(--text-primary)}.drawer-body{flex:1;padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.drawer-footer{display:flex;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-subtle)}.drawer-footer .btn{flex:1}.input-group{display:flex;flex-direction:column;gap:.375rem}.input-group label{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.label-hint{font-weight:400;text-transform:none;letter-spacing:0;font-size:.6875rem;color:var(--text-muted);opacity:.8}.input-field{padding:.625rem .875rem;font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-white);color:var(--text-primary);transition:border-color .15s ease;font-family:inherit}.input-field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1a4d2e1a}.input-field::placeholder{color:var(--text-muted)}.password-input{position:relative}.password-input .input-field{width:100%;padding-right:2.5rem}.toggle-pw{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);border-radius:var(--radius-sm)}.toggle-pw:hover{color:var(--text-primary)}.toggle-pw .material-symbols-outlined{font-size:1.125rem}.toggle-group{display:flex;align-items:center;justify-content:space-between;padding:1rem;background-color:var(--bg-light);border-radius:var(--radius-lg)}.toggle-label{font-size:.875rem;font-weight:600;color:var(--text-primary);display:block}.toggle-desc{font-size:.75rem;color:var(--text-muted);display:block;margin-top:.125rem}.toggle-switch{position:relative;width:44px;height:24px;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background-color:#cbd5e1;border-radius:12px;transition:all .2s ease}.toggle-slider:before{content:"";position:absolute;left:2px;top:2px;width:20px;height:20px;background-color:#fff;border-radius:50%;transition:all .2s ease;box-shadow:0 1px 3px #00000026}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.btn-danger{padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;color:#fff;background-color:var(--error);border-radius:var(--radius-md);transition:all .15s ease}.btn-danger:hover{background-color:#b91c1c}@media(max-width:480px){.drawer{width:100%}}.department-list-page{padding:0}.tabs{display:flex;gap:0;border-bottom:2px solid var(--border-subtle);margin-bottom:1.5rem}.tab{padding:.75rem 1.25rem;font-size:.875rem;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s ease;cursor:pointer;background:none}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--text-primary);font-weight:600;border-bottom-color:var(--primary)}.dept-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.dept-card{background-color:var(--bg-white);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:1.25rem;transition:all .2s ease}.dept-card:hover{border-color:var(--border-light);box-shadow:var(--shadow-md)}.dept-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.dept-icon{width:44px;height:44px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.dept-icon .material-symbols-outlined{font-size:1.375rem}.dept-code{font-size:.6875rem;font-weight:600;padding:.25rem .5rem;border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-muted);letter-spacing:.03em}.dept-name{font-size:1.0625rem;font-weight:700;color:var(--text-primary);margin-bottom:.875rem}.dept-head{display:flex;align-items:center;gap:.625rem;margin-bottom:1rem}.dept-head-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;flex-shrink:0}.dept-head-label{display:block;font-size:.6875rem;color:var(--text-muted)}.dept-head-name{display:block;font-size:.8125rem;font-weight:600;color:var(--text-primary)}.dept-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;border-top:1px solid var(--border-subtle)}.dept-count{display:inline-flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:500;color:var(--text-muted);padding:.25rem .625rem;background-color:var(--bg-light);border-radius:var(--radius-sm)}.dept-count .material-symbols-outlined{font-size:.875rem}.dept-actions{display:flex;gap:.125rem}.dept-footer{display:flex;align-items:center;justify-content:space-between;padding-top:1rem;border-top:1px solid var(--border-subtle)}.dept-footer-info{font-size:.8125rem;color:var(--text-muted)}.dept-footer-actions{display:flex;gap:.75rem}.dept-badge{display:inline-flex;align-items:center;padding:.25rem .5rem;font-size:.6875rem;font-weight:600;border-radius:var(--radius-sm);white-space:nowrap}.level-badge{display:inline-flex;align-items:center;padding:.25rem .5rem;font-size:.6875rem;font-weight:600;border-radius:var(--radius-sm)}.salary-range{font-size:.8125rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.add-modal{max-width:450px;width:100%;padding:0}.add-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-subtle)}.add-modal .modal-header h2{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.add-modal .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-muted)}.add-modal .close-btn:hover{background-color:var(--bg-light);color:var(--text-primary)}.modal-body-form{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;max-height:60vh;overflow-y:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:var(--text-muted)}.loading-state .material-symbols-outlined{font-size:2rem;margin-bottom:.5rem}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@media(max-width:1024px){.dept-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.dept-grid{grid-template-columns:1fr}.dept-footer{flex-direction:column;gap:.75rem;align-items:flex-start}}.daily-report-page{padding:0}.daily-report-page .stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.daily-report-page .stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border-radius:12px;border:1px solid #E2E8F0}.daily-report-page .stat-card .stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.daily-report-page .stat-card.pending .stat-icon{background:#fff7ed;color:#ea580c}.daily-report-page .stat-card.approved .stat-icon{background:#f0fdf4;color:#059669}.daily-report-page .stat-card.total .stat-icon{background:#eff6ff;color:#3b82f6}.daily-report-page .stat-content{display:flex;flex-direction:column}.daily-report-page .stat-label{font-size:.8rem;color:#64748b}.daily-report-page .stat-value{font-size:1.75rem;font-weight:700;color:#1e293b}.desc-text{font-size:.85rem;color:#475569;max-width:250px;display:inline-block}.report-photo-thumb{width:40px;height:40px;border-radius:6px;overflow:hidden}.report-photo-thumb img{width:100%;height:100%;object-fit:cover}.status-badge.status-reviewed{background:#f0fdf4;color:#059669;border:1px solid #BBF7D0}.status-badge.status-pending{background:#fff7ed;color:#ea580c;border:1px solid #FED7AA}.report-modal{max-width:600px;width:100%}.modal-body-report{padding:1.5rem}.report-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #E2E8F0}.report-employee{display:flex;align-items:center;gap:.75rem}.report-employee .employee-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.1rem}.report-employee .employee-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.report-employee div{display:flex;flex-direction:column}.report-employee strong{color:#1e293b;font-size:.95rem}.report-employee span{color:#64748b;font-size:.8rem}.report-section{margin-bottom:1.25rem}.report-section h4{font-size:.85rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.report-section p{color:#334155;line-height:1.6;font-size:.9rem}.report-photo-full{width:100%;max-height:300px;object-fit:cover;border-radius:8px;border:1px solid #E2E8F0}.report-section .input-field{width:100%;padding:.75rem;border:1px solid #E2E8F0;border-radius:8px;font-size:.9rem;font-family:inherit;resize:vertical}.report-section .input-field:focus{outline:none;border-color:var(--primary, #6366F1);box-shadow:0 0 0 3px #6366f11a}.report-section .input-field:disabled{background:#f8fafc;color:#64748b}@media(max-width:768px){.daily-report-page .stats-grid{grid-template-columns:1fr}}
