.landing-page{background:var(--color-background);display:flex;flex-direction:column;min-height:100vh}.landing-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid var(--color-border);padding:16px 24px;position:sticky;top:0;z-index:100}.header-container{justify-content:space-between;margin:0 auto;max-width:1200px}.brand,.header-container{align-items:center;display:flex}.brand{gap:12px}.brand-icon,.brand-name{color:var(--color-primary)}.brand-name{font-size:24px;font-weight:700;letter-spacing:-.5px}.admin-login-btn{align-items:center;background:var(--color-gradient);border:none;border-radius:10px;box-shadow:0 4px 12px #3a6ea540;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:transform .2s ease,box-shadow .2s ease}.admin-login-btn:hover{box-shadow:0 6px 16px #3a6ea54d;transform:translateY(-1px)}.hero-section{background:linear-gradient(180deg,var(--color-background) 0,#3a6ea508 100%);padding:80px 24px}.hero-container{grid-gap:64px;align-items:center;display:grid;gap:64px;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1200px}.hero-content{display:flex;flex-direction:column;gap:24px}.hero-badge{align-items:center;background:#3a6ea51a;border-radius:9999px;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:8px 16px;width:fit-content}.hero-badge,.hero-badge svg{color:var(--color-primary)}.hero-title{color:var(--color-text-primary);font-size:56px;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0}.hero-subtitle{color:var(--color-text-secondary);font-size:18px;line-height:1.6;margin:0;max-width:520px}.hero-stats{display:flex;gap:48px;padding-top:16px}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-value{color:var(--color-primary);font-size:32px;font-weight:800;line-height:1}.stat-label{color:var(--color-text-secondary);font-size:14px;font-weight:500}.hero-visual{align-items:center;display:flex;flex-direction:column;gap:24px}.scanner-container{align-items:center;display:flex;height:320px;justify-content:center;position:relative;width:320px}.scanner-ring{animation:ringPulse 3s ease-in-out infinite;border:2px solid var(--color-primary);border-radius:50%;height:100%;opacity:.2;position:absolute;width:100%}.scanner-icon{animation:iconPulse 3s ease-in-out infinite;filter:drop-shadow(0 0 30px rgba(58,110,165,.4));height:180px;object-fit:contain;width:180px}.scanner-glow{animation:glowPulse 3s ease-in-out infinite;background:radial-gradient(circle,#3a6ea54d 0,#0000 70%);border-radius:50%;height:200px;position:absolute;width:200px}.scanner-pulse{animation:pulseRing 3s ease-in-out infinite;border:2px solid var(--color-primary);border-radius:50%;height:100%;position:absolute;width:100%}@keyframes ringPulse{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.3;transform:scale(1.1)}}@keyframes iconPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}@keyframes glowPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}@keyframes pulseRing{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.scanner-status{align-items:center;background:#fffffff2;border:1px solid var(--color-border);border-radius:9999px;box-shadow:0 4px 12px #00000014;display:flex;gap:10px;padding:12px 24px}.status-indicator{animation:statusPulse 2s ease-in-out infinite;border-radius:50%;height:10px;width:10px}.status-indicator.online{background:#10b981;box-shadow:0 0 10px #10b98199}.status-indicator.offline{background:var(--color-danger);box-shadow:0 0 10px #e4766a99}@keyframes statusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.scanner-status span{color:var(--color-text-primary);font-size:14px;font-weight:600}@media (max-width:1024px){.hero-container{grid-template-columns:1fr;text-align:center}.hero-content{align-items:center}.hero-stats{justify-content:center}}@media (max-width:768px){.hero-title{font-size:40px}.hero-subtitle{font-size:16px}.hero-stats{gap:32px}.stat-value{font-size:28px}}.modal-overlay{align-items:center;animation:fadeIn .2s ease-in;background:#1f293773;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:slideUp .3s ease-out;background:var(--color-card);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 20px 50px #00000014;color:var(--color-text-primary);max-height:90vh;min-height:420px;padding:32px;position:relative;width:420px}.modal-close{align-items:center;background:#0000;border:none;border-radius:10px;color:var(--color-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px;position:absolute;right:16px;top:16px;transition:all .2s ease}.modal-close:hover{background:#3a6ea51a;color:var(--color-secondary)}.modal-title{color:var(--color-primary);font-size:28px;font-weight:700;margin-bottom:32px;text-align:center}.modal-form{gap:20px}.form-group,.modal-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:var(--color-text-secondary);font-size:14px;font-weight:500}.form-input{background:#fff;border:1px solid var(--color-border);border-radius:10px;color:var(--color-text-primary);font-size:16px;outline:none;padding:12px 16px;transition:border-color .2s ease,box-shadow .2s ease}.form-input::placeholder{color:var(--color-text-secondary)}.form-input:focus{background:#fff;border-color:var(--color-primary);box-shadow:0 0 0 3px #3a6ea526}.form-input.error{border-color:var(--color-danger);box-shadow:0 0 0 3px #e4766a40}.error-message{color:var(--color-danger);font-size:12px}.server-error{background:#e4766a26;border:1px solid #e4766a4d;border-radius:8px;color:var(--color-danger);font-size:14px;margin-bottom:16px;padding:10px 14px;text-align:center}.modal-submit{background:var(--color-gradient);border:none;border-radius:10px;box-shadow:0 4px 12px #3a6ea540;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:8px;padding:14px 24px;transition:transform .2s ease,box-shadow .2s ease}.modal-submit:hover{box-shadow:0 8px 24px #1f293759;transform:translateY(-1px)}.modal-submit:active{transform:translateY(0)}.fingerprint-scan-popup-overlay{align-items:center;animation:fadeIn .3s ease-in;background:#172b4d80;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.fingerprint-scan-popup{animation:slideUp .3s ease-out;background:var(--color-card);border-radius:16px;box-shadow:0 20px 50px #00000014;max-width:400px;padding:32px;text-align:center;width:90%}.popup-icon{color:var(--color-primary);margin-bottom:16px}.popup-title{color:var(--color-text-primary);font-size:24px;font-weight:700;margin:0 0 8px}.popup-message{color:var(--color-text-secondary);font-size:16px;margin:0 0 20px}.bit-value-display{background:#ffffffe6;border:1px solid var(--color-border);border-radius:10px;margin-bottom:24px;padding:16px}.scan-id-label{color:var(--color-text-secondary);font-size:14px;font-weight:500;margin-bottom:8px}.bit-value-display code{color:#1f2937;font-family:Courier New,monospace;font-size:28px;font-weight:700}.popup-close-btn{background:var(--color-gradient);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 32px;transition:background .2s}.popup-close-btn:hover{background:var(--color-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.kpi-card{background:var(--color-primary);border-radius:14px;box-shadow:0 10px 30px #3a6ea559;padding:18px 20px;transition:transform .2s ease,box-shadow .2s ease}.kpi-card:hover{box-shadow:0 10px 30px #00000014;transform:translateY(-2px)}.kpi-header{gap:12px;margin-bottom:0}.kpi-header,.kpi-icon{align-items:center;display:flex}.kpi-icon{background:#ffffff2e;border-radius:9999px;color:#fff;height:40px;justify-content:center;width:40px}.kpi-meta{display:flex;flex-direction:column;gap:2px}.kpi-heading{font-size:14px;font-weight:600;line-height:20px}.kpi-heading,.kpi-number{color:#fff;font-family:Inter}.kpi-number{font-size:28px;font-weight:700;line-height:32px}.pagination-container{align-items:center;background:#0000;border-top:none;display:flex;font-family:Inter;justify-content:center;padding:18px 20px 0}.pagination-info{color:#1f2937b3;font-size:14px;line-height:20px}.pagination-btn,.pagination-controls{align-items:center;display:flex;gap:8px}.pagination-btn{background:#ffffffe6;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-primary);cursor:pointer;font-family:Inter;font-size:14px;font-weight:500;padding:8px 12px;transition:all .2s ease;white-space:nowrap}.pagination-btn:hover:not(:disabled){background:#3a6ea514;border-color:var(--color-primary)}.pagination-btn:disabled{cursor:not-allowed;opacity:.5}.pagination-btn svg{color:#6b7280}.pagination-pages{align-items:center;display:flex;gap:4px}.pagination-page{align-items:center;background:#ffffffe6;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-primary);cursor:pointer;display:flex;font-family:Inter;font-size:14px;font-weight:500;height:32px;justify-content:center;transition:all .2s ease;width:32px}.pagination-page:hover{background:#3a6ea50d;border-color:var(--color-primary)}.pagination-page.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination-dots{align-items:center;color:#1f2937b3;display:flex;font-family:Inter;font-size:14px;height:32px;justify-content:center;width:32px}@media (max-width:768px){.pagination-container{flex-direction:column;gap:12px;padding:12px 16px}.pagination-controls{flex-wrap:wrap;justify-content:center}.pagination-info{text-align:center}}.table-container{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;overflow:hidden;width:100%}.table-search{background:#ffffffe6;border-bottom:1px solid var(--color-border);padding:16px}.search-input{max-width:300px;padding:8px 12px;width:100%}.table-wrapper{overflow-x:auto}.custom-table{border-collapse:collapse;font-family:Inter;width:100%}.custom-table thead{background:var(--color-primary);border-bottom:1px solid var(--color-border)}.custom-table th{color:#fff;font-size:12px;font-weight:600;letter-spacing:.05em;padding:12px 16px;text-align:center;text-transform:uppercase}.header-content{align-items:center;display:flex;justify-content:space-between}.sortable{cursor:pointer;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.sort-icon{font-size:12px;margin-left:8px;opacity:.5}.custom-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .2s ease}.custom-table tbody tr:hover{background-color:#3a6ea50d}.custom-table tbody tr:nth-child(2n){background-color:#f9fbfd}.custom-table tbody tr.clickable{cursor:pointer}.custom-table tbody tr.clickable:hover{background-color:#f3f4f6}.custom-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-size:14px;padding:12px 16px;text-align:center}.custom-table tbody tr:last-child td{border-bottom:none}@media (max-width:768px){.custom-table td,.custom-table th{font-size:12px;padding:8px 12px}.table-search{padding:12px}}.navbar{background:var(--color-gradient);box-shadow:0 2px 12px #0003;margin-bottom:32px;position:sticky;top:0;z-index:1000}.navbar-container{align-items:center;display:flex;height:64px;justify-content:space-between;margin:0 auto;max-width:1400px;padding:0 24px}.navbar-brand h1{color:#fff;font-size:24px;font-weight:700;letter-spacing:-.5px;margin:0}.navbar-link,.navbar-nav{align-items:center;display:flex;gap:8px}.navbar-link{background:#0000;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.navbar-link:hover{background:#ffffff26;box-shadow:0 3px 8px #0003;color:#fff}.navbar-link.active{background:#ffffff26;border-radius:10px;box-shadow:0 4px 12px #00000040}.navbar-logout{align-items:center;background:#ffffff40;border:1px solid #fff9;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px;transition:all .2s ease}.navbar-logout:hover{background:#fffc;border-color:#fff;box-shadow:0 4px 12px #00000040}.biometrics-dashboard{display:flex;flex-direction:column;gap:28px;margin:0 auto;max-width:1100px;width:100%}.biometrics-header{align-items:center;display:flex;justify-content:center;margin-bottom:8px}.biometrics-header h2{color:var(--color-text-primary);font-size:24px;font-weight:600;margin:0}.add-employee-btn{align-items:center;background:var(--color-gradient);border:none;border-radius:10px;box-shadow:0 8px 24px #00000014;color:#fff;cursor:pointer;display:inline-flex;font-family:Inter;font-size:12px;font-weight:600;gap:8px;line-height:18px;padding:9px 16px}.biometrics-kpis{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(4,minmax(0,1fr))}.biometrics-tabs{display:flex;flex-wrap:wrap;gap:18px;margin-top:32px}.biometrics-tabbar,.biometrics-tabs{align-items:center;justify-content:center}.biometrics-tabbar{background:#fff9;border-radius:10px;box-shadow:0 1px 4px #00000014;display:inline-flex;gap:6px;min-width:440px;padding:4px 10px}.biometrics-tab{appearance:none;background:#0000;border:none;border-radius:6px;color:var(--color-text-primary);cursor:pointer;flex:1 1;font-family:Inter;font-size:12px;font-weight:600;line-height:18px;min-width:0;padding:8px 12px;text-align:center}.biometrics-tab:hover{background:#ffffff1f}.biometrics-tab.active{background:#ffffffe6;box-shadow:0 0 6px #00000014;color:var(--color-primary)}.biometrics-table{display:flex;justify-content:center;width:100%}.biometrics-dashboard .table-container{border:1px solid var(--color-border);border-radius:14px;box-shadow:0 8px 24px #0000000a;margin:0 auto;width:760px}.biometrics-dashboard .custom-table thead{background:var(--color-primary)}.biometrics-dashboard .custom-table th{color:#fff;letter-spacing:normal;text-transform:none}.biometrics-status{align-items:center;border-radius:9999px;display:inline-flex;font-size:12px;font-weight:600;line-height:16px;padding:6px 10px}.biometrics-status--in{background:#3a6ea514;color:var(--color-primary)}.biometrics-status--lunch{background:#6c8ebf1f;color:var(--color-secondary)}.biometrics-status--out{background:#e4766a2e;color:var(--color-danger)}@media (max-width:1100px){.biometrics-dashboard{max-width:100%}.biometrics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.biometrics-dashboard .tabs-container{min-width:0;width:100%}.biometrics-dashboard .table-container{width:100%}}.employee-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.employee-modal{background:var(--color-card);border:1px solid var(--color-border);border-radius:14px;box-shadow:0 8px 24px #0000000a;display:flex;flex-direction:column;max-height:80vh;max-width:500px;width:90%}.employee-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px 20px}.employee-modal-header h3{color:var(--color-text-primary);font-size:18px;font-weight:600;margin:0}.employee-modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:4px}.employee-modal-close:hover{background:#3a6ea51a;color:var(--color-secondary)}.employee-modal-content{overflow-y:auto;padding:20px}.no-employees{color:#6b7280;margin:0;text-align:center}.employee-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.employee-card{align-items:center;background:var(--color-card);border:1px solid var(--color-border);border-radius:14px;box-shadow:0 8px 24px #0000000a;display:flex;flex-direction:column;padding:16px;text-align:center;transition:all .2s}.employee-card:hover{background:#3a6ea50d}.employee-name{color:var(--color-text-primary);font-size:14px;font-weight:600;margin-bottom:4px}.employee-code{color:#1f293799;font-size:12px}.scan-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.scan-modal{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 8px 24px #00000014;display:flex;flex-direction:column;max-width:400px;width:90%}.scan-modal-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:center;padding:16px 20px}.scan-modal-header h3{color:var(--color-text-primary);font-size:18px;font-weight:600;margin:0}.scan-modal-content{align-items:center;display:flex;flex-direction:column;gap:16px;padding:20px}.scan-employee-name{color:var(--color-text-primary);font-size:18px;font-weight:600;margin:0}.scan-employee-id{color:#1f293799;font-size:14px;margin:0}.fingerprint-animation{align-items:center;display:flex;height:120px;justify-content:center;position:relative;width:120px}.fingerprint-icon{filter:drop-shadow(0 0 20px rgba(58,110,165,.4));height:100px;object-fit:contain;width:100px}.fingerprint-icon,.fingerprint-icon.scanning{animation:scanPulse 3s linear infinite}.fingerprint-icon.success{filter:drop-shadow(0 0 20px rgba(58,110,165,.6))}@keyframes scanPulse{0%{opacity:.55;transform:scale(.94)}50%{filter:drop-shadow(0 0 25px rgba(137,210,144,.9));opacity:1;transform:scale(1.04)}to{opacity:.55;transform:scale(.94)}}.scan-status{color:var(--color-text-primary);font-size:16px;font-weight:600;margin:0;text-align:center}.add-biometrics-btn{background:var(--color-gradient);border:none;border-radius:10px;box-shadow:0 4px 12px #3a6ea540;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:transform .2s ease,box-shadow .2s ease}.add-biometrics-btn:hover{box-shadow:0 8px 20px #3a6ea540;transform:translateY(-1px)}.search-wrapper{align-items:center;display:flex;position:relative}.search-icon{color:#1f293780;left:12px;pointer-events:none;position:absolute}.search-input{border:1px solid var(--color-border);border-radius:10px;font-family:Inter;font-size:14px;outline:none;padding:9px 12px 9px 36px;transition:border-color .2s ease,box-shadow .2s ease;width:160px}.search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #3a6ea526}.search-input::placeholder{color:#1f293780}.filter-wrapper{align-items:center;display:flex}.filter-select{background:#fffffff2;border:1px solid var(--color-border);border-radius:10px;cursor:pointer;font-family:Inter;font-size:14px;outline:none;padding:10px 14px;transition:border-color .2s ease,box-shadow .2s ease;width:160px}.filter-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #3a6ea526}.export-csv-btn{align-items:center;background:var(--color-gradient);border:none;border-radius:10px;box-shadow:0 4px 12px #3a6ea540;color:#fff;cursor:pointer;display:flex;font-family:Inter;font-size:14px;font-weight:600;gap:6px;height:36px;justify-content:center;line-height:22px;padding:0 12px;transition:transform .2s ease,box-shadow .2s ease;width:139px}.export-csv-btn:hover{box-shadow:0 6px 16px #3a6ea54d;transform:translateY(-1px)}.export-csv-btn .icon{color:#fff}.daily-attendance{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1100px;width:100%}.daily-attendance-header{display:flex;flex-direction:column;gap:20px}.page-title{color:var(--color-text-primary);font-family:Inter;font-size:24px;font-weight:600;margin:0}.daily-attendance-controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.filter-value-input{border:1px solid var(--color-border);border-radius:10px;font-family:Inter;font-size:14px;outline:none;padding:8px 12px;transition:border-color .2s ease,box-shadow .2s ease}.filter-value-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #3a6ea526}.daily-attendance-table{position:relative;width:100%}.history{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1100px;width:100%}.history-controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.history-table{position:relative;width:100%}.table-header{display:flex;justify-content:flex-end;margin-bottom:12px}*{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#3a6ea5;--color-secondary:#6c8ebf;--color-accent:#fdd85d;--color-danger:#e4766a;--color-background:#f7f9fc;--color-card:#fff;--color-border:#e3e8ef;--color-text-primary:#1f2a37;--color-text-secondary:#6b7280;--color-gradient:linear-gradient(135deg,#3a6ea5,#6c8ebf)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f7f9fc;background-color:var(--color-background);color:#1f2a37;color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
/*# sourceMappingURL=main.c04af356.css.map*/