*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.loading-container{color:#fff;font-size:1.5rem;height:100vh}.loading-container,.login-container{align-items:center;display:flex;justify-content:center}.login-container{background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);min-height:100vh;padding:20px}.login-card{animation:slideUp .5s ease;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:40px;width:100%}.register-card{max-width:500px}.lab-logo{margin-bottom:10px;text-align:center}.logo-icon{animation:pulse 2s infinite;display:inline-block;font-size:3.5rem}.login-card h1{color:#1a1a2e;font-size:1.8rem;font-weight:700;margin-bottom:5px;text-align:center}.login-card h2{color:#666;font-size:1.1rem;font-weight:400;margin-bottom:30px;text-align:center}.form-group input{background:#f8f9fa}.form-group input:focus{background:#fff;border-color:#0f3460;box-shadow:0 0 0 4px #0f34601a}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-group input::placeholder{color:#999}.form-group select,.form-select{-webkit-appearance:none;appearance:none;background:#f8f9fa;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23666' d='M6 8 1 3h10z'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;font-size:1rem;padding:14px 16px;transition:all .3s ease;width:100%}.form-group select:focus,.form-select:focus{background-color:#fff;border-color:#0f3460;box-shadow:0 0 0 4px #0f34601a;outline:none}.form-group select:disabled,.form-select:disabled{background-color:#f5f5f5;cursor:not-allowed}.field-hint{font-size:.8rem;margin-top:6px}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.login-button{background:linear-gradient(135deg,#1a1a2e,#0f3460);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-top:10px;overflow:hidden;padding:16px;position:relative;transition:all .3s ease;width:100%}.login-button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.login-button:hover:not(:disabled):before{left:100%}.login-button:hover:not(:disabled){box-shadow:0 10px 30px #0f346066;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.7}.error-message{animation:shake .5s ease;background:linear-gradient(135deg,#fee,#fdd)}.error-message,.success-message{border-radius:10px;font-size:.95rem;margin-bottom:20px;padding:14px 16px}.success-message{animation:slideDown .3s ease;background:linear-gradient(135deg,#efe,#dfd);border-left:4px solid #2a7;color:#2a7}.auth-links{border-top:1px solid #eee;margin-top:25px;padding-top:20px;text-align:center}.auth-links p{color:#666;font-size:.95rem}.auth-links a{color:#0f3460;font-weight:600;text-decoration:none;transition:color .3s ease}.auth-links a:hover{color:#1a1a2e;text-decoration:underline}.login-footer{margin-top:25px;text-align:center}.footer-text{color:#888;font-size:.85rem;line-height:1.5}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@media (max-width:768px){.login-card{margin:10px;padding:30px 25px}.form-row{gap:0;grid-template-columns:1fr}.login-card h1{font-size:1.5rem}.logo-icon{font-size:2.5rem}}.navbar{background:linear-gradient(135deg,#1a1a2e,#16213e);box-shadow:0 4px 20px #0000004d;padding:0 20px;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.navbar-container{align-items:center;display:flex;height:70px;justify-content:space-between;margin:0 auto;max-width:1600px}.navbar-brand{align-items:center;color:#fff;display:flex;gap:12px;text-decoration:none}.brand-icon{animation:pulse 2s infinite;font-size:2rem}.brand-text{display:flex;flex-direction:column}.brand-title{font-size:1.2rem;font-weight:700;letter-spacing:.5px}.brand-subtitle{font-size:.7rem;letter-spacing:1px;opacity:.8;text-transform:uppercase}.navbar-menu{align-items:center;display:flex;gap:30px}.navbar-links{display:flex;gap:10px}.nav-link{align-items:center;border-radius:8px;color:#fffc;display:flex;font-weight:500;gap:8px;padding:10px 16px;text-decoration:none;transition:all .3s ease}.nav-link:hover{background:#ffffff1a;color:#fff}.nav-link.active{background:#ffffff26;color:#fff}.nav-icon{font-size:1.1rem}.navbar-right{align-items:center;display:flex;gap:20px}.navbar-time{align-items:flex-end;background:#ffffff1a;border-radius:8px;display:flex;flex-direction:column;padding:8px 15px}.navbar-time .time-display{color:#fff;font-family:Courier New,monospace;font-size:1rem;font-weight:700}.navbar-time .date-display{color:#ffffffb3;font-size:.7rem}.navbar-user{gap:10px}.navbar-user,.user-avatar{align-items:center;display:flex}.user-avatar{background:linear-gradient(135deg,#28a745,#20963a);border-radius:50%;color:#fff;font-size:1.1rem;font-weight:700;height:40px;justify-content:center;width:40px}.user-info{display:flex;flex-direction:column}.user-name{color:#fff;font-size:.9rem;font-weight:600}.user-role{color:#fff9;font-size:.75rem}.logout-btn{align-items:center;background:linear-gradient(135deg,#dc3545,#c82333);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:6px;padding:10px 18px;transition:all .3s ease}.logout-btn:hover{box-shadow:0 5px 15px #dc354566;transform:translateY(-2px)}.logout-icon{font-size:1rem}.mobile-menu-btn{background:#0000;border:none;cursor:pointer;display:none;padding:10px}.hamburger{display:block;position:relative}.hamburger,.hamburger:after,.hamburger:before{background:#fff;height:2px;transition:all .3s ease;width:25px}.hamburger:after,.hamburger:before{content:"";position:absolute}.hamburger:before{top:-8px}.hamburger:after{bottom:-8px}.hamburger.open{background:#0000}.hamburger.open:before{top:0;transform:rotate(45deg)}.hamburger.open:after{bottom:0;transform:rotate(-45deg)}@media (max-width:1024px){.navbar-time{display:none}}@media (max-width:768px){.mobile-menu-btn{display:block}.navbar-menu{background:linear-gradient(135deg,#1a1a2e,#16213e);box-shadow:0 10px 30px #0000004d;flex-direction:column;gap:20px;left:0;opacity:0;padding:20px;position:fixed;right:0;top:70px;transform:translateY(-100%);transition:all .3s ease;visibility:hidden}.navbar-menu.open{opacity:1;transform:translateY(0);visibility:visible}.navbar-links{flex-direction:column;width:100%}.nav-link{justify-content:center;padding:15px;width:100%}.navbar-right{flex-direction:column;gap:15px;width:100%}.navbar-time{align-items:center;display:flex}.navbar-time,.navbar-user{justify-content:center;width:100%}.navbar-user{background:#ffffff0d;border-radius:8px;padding:15px}.logout-btn{justify-content:center;width:100%}}@media (max-width:480px){.brand-title{font-size:1rem}.brand-subtitle{display:none}}.dashboard-page{background:#f5f7fa;min-height:100vh}.dashboard-wrapper{margin:0 auto;max-width:900px;padding:24px}.dashboard-main{display:flex;flex-direction:column;gap:24px}.status-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;padding:24px}.status-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.status-header h2{color:#1a1a2e;font-size:18px;font-weight:600;margin:0}.date-display{color:#64748b;font-size:14px}.status-content{text-align:center}.status-indicator{align-items:center;border-radius:8px;display:inline-flex;gap:12px;margin-bottom:16px;padding:16px 32px}.status-indicator.present{background:#f8faf9;border:1px solid #d1d9d5}.status-indicator.absent{background:#faf8f8;border:1px solid #d9d1d1}.status-indicator.not-marked{background:#fffbeb;border:1px solid #fde68a}.status-icon{font-size:24px}.status-indicator.present .status-icon{color:#4a7c6f}.status-indicator.absent .status-icon{color:#8b5c5c}.status-indicator.not-marked .status-icon{color:#d97706}.status-text{font-size:20px;font-weight:600}.status-indicator.present .status-text{color:#4a7c6f}.status-indicator.absent .status-text{color:#8b5c5c}.status-indicator.not-marked .status-text{color:#d97706}.status-note{color:#64748b;font-size:14px;margin-bottom:20px}.status-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.weekend-notice{padding:24px}.weekend-icon{background:#f1f5f9;border-radius:6px;display:inline-block;font-weight:500;margin-bottom:12px;padding:8px 16px}.weekend-icon,.weekend-notice p{color:#64748b;font-size:14px}.btn{border-radius:6px;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#1a1a2e;color:#fff}.btn-primary:hover:not(:disabled){background:#2d2d44}.btn-secondary:hover:not(:disabled){background:#475569}.btn-outline{background:#fff;border:1px solid #e2e8f0;color:#1a1a2e}.btn-outline:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.btn-sm{background:#f1f5f9;border:1px solid #e2e8f0;color:#475569;font-size:13px;padding:8px 16px}.btn-sm:hover{background:#e2e8f0}.btn-link{background:none;border:none;color:#dc2626;cursor:pointer;font-size:13px;padding:4px 8px}.btn-link:hover{text-decoration:underline}.message-toast{border-radius:6px;font-size:14px;margin-top:16px;padding:12px 16px;text-align:center}.message-toast.success{background:#f8faf9;border:1px solid #d1d9d5;color:#4a7c6f}.message-toast.error{background:#faf8f8;border:1px solid #d9d1d1;color:#8b5c5c}.record-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;padding:24px}.record-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.record-header h2{color:#1a1a2e;font-size:18px;font-weight:600;margin:0}.record-controls{display:flex;gap:8px}.select-input{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#1a1a2e;cursor:pointer;font-size:14px;padding:8px 12px}.select-input:focus{border-color:#1a1a2e;outline:none}.stat-box{background:#f8fafc;border-radius:8px;padding:16px}.stat-box.present{background:#f8faf9;border:1px solid #e2e8e5}.stat-box.absent{background:#faf8f8;border:1px solid #e8e2e2}.stat-box.not-marked{background:#fffbeb;border:1px solid #fde68a}.stat-value{color:#1a1a2e;display:block;font-size:24px;font-weight:600}.stat-box.present .stat-value{color:#4a7c6f}.stat-box.absent .stat-value{color:#8b5c5c}.stat-box.not-marked .stat-value{color:#d97706}.stat-label{color:#64748b;display:block;font-size:12px;margin-top:4px}.export-buttons{gap:8px;margin-bottom:20px}.attendance-table-wrapper{overflow-x:auto}.attendance-table{border-collapse:collapse;width:100%}.attendance-table th{border-bottom:1px solid #e2e8f0;color:#64748b;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase}.attendance-table td{border-bottom:1px solid #f1f5f9;color:#1a1a2e;font-size:14px;padding:12px}.attendance-table tr:hover{background:#f8fafc}.status-badge{border-radius:4px;font-size:12px;font-weight:500;padding:4px 12px}.status-badge.present{background:#f8faf9;border:1px solid #d1d9d5;color:#4a7c6f}.status-badge.absent{background:#faf8f8;border:1px solid #d9d1d1;color:#8b5c5c}.status-badge.not-marked{background:#fffbeb;border:1px solid #fde68a;color:#d97706}.time-cell{color:#64748b;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:13px}.additional-actions{border-top:1px solid #e2e8f0;margin-top:20px;padding-top:16px}.btn-large{font-size:16px;padding:14px 32px}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(5,1fr);margin-bottom:20px}.empty-state{color:#64748b;padding:40px;text-align:center}.modal-overlay{background:#00000080}.modal-content{border-radius:12px;max-height:90vh;max-width:480px;overflow-y:auto}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h3{color:#1a1a2e;font-size:18px;font-weight:600;margin:0}.modal-close{background:none;color:#64748b;font-size:24px;line-height:1;padding:0}.modal-close:hover{color:#1a1a2e}.modal-body{padding:24px}.modal-note{color:#64748b;font-size:14px;margin-bottom:16px}.date-checkboxes{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,1fr);margin-bottom:20px}.date-checkbox{align-items:center;background:#f8fafc;border-radius:6px;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:10px 12px;transition:background .2s}.date-checkbox:hover{background:#f1f5f9}.date-checkbox input{cursor:pointer;height:16px;width:16px}.form-group{margin-top:16px}.form-group label{color:#1a1a2e;font-size:14px;font-weight:500}.text-input{border:1px solid #e2e8f0;border-radius:6px;font-size:14px;padding:10px 12px;width:100%}.text-input:focus{border-color:#1a1a2e;outline:none}.modal-footer{border-top:1px solid #e2e8f0;padding:16px 24px}@media (max-width:900px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){.dashboard-wrapper{padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.status-header{gap:8px}.record-header,.status-header{align-items:flex-start;flex-direction:column}.status-actions{flex-direction:column}.status-actions .btn{width:100%}.date-checkboxes{grid-template-columns:1fr}}.admin-dashboard-page{background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);min-height:100vh}.admin-dashboard-container{margin:0 auto;max-width:1600px;padding:20px}.admin-actions-bar{display:flex;gap:12px;justify-content:flex-end;margin-bottom:20px}.add-user-button{background:#4a7c6f;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.add-user-button:hover{background:#3d6b5f;box-shadow:0 4px 12px #4a7c6f4d}.settings-button{background:#64748b;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.settings-button:hover{background:#475569;box-shadow:0 4px 12px #64748b4d}.logout-button{background:#8b5c5c;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.logout-button:hover{background:#7a4d4d;box-shadow:0 4px 12px #8b5c5c4d}.register-form-card{animation:slideDown .3s ease;background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;margin-bottom:25px;padding:30px}.register-form-card h2{color:#1a1a2e;font-size:1.4rem;margin-bottom:25px}.register-form .form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:20px}.register-form .form-group{margin-bottom:0}.register-form .form-group label{color:#333;display:block;font-size:.9rem;font-weight:600;margin-bottom:8px}.register-form .form-group input,.register-form .form-group select{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;padding:12px 15px;transition:all .3s ease;width:100%}.register-form .form-group input:focus,.register-form .form-group select:focus{border-color:#1a1a2e;box-shadow:0 0 0 3px #1a1a2e1a;outline:none}.submit-button{background:linear-gradient(135deg,#1a1a2e,#0f3460);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:10px;padding:14px 30px;transition:all .3s ease;width:100%}.submit-button:hover{box-shadow:0 5px 15px #0f346066;transform:translateY(-2px)}.success-message{background:#f8faf9;border:1px solid #d1d9d5;border-left:3px solid #4a7c6f;border-radius:8px;color:#4a7c6f;margin-top:15px}.error-message{background:#faf8f8;border:1px solid #d9d1d1;border-left:3px solid #8b5c5c;border-radius:8px;color:#8b5c5c;margin-top:15px}.settings-form-card{animation:slideDown .3s ease;background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;margin-bottom:25px;padding:30px}.settings-form-card h2{border-bottom:2px solid #e9ecef;color:#1a1a2e;font-size:1.4rem;margin-bottom:25px;padding-bottom:15px}.settings-section{margin-bottom:20px}.settings-section h3{color:#1a1a2e;font-size:1.1rem;margin-bottom:10px}.settings-description{border:1px solid #e2e8f0;border-left:3px solid #5a7a8a;border-radius:8px;color:#5a6a7a;font-size:.95rem;line-height:1.6}.current-setting,.settings-description{background:#f8f9fa;margin-bottom:20px;padding:15px}.current-setting{align-items:center;border-radius:8px;display:flex;flex-wrap:wrap;gap:12px}.setting-label{color:#666;font-weight:500}.setting-value{border-radius:20px;font-weight:700;padding:8px 16px}.setting-value.set{background:#f8faf9;border:1px solid #d1d9d5;color:#4a7c6f}.setting-value.not-set{background:#fdfcf8;border:1px solid #e8e4d9;color:#8a7a5a}.settings-form{margin-bottom:20px}.settings-form .form-group{margin-bottom:15px}.settings-form .form-group label{color:#333;display:block;font-size:.9rem;font-weight:600;margin-bottom:8px}.settings-form .form-group input{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;max-width:300px;padding:12px 15px;transition:all .3s ease;width:100%}.settings-form .form-group input:focus{border-color:#1a1a2e;box-shadow:0 0 0 3px #1a1a2e1a;outline:none}.settings-buttons{display:flex;flex-wrap:wrap;gap:12px}.save-button{background:#1a1a2e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.save-button:hover{background:#2d2d44;box-shadow:0 4px 12px #1a1a2e4d}.clear-button{background:#8b5c5c;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.clear-button:hover{background:#7a4d4d;box-shadow:0 4px 12px #8b5c5c4d}.settings-info{background:#f8f9fa;border-radius:8px;margin-top:20px;padding:15px}.settings-info strong{color:#1a1a2e;display:block;margin-bottom:10px}.settings-info ul{color:#666;margin:0;padding-left:20px}.settings-info ul li{line-height:1.5;margin-bottom:5px}.admin-dashboard-content{display:flex;flex-direction:column;gap:25px}.stats-overview{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.stat-card{align-items:center;background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;display:flex;gap:20px;padding:25px;transition:all .3s ease}.stat-card:hover{box-shadow:0 15px 50px #00000040;transform:translateY(-5px)}.stat-icon{align-items:center;background:linear-gradient(135deg,#1a1a2e,#0f3460);border-radius:12px;color:#fff;display:flex;font-size:1.8rem;height:60px;justify-content:center;width:60px}.stat-card.present .stat-icon{background:#4a7c6f}.stat-card.absent .stat-icon{background:#8b5c5c}.stat-card.monthly .stat-icon{background:#5a7a8a}.stat-card.not-marked .stat-icon{background:#d97706}.stat-info{flex:1 1}.stat-number{color:#1a1a2e;font-size:2.2rem;font-weight:700}.stat-label{color:#666;font-size:.95rem;margin-top:5px}.report-section{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;padding:30px}.report-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:25px}.report-header h2{color:#1a1a2e;font-size:1.5rem;margin:0}.report-controls{align-items:center;display:flex;gap:12px}.report-controls select{background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:1rem;padding:12px 15px;transition:all .3s ease}.report-controls select:focus{border-color:#1a1a2e;outline:none}.refresh-btn{background:#64748b;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.2rem;padding:12px 15px;transition:all .3s}.refresh-btn:hover{background:#475569;transform:rotate(180deg)}.export-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:25px}.export-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:8px;padding:12px 20px;transition:all .3s ease}.export-btn.csv{background:#4a7c6f;color:#fff}.export-btn.csv:hover{background:#3d6b5f}.export-btn.detailed{background:#5a7a8a;color:#fff}.export-btn.detailed:hover{background:#4a6a7a}.export-btn.pdf{background:#8b5c5c;color:#fff}.export-btn.pdf:hover{background:#7a4d4d}.export-btn:hover{box-shadow:0 4px 12px #00000026}.loading-state{color:#666}.loading-spinner-large{border:4px solid #e0e0e0;border-top-color:#1a1a2e}.report-summary{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;display:flex;flex-wrap:wrap;gap:30px;margin-bottom:25px;padding:20px}.summary-item{display:flex;gap:8px}.summary-label{color:#666;font-weight:500}.summary-value{color:#1a1a2e;font-weight:700}.current-month-badge{background:#fdfcf8;border:1px solid #e8e4d9;border-radius:20px;color:#8a7a5a}.current-month-badge,.go-live-badge{font-size:.8rem;font-weight:600;padding:6px 12px}.go-live-badge{background:#f8faf9;border:1px solid #d1d9d5;border-radius:20px;color:#4a7c6f}.field-hint{color:#888;display:block;font-size:.85rem;font-style:italic;margin:10px 0}.report-table-container{overflow-x:auto}.report-table{border-collapse:collapse;width:100%}.report-table th{background:linear-gradient(135deg,#1a1a2e,#0f3460);color:#fff;font-size:.95rem;font-weight:600;padding:15px;text-align:left;white-space:nowrap}.report-table th:first-child{border-radius:10px 0 0 0}.report-table th:last-child{border-radius:0 10px 0 0}.report-table td{border-bottom:1px solid #e9ecef;font-size:.95rem;padding:15px}.report-table tbody tr{transition:background .2s}.report-table tbody tr:hover{background:#f8f9fa}.name-cell{color:#1a1a2e;font-weight:600}.email-cell{color:#666;font-size:.9rem}.present-count{color:#4a7c6f;font-weight:700}.absent-count{color:#8b5c5c;font-weight:700}.not-marked-count{color:#d97706;font-weight:700}.percentage-cell{display:flex;justify-content:center}.percentage-badge{border-radius:20px;display:inline-block;font-size:.9rem;font-weight:700;padding:6px 16px}.percentage-badge.good{background:#f8faf9;border:1px solid #d1d9d5;color:#4a7c6f}.percentage-badge.warning{background:#fdfcf8;border:1px solid #e8e4d9;color:#8a7a5a}.percentage-badge.poor{background:#faf8f8;border:1px solid #d9d1d1;color:#8b5c5c}.delete-btn{background:#8b5c5c;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;opacity:.85;padding:8px 12px;transition:all .2s ease}.delete-btn:hover{background:#7a4d4d;box-shadow:0 3px 10px #8b5c5c4d;opacity:1}.report-footer-stats{grid-gap:20px;border-top:2px solid #e9ecef;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:25px;padding-top:25px}.footer-stat{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;padding:20px;text-align:center}.footer-stat-value{color:#1a1a2e;display:block;font-size:2rem;font-weight:700}.footer-stat-label{color:#666;display:block;font-size:.9rem;margin-top:5px}.no-data{color:#888;font-size:1.1rem;padding:60px 20px;text-align:center}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media (max-width:1024px){.admin-dashboard-header{flex-direction:column;gap:20px;text-align:center}.header-left{align-items:center}.lab-branding{flex-direction:column;gap:10px}.header-right{flex-wrap:wrap;justify-content:center}.report-header{align-items:flex-start;flex-direction:column}.report-controls{flex-wrap:wrap;width:100%}.report-controls select{flex:1 1;min-width:150px}}@media (max-width:768px){.admin-dashboard-container{padding:15px}.register-form .form-row{grid-template-columns:1fr}.stats-overview{grid-template-columns:1fr 1fr}.stat-card{text-align:center}.export-buttons,.stat-card{flex-direction:column}.export-btn{justify-content:center;width:100%}.report-summary{flex-direction:column;gap:10px}.report-table-container{margin:0 -15px;padding:0 15px}.report-table{min-width:700px}.report-footer-stats{grid-template-columns:1fr}}@media (max-width:480px){.stats-overview{grid-template-columns:1fr}.header-right{flex-direction:column;width:100%}.add-user-button,.current-time,.logout-button{width:100%}}.tab-navigation{background:#e9ecef;border-radius:12px 12px 0 0;box-shadow:0 -5px 20px #0000001a;display:flex;gap:0;margin-bottom:0;overflow:hidden}.tab-btn{background:#e9ecef;border-bottom:3px solid #0000;color:#1a1a2e;padding:18px 24px}.tab-btn:hover{background:#dde2e6;color:#1a1a2e}.tab-btn.active{border-bottom:3px solid #4a7c6f}.today-log-section{border-radius:0 0 16px 16px;margin-top:0}.date-subtitle{color:#666;font-size:.95rem;font-weight:400;margin-top:5px}.today-log-table .status-row.present{background:#4a7c6f0d}.today-log-table .status-row.absent{background:#8b5c5c0d}.today-log-table .status-row.not_marked{background:#d977060d}.status-badge{border-radius:20px;display:inline-block;font-size:.85rem;font-weight:600;padding:6px 14px;text-transform:capitalize}.status-badge.present{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.status-badge.absent{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.status-badge.not_marked{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.checkin-time-cell{color:#1a1a2e;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,monospace;font-size:.95rem}.checkin-time-cell strong{background:#f0fdf4;border-radius:6px;color:#166534;font-weight:600;padding:4px 10px}.no-time{color:#9ca3af}.remarks-cell{color:#666;font-size:.9rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-details-btn{background:#5a7a8a;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 14px;transition:all .2s ease}.view-details-btn:hover{background:#4a6a7a;box-shadow:0 3px 10px #5a7a8a4d;transform:translateY(-1px)}.weekend-notice{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.weekend-notice .weekend-icon{font-size:3rem;margin-bottom:15px}.weekend-notice p{color:#666;font-size:1.1rem;margin:0}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalSlideIn .3s ease;background:#fff;border-radius:16px;box-shadow:0 25px 80px #0000004d;display:flex;flex-direction:column;max-height:85vh;max-width:900px;overflow:hidden;width:100%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.member-detail-modal .modal-header{align-items:flex-start;background:linear-gradient(135deg,#1a1a2e,#0f3460);color:#fff;display:flex;justify-content:space-between;padding:25px 30px}.member-detail-modal .modal-header h3{font-size:1.4rem;font-weight:600;margin:0}.modal-subtitle{font-size:.9rem;margin:8px 0 0;opacity:.8}.modal-close{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:36px;justify-content:center;transition:all .2s;width:36px}.modal-close:hover{background:#ffffff4d;transform:rotate(90deg)}.modal-body{flex:1 1;overflow-y:auto;padding:25px 30px}.modal-body h4{border-bottom:2px solid #e9ecef;color:#1a1a2e;font-size:1.1rem;margin:25px 0 15px;padding-bottom:10px}.modal-footer{background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;gap:12px;justify-content:flex-end;padding:20px 30px}.member-stats-summary{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.member-stats-summary .stat-item{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;padding:20px 15px;text-align:center}.member-stats-summary .stat-item .stat-value{color:#1a1a2e;display:block;font-size:1.8rem;font-weight:700}.member-stats-summary .stat-item .stat-label{color:#666;display:block;font-size:.85rem;margin-top:5px}.member-stats-summary .stat-item.present{background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.member-stats-summary .stat-item.present .stat-value{color:#166534}.member-stats-summary .stat-item.absent{background:linear-gradient(135deg,#fef2f2,#fecaca)}.member-stats-summary .stat-item.absent .stat-value{color:#991b1b}.detail-table-container{border:1px solid #e9ecef;border-radius:8px;max-height:400px;overflow-y:auto}.detail-table{border-collapse:collapse;width:100%}.detail-table th{background:#5a7a8a;color:#fff;font-size:.9rem;font-weight:600;padding:12px 15px;position:-webkit-sticky;position:sticky;text-align:left;top:0}.detail-table td{border-bottom:1px solid #e9ecef;font-size:.9rem;padding:12px 15px}.detail-table tbody tr:hover{background:#f8f9fa}.detail-table tbody tr.present{background:#4a7c6f08}.detail-table tbody tr.absent{background:#8b5c5c08}.no-records-message{color:#888;font-size:1rem;padding:40px 20px;text-align:center}.btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.btn-secondary{background:#64748b;color:#fff}.btn-secondary:hover{background:#475569}.export-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.tab-navigation{flex-direction:column}.tab-btn{border-bottom:none;border-left:3px solid #0000}.tab-btn.active{border-bottom:none;border-left:3px solid #1a1a2e}.member-stats-summary{grid-template-columns:repeat(2,1fr)}.modal-content{max-height:90vh}.member-detail-modal .modal-header,.modal-body{padding:20px}.modal-footer{padding:15px 20px}.detail-table-container{max-height:300px}}@media (max-width:480px){.member-stats-summary{gap:10px;grid-template-columns:1fr 1fr}.member-stats-summary .stat-item{padding:15px 10px}.member-stats-summary .stat-item .stat-value{font-size:1.4rem}}.profile-page{background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);min-height:100vh}.profile-container{margin:0 auto;max-width:800px;padding:30px 20px}.profile-header{align-items:center;background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;display:flex;gap:25px;margin-bottom:25px;padding:30px}.profile-avatar{align-items:center;background:linear-gradient(135deg,#1a1a2e,#0f3460);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:2.5rem;font-weight:700;height:100px;justify-content:center;width:100px}.profile-header-info h1{color:#1a1a2e;font-size:1.8rem;margin:0 0 5px}.profile-role{color:#28a745;font-size:.95rem;font-weight:600;margin:0 0 5px}.profile-email{color:#666;font-size:.9rem;margin:0}.profile-stats{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(4,1fr);margin-bottom:25px}.stat-box{align-items:center;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;gap:8px;padding:20px;text-align:center;transition:transform .3s ease}.stat-box:hover{transform:translateY(-5px)}.stat-box .stat-icon{font-size:1.5rem}.stat-box .stat-value{color:#1a1a2e;font-size:1.8rem;font-weight:700}.stat-box .stat-label{color:#666;font-size:.8rem}.profile-tabs{display:flex;gap:10px;margin-bottom:20px}.tab-btn{background:#ffffff1a;border:none;border-radius:10px;color:#ffffffb3;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:15px 20px;transition:all .3s ease}.tab-btn:hover{background:#fff3;color:#fff}.tab-btn.active{background:#fff;color:#1a1a2e}.message{border-radius:10px;font-weight:500;margin-bottom:20px;padding:15px 20px}.message.success{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-left:4px solid #28a745;color:#155724}.message.error{background:linear-gradient(135deg,#f8d7da,#f5c6cb);border-left:4px solid #dc3545;color:#721c24}.profile-card{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;padding:30px}.profile-card h2{border-bottom:2px solid #e9ecef;color:#1a1a2e;font-size:1.4rem;margin:0 0 25px;padding-bottom:15px}.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-size:.9rem;font-weight:600;margin-bottom:8px}.form-group input{border:2px solid #e0e0e0;border-radius:10px;box-sizing:border-box;font-size:1rem;padding:14px 16px;transition:all .3s ease;width:100%}.form-group input:focus{border-color:#1a1a2e;box-shadow:0 0 0 3px #1a1a2e1a;outline:none}.form-group input.disabled{background:#f5f5f5;color:#888;cursor:not-allowed}.form-group small{color:#888;display:block;font-size:.8rem;margin-top:5px}.save-btn{background:linear-gradient(135deg,#1a1a2e,#0f3460);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:10px;padding:15px;transition:all .3s ease;width:100%}.save-btn:hover:not(:disabled){box-shadow:0 5px 15px #0f346066;transform:translateY(-2px)}.save-btn:disabled{cursor:not-allowed;opacity:.7}.loading-state{color:#fff;padding:60px 20px;text-align:center}.loading-spinner-large{animation:spin 1s linear infinite;border:4px solid #fff3;border-radius:50%;border-top-color:#fff;height:50px;margin:0 auto 20px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.profile-header{flex-direction:column;text-align:center}.profile-stats{grid-template-columns:repeat(2,1fr)}.profile-tabs{flex-direction:column}}@media (max-width:480px){.profile-container{padding:15px}.profile-stats{grid-template-columns:1fr}.profile-avatar{font-size:2rem;height:80px;width:80px}.profile-header-info h1{font-size:1.4rem}}.App{min-height:100vh}.error-message{background-color:#fee;border-left:4px solid #c33;color:#c33}.error-message,.success-message{border-radius:6px;margin-bottom:15px;padding:12px}.success-message{background-color:#efe;border-left:4px solid #3a3;color:#3a3}.loading{color:#666;font-size:1.2rem;padding:40px;text-align:center}
/*# sourceMappingURL=main.4f07c6e3.css.map*/