:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-tertiary:#1e293b;--bg-card:#111827b3;--bg-card-hover:#1e293bcc;--bg-glass:#0f172a99;--bg-glass-light:#1e293b66;--bg-input:#0f172acc;--accent-primary:#6366f1;--accent-primary-hover:#818cf8;--accent-primary-glow:#6366f14d;--accent-secondary:#06b6d4;--accent-secondary-glow:#06b6d440;--accent-success:#10b981;--accent-success-glow:#10b98133;--accent-warning:#f59e0b;--accent-warning-glow:#f59e0b33;--accent-danger:#ef4444;--accent-danger-glow:#ef444433;--accent-purple:#a855f7;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--text-inverse:#0f172a;--border-color:#94a3b81a;--border-color-hover:#94a3b833;--border-accent:#6366f166;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0000004d;--shadow-lg:0 10px 25px -3px #00000080, 0 4px 6px -4px #0006;--shadow-xl:0 20px 40px -4px #0009;--shadow-glow:0 0 20px var(--accent-primary-glow);--sidebar-width:260px;--sidebar-collapsed:72px;--header-height:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(at 20%,#6366f114 0%,#0000 50%),radial-gradient(at 80% 20%,#06b6d40f 0%,#0000 50%),radial-gradient(at 50% 80%,#a855f70d 0%,#0000 50%);width:100%;height:100%;position:fixed;top:0;left:0}#root{z-index:1;position:relative}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-layout{min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--transition-base);flex-direction:column;flex:1;display:flex}.page-content{padding:24px 32px;padding-top:calc(var(--header-height) + 24px);flex:1}.sidebar{width:var(--sidebar-width);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--border-color);z-index:100;height:100vh;transition:width var(--transition-base);flex-direction:column;display:flex;position:fixed;top:0;left:0}.sidebar-brand{border-bottom:1px solid var(--border-color);align-items:center;gap:12px;padding:20px 24px;display:flex}.sidebar-brand-icon{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));border-radius:var(--radius-md);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;font-weight:800;display:flex}.sidebar-brand h1{background:linear-gradient(135deg, var(--text-primary), var(--accent-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:700}.sidebar-brand span{color:var(--text-muted);margin-top:-2px;font-size:.7rem;font-weight:400;display:block}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.sidebar-section-title{text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted);padding:12px 12px 8px;font-size:.65rem;font-weight:600}.sidebar-link{border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;align-items:center;gap:12px;margin-bottom:2px;padding:10px 14px;font-size:.875rem;font-weight:500;display:flex;position:relative;overflow:hidden}.sidebar-link:hover{background:var(--bg-card-hover);color:var(--text-primary);transform:translate(2px)}.sidebar-link.active{color:var(--accent-primary-hover);border:1px solid var(--border-accent);background:linear-gradient(135deg,#6366f126,#06b6d41a)}.sidebar-link.active:before{content:"";background:var(--accent-primary);border-radius:0 3px 3px 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-link svg,.sidebar-link .nav-icon{flex-shrink:0;width:20px;height:20px;font-size:1.1rem}.sidebar-footer{border-top:1px solid var(--border-color);padding:16px}.sidebar-user{border-radius:var(--radius-md);background:var(--bg-glass-light);align-items:center;gap:10px;padding:10px;display:flex}.sidebar-avatar{background:linear-gradient(135deg, var(--accent-primary), var(--accent-purple));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;font-weight:700;display:flex}.sidebar-user-info{overflow:hidden}.sidebar-user-info p:first-child{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.sidebar-user-info p:last-child{color:var(--text-muted);text-transform:capitalize;font-size:.65rem}.header{top:0;left:var(--sidebar-width);height:var(--header-height);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);z-index:90;transition:left var(--transition-base);justify-content:space-between;align-items:center;padding:0 32px;display:flex;position:fixed;right:0}.header-left{align-items:center;gap:16px;display:flex}.header-left h2{color:var(--text-primary);font-size:1.25rem;font-weight:700}.header-left p{color:var(--text-muted);font-size:.8rem}.header-right{align-items:center;gap:12px;display:flex}.header-btn{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-color);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:1.1rem;display:flex}.header-btn:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-accent)}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-base);padding:24px}.glass-card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-md)}.glass-card-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.glass-card-header h3{color:var(--text-primary);font-size:1rem;font-weight:600}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-base);padding:24px;position:relative;overflow:hidden}.stat-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-color-hover);transform:translateY(-2px)}.stat-card:before{content:"";border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.stat-card.indigo:before{background:linear-gradient(90deg, var(--accent-primary), var(--accent-purple))}.stat-card.cyan:before{background:linear-gradient(90deg, var(--accent-secondary), #22d3ee)}.stat-card.green:before{background:linear-gradient(90deg, var(--accent-success), #34d399)}.stat-card.amber:before{background:linear-gradient(90deg, var(--accent-warning), #fbbf24)}.stat-card.red:before{background:linear-gradient(90deg, var(--accent-danger), #f87171)}.stat-card.purple:before{background:linear-gradient(90deg, var(--accent-purple), #c084fc)}.stat-card-top{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.stat-card-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:44px;height:44px;font-size:1.3rem;display:flex}.stat-card.indigo .stat-card-icon{color:var(--accent-primary-hover);background:#6366f126}.stat-card.cyan .stat-card-icon{color:var(--accent-secondary);background:#06b6d426}.stat-card.green .stat-card-icon{color:var(--accent-success);background:#10b98126}.stat-card.amber .stat-card-icon{color:var(--accent-warning);background:#f59e0b26}.stat-card.red .stat-card-icon{color:var(--accent-danger);background:#ef444426}.stat-card.purple .stat-card-icon{color:var(--accent-purple);background:#a855f726}.stat-card-value{background:linear-gradient(135deg, var(--text-primary), var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:4px;font-size:2rem;font-weight:800;line-height:1}.stat-card-label{color:var(--text-muted);font-size:.8rem;font-weight:500}.data-table-wrapper{border-radius:var(--radius-lg);overflow-x:auto}.data-table{border-collapse:separate;border-spacing:0;width:100%}.data-table thead th{background:var(--bg-tertiary);text-align:left;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);border-bottom:1px solid var(--border-color);white-space:nowrap;padding:12px 16px;font-size:.75rem;font-weight:600}.data-table thead th:first-child{border-radius:var(--radius-md) 0 0 0}.data-table thead th:last-child{border-radius:0 var(--radius-md) 0 0}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-glass-light)}.data-table tbody td{color:var(--text-secondary);border-bottom:1px solid var(--border-color);white-space:nowrap;padding:14px 16px;font-size:.875rem}.data-table tbody td:first-child{color:var(--text-primary);font-weight:500}.badge{text-transform:capitalize;border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.badge-success{color:var(--accent-success);background:#10b98126;border:1px solid #10b98140}.badge-warning{color:var(--accent-warning);background:#f59e0b26;border:1px solid #f59e0b40}.badge-danger{color:var(--accent-danger);background:#ef444426;border:1px solid #ef444440}.badge-info{color:var(--accent-secondary);background:#06b6d426;border:1px solid #06b6d440}.badge-primary{color:var(--accent-primary-hover);background:#6366f126;border:1px solid #6366f140}.badge-purple{color:var(--accent-purple);background:#a855f726;border:1px solid #a855f740}.badge-neutral{color:var(--text-muted);background:#64748b26;border:1px solid #64748b40}.btn{border-radius:var(--radius-md);font-size:.85rem;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), #4f46e5);color:#fff;box-shadow:0 2px 10px var(--accent-primary-glow)}.btn-primary:hover{background:linear-gradient(135deg, var(--accent-primary-hover), var(--accent-primary));box-shadow:0 4px 16px var(--accent-primary-glow);transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg, var(--accent-success), #059669);color:#fff;box-shadow:0 2px 10px var(--accent-success-glow)}.btn-success:hover{box-shadow:0 4px 16px var(--accent-success-glow);transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg, var(--accent-danger), #dc2626);color:#fff;box-shadow:0 2px 10px var(--accent-danger-glow)}.btn-danger:hover{box-shadow:0 4px 16px var(--accent-danger-glow);transform:translateY(-1px)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0}.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-color-hover)}.btn-sm{padding:6px 12px;font-size:.75rem}.btn-icon{width:36px;height:36px;padding:8px}.form-group{margin-bottom:18px}.form-label{color:var(--text-secondary);letter-spacing:.3px;margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.form-input,.form-select,.form-textarea{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-size:.875rem;font-family:var(--font-family);transition:all var(--transition-fast);outline:none;padding:10px 14px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-glow)}.form-input::placeholder{color:var(--text-muted)}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.form-textarea{resize:vertical;min-height:80px}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:90%;max-width:540px;max-height:85vh;box-shadow:var(--shadow-xl);animation:.3s modalSlideIn;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{font-size:1.1rem;font-weight:700}.modal-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.2rem;display:flex}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.login-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";background:radial-gradient(circle,#6366f11f,#0000 70%);width:80%;height:200%;animation:8s ease-in-out infinite alternate loginGlow;position:absolute;top:-50%;left:-30%}.login-page:after{content:"";background:radial-gradient(circle,#06b6d414,#0000 70%);width:80%;height:200%;animation:10s ease-in-out infinite alternate-reverse loginGlow;position:absolute;bottom:-50%;right:-30%}.login-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-xl);z-index:1;padding:40px;animation:.6s loginCardIn;position:relative}.login-logo{text-align:center;margin-bottom:32px}.login-logo-icon{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));border-radius:var(--radius-lg);color:#fff;width:56px;height:56px;box-shadow:0 4px 20px var(--accent-primary-glow);justify-content:center;align-items:center;margin:0 auto 14px;font-size:1.6rem;font-weight:800;display:flex}.login-logo h2{background:linear-gradient(135deg, var(--text-primary), var(--accent-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800}.login-logo p{color:var(--text-muted);margin-top:4px;font-size:.85rem}.login-error{border-radius:var(--radius-md);color:var(--accent-danger);background:#ef44441a;border:1px solid #ef44444d;margin-bottom:16px;padding:10px 14px;font-size:.8rem;animation:.4s shake}.login-form .btn{width:100%;margin-top:8px;padding:12px;font-size:.9rem}.dashboard-grid{grid-template-columns:1fr 1fr;gap:20px;margin-top:24px;display:grid}.dashboard-grid-full{grid-column:1/-1}.quick-actions{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.chart-bars{align-items:flex-end;gap:8px;height:160px;padding:16px 0;display:flex}.chart-bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;min-width:28px;transition:all var(--transition-base);flex:1;position:relative}.chart-bar:hover{opacity:.85;transform-origin:bottom;transform:scaleY(1.02)}.chart-bar-label{color:var(--text-muted);white-space:nowrap;font-size:.6rem;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.activity-list{flex-direction:column;gap:12px;display:flex}.activity-item{border-radius:var(--radius-md);background:var(--bg-glass-light);transition:all var(--transition-fast);align-items:center;gap:14px;padding:12px;display:flex}.activity-item:hover{background:var(--bg-card-hover)}.activity-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.9rem;display:flex}.activity-text{flex:1}.activity-text p{color:var(--text-primary);font-size:.82rem}.activity-text span{color:var(--text-muted);font-size:.7rem}.checkin-widget{border:1px solid var(--border-accent);border-radius:var(--radius-xl);background:linear-gradient(135deg,#6366f11a,#06b6d414);align-items:center;gap:24px;margin-bottom:24px;padding:28px;display:flex}.checkin-time{text-align:center}.checkin-time .time-display{font-variant-numeric:tabular-nums;background:linear-gradient(135deg, var(--accent-primary-hover), var(--accent-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:800;line-height:1}.checkin-time .date-display{color:var(--text-muted);margin-top:4px;font-size:.8rem}.checkin-actions{gap:12px;display:flex}.checkin-actions .btn{padding:14px 32px;font-size:.9rem}.checkin-status{text-align:right;margin-left:auto}.checkin-status p{color:var(--text-muted);font-size:.8rem}.checkin-status .status-value{color:var(--accent-success);font-size:1rem;font-weight:600}.attendance-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.attendance-cell{aspect-ratio:1;border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:default;justify-content:center;align-items:center;font-size:.75rem;font-weight:500;display:flex}.attendance-cell.header{color:var(--text-muted);text-transform:uppercase;font-size:.65rem;font-weight:600}.attendance-cell.present{color:var(--accent-success);background:#10b98126}.attendance-cell.absent{color:var(--accent-danger);background:#ef44441f}.attendance-cell.late{color:var(--accent-warning);background:#f59e0b1f}.attendance-cell.empty{background:0 0}.attendance-cell.today{border:1px solid var(--accent-primary)}.leave-balances{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:24px;display:grid}.leave-balance-card{border-radius:var(--radius-md);background:var(--bg-glass-light);border:1px solid var(--border-color);text-align:center;transition:all var(--transition-fast);padding:16px}.leave-balance-card:hover{border-color:var(--border-color-hover);transform:translateY(-1px)}.leave-balance-card .count{font-size:1.8rem;font-weight:800}.leave-balance-card .label{color:var(--text-muted);margin-top:2px;font-size:.75rem}.payslip-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);max-width:600px;padding:32px}.payslip-header{border-bottom:2px solid var(--border-color);justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:16px;display:flex}.payslip-row{justify-content:space-between;padding:8px 0;font-size:.875rem;display:flex}.payslip-row.total{border-top:2px solid var(--border-color);color:var(--accent-success);margin-top:8px;padding-top:12px;font-size:1rem;font-weight:700}.profile-header{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);align-items:center;gap:24px;margin-bottom:24px;padding:28px;display:flex}.profile-avatar-large{background:linear-gradient(135deg, var(--accent-primary), var(--accent-purple));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;font-size:2rem;font-weight:800;display:flex}.profile-info h2{font-size:1.4rem;font-weight:700}.profile-info p{color:var(--text-muted);font-size:.85rem}.profile-details-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.profile-detail-item{background:var(--bg-glass-light);border-radius:var(--radius-md);border:1px solid var(--border-color);padding:14px 16px}.profile-detail-item label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem;font-weight:600}.profile-detail-item p{color:var(--text-primary);margin-top:4px;font-size:.9rem;font-weight:500}.loader-wrapper{justify-content:center;align-items:center;min-height:300px;display:flex}.loader{border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;width:44px;height:44px;animation:.8s linear infinite spin}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.empty-state-icon{opacity:.4;margin-bottom:12px;font-size:3rem}.empty-state p{font-size:.9rem}.filters-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.filters-row .form-input,.filters-row .form-select{width:auto;min-width:180px}.search-input-wrapper{position:relative}.search-input-wrapper .search-icon{color:var(--text-muted);font-size:.9rem;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input-wrapper .form-input{padding-left:36px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes loginCardIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes loginGlow{0%{transform:translate(0)rotate(0)}to{transform:translate(5%,3%)rotate(5deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.page-enter{animation:.35s slideInRight}@media (width<=768px){.sidebar{transform:translate(-100%)}.main-content{margin-left:0}.header{left:0}.page-content{padding:16px;padding-top:calc(var(--header-height) + 16px)}.stats-grid,.dashboard-grid,.form-row{grid-template-columns:1fr}.profile-header{text-align:center;flex-direction:column}.profile-details-grid{grid-template-columns:1fr}.checkin-widget{text-align:center;flex-direction:column}.checkin-status{text-align:center;margin-left:0}}
