:root{--bg-primary:#020617;--bg-secondary:#0f172a99;--bg-tertiary:#0f172a66;--bg-card:#0f172acc;--bg-hover:#94a3b81a;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--border-color:#94a3b833;--border-hover:#94a3b84d;--shadow-sm:#0000004d;--shadow-md:#0006;--shadow-lg:#00000080;--input-bg:#0f172a99;--input-border:#94a3b833;--color-success:#10b981;--color-success-bg:#10b9811a;--color-success-border:#10b98133;--color-error:#ef4444;--color-error-bg:#ef44441a;--color-error-border:#ef444433;--color-warning:#f59e0b;--color-warning-bg:#f59e0b1a;--color-warning-border:#f59e0b33;--color-info:#3b82f6;--color-info-bg:#3b82f61a;--color-info-border:#3b82f633;--gradient-primary:linear-gradient(135deg,#667eea,#764ba2);--gradient-success:linear-gradient(135deg,#10b981,#059669);--gradient-error:linear-gradient(135deg,#ef4444,#dc2626);--gradient-warning:linear-gradient(135deg,#f59e0b,#d97706)}[data-theme=light]{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-card:#fff;--bg-hover:#0f172a0d;--text-primary:#0f172a;--text-secondary:#334155;--text-tertiary:#64748b;--border-color:#cbd5e1;--border-hover:#e2e8f0;--shadow-sm:#0000000d;--shadow-md:#0000001a;--shadow-lg:#00000026;--input-bg:#fff;--input-border:#e2e8f0;--color-success:#16a34a;--color-success-bg:#16a34a1a;--color-success-border:#16a34a33;--color-error:#dc2626;--color-error-bg:#dc26261a;--color-error-border:#dc262633;--color-warning:#d97706;--color-warning-bg:#d977061a;--color-warning-border:#d9770633;--color-info:#2563eb;--color-info-bg:#2563eb1a;--color-info-border:#2563eb33;--gradient-primary:linear-gradient(135deg,#0ea5e9,#0284c7);--gradient-success:linear-gradient(135deg,#16a34a,#15803d);--gradient-error:linear-gradient(135deg,#dc2626,#b91c1c);--gradient-warning:linear-gradient(135deg,#d97706,#b45309)}.dark-mode{--bg-primary:#020617;--bg-secondary:#0f172a99;--bg-tertiary:#0f172a66;--bg-card:#0f172acc;--bg-hover:#94a3b81a;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--border-color:#94a3b833;--border-hover:#94a3b84d;--shadow-sm:#0000004d;--shadow-md:#0006;--shadow-lg:#00000080;--input-bg:#0f172a99;--input-border:#94a3b833}.light-mode{--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--bg-card:#fff;--bg-hover:#0f172a0d;--text-primary:#0f172a;--text-secondary:#64748b;--text-tertiary:#94a3b8;--border-color:#e2e8f0;--border-hover:#cbd5e1;--shadow-sm:#0000000d;--shadow-md:#0000001a;--shadow-lg:#00000026;--input-bg:#fff;--input-border:#e2e8f0}.card{background:#0f172acc;background:var(--bg-card);border:1px solid #94a3b833;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 8px #0000004d;box-shadow:0 2px 8px var(--shadow-sm);padding:24px;transition:all .3s ease}.card:hover{border-color:#94a3b84d;border-color:var(--border-hover);box-shadow:0 4px 16px #0006;box-shadow:0 4px 16px var(--shadow-md)}.btn-secondary{background:#0f172a99;color:#f1f5f9}.btn-secondary:hover:not(:disabled){background:#94a3b81a;border-color:#94a3b84d}.input-field{background:#0f172a99;background:var(--input-bg);border:1px solid #94a3b833;border:1px solid var(--input-border);border-radius:10px;color:#f1f5f9;color:var(--text-primary);font-size:14px;padding:12px 16px;transition:all .2s;width:100%}.input-field:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.input-field::placeholder{color:#64748b;color:var(--text-tertiary)}.table-container{background:#0f172acc;border:1px solid #94a3b833;box-shadow:0 2px 8px #0000004d}.page-title{color:#f1f5f9;color:var(--text-primary);font-size:32px;font-weight:700;margin:0 0 8px}.page-subtitle{color:#94a3b8;color:var(--text-secondary);font-size:16px;margin:0}.all-requests-page,.attendance-page,.attestation-page,.dashboard-container,.departments-page,.leave-page,.my-requests-page,.notification-settings-page,.notifications-page,.page-container,.permissions-page,.profile-page,.salary-page,.settings-page,.users-page{background:var(--bg-primary);color:var(--text-primary);min-height:100vh}.page-header h1,.page-title{color:var(--text-primary);font-size:32px;font-weight:700;margin:0 0 8px}.page-header p,.page-subtitle{color:var(--text-secondary);font-size:16px;margin:0}.card,.data-card,.info-card,.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 8px var(--shadow-sm);padding:24px;transition:all .3s ease}.card:hover,.stat-card:hover{border-color:var(--border-hover);box-shadow:0 4px 16px var(--shadow-md);transform:translateY(-2px)}.table-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 8px var(--shadow-sm);overflow:hidden}table{border-collapse:collapse;width:100%}thead{background:var(--bg-secondary);border-bottom:2px solid var(--border-color)}th{color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.8px;padding:14px 18px;text-align:left;text-transform:uppercase}tbody tr{border-bottom:1px solid var(--border-color);transition:all .2s}tbody tr:hover{background:var(--bg-hover)}tbody tr:last-child{border-bottom:none}td{color:var(--text-primary);font-size:14px;padding:16px 18px}.form-group input,.form-group select,.form-group textarea{background:var(--input-bg);border:1px solid var(--input-border)}.form-group input[type=month]{background:var(--input-bg)}.form-group input[type=date]{background:var(--input-bg);color:var(--text-primary);font-family:inherit}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-hover)}.btn-success{background:var(--gradient-success)}.btn-success:hover:not(:disabled){box-shadow:0 6px 16px #10b98166;transform:translateY(-2px)}.btn-danger{background:var(--gradient-error);box-shadow:0 4px 12px #ef44444d}.btn-danger:hover:not(:disabled){box-shadow:0 6px 16px #ef444466;transform:translateY(-2px)}.alert,.message{border-radius:10px;font-size:14px;font-weight:500;margin-bottom:24px;padding:14px 18px}.alert-success,.message.success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.alert-error,.message.error{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error)}.alert-warning,.message.warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning)}.alert-info,.message.info{background:var(--color-info-bg);border:1px solid var(--color-info-border);color:var(--color-info)}.badge,.status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px}.badge-pending,.status-pending{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning)}.badge-success,.status-approved{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.badge-error,.status-rejected{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error)}.badge-info,.status-generated{background:var(--color-info-bg);border:1px solid var(--color-info-border);color:var(--color-info)}.loading,.loading-state{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:80px 20px}.empty-state svg{color:var(--text-tertiary)}.modal-content{background:var(--bg-card);box-shadow:0 20px 60px var(--shadow-lg)}.modal-header{border-bottom:1px solid var(--border-color)}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-color);display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.search-icon{left:14px;pointer-events:none}.search-box input{background:var(--input-bg);border:1px solid var(--input-border)}.search-box input::placeholder{color:var(--text-tertiary)}.tab{flex:1 1;padding:12px 20px}.tab:hover{background:var(--bg-hover)}.tab.active{background:var(--gradient-primary)}.stats-grid{grid-gap:24px;gap:24px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.stat-card{padding:24px}.stat-value{font-size:36px;margin:8px 0}.stat-label{color:var(--text-secondary);font-size:14px;font-weight:500}.filters-section{margin-bottom:24px}:root{--bg:#020617;--bg-secondary:#0f172a;--surface:#1e293b;--surface2:#334155;--border:#334155;--text:#f1f5f9;--text2:#94a3b8;--text3:#64748b;--primary:#38bdf8;--accent:#38bdf8;--success:#22c55e;--warning:#f59e0b;--error:#ef4444;--info:#3b82f6}:root[data-theme=light]{--bg:#f8fafc;--bg-secondary:#fff;--surface:#f1f5f9;--surface2:#e2e8f0;--border:#cbd5e1;--text:#0f172a;--text2:#334155;--text3:#64748b;--primary:#0ea5e9;--accent:#0284c7;--success:#16a34a;--warning:#d97706;--error:#dc2626;--info:#2563eb}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#020617;background:var(--bg);color:#f1f5f9;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;min-height:100vh;transition:background-color .2s ease,color .2s ease}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#1e293b;background:var(--surface)}::-webkit-scrollbar-thumb{background:#334155;background:var(--surface2);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#64748b;background:var(--text3)}.toast-container{display:flex;flex-direction:column;gap:8px;position:fixed;right:20px;top:20px;z-index:10000}.toast{animation:slideIn .3s ease;backdrop-filter:none;-webkit-backdrop-filter:none;background:#0f172a;background:var(--bg-secondary);border:1px solid #334155;border:1px solid var(--border);border-radius:8px;color:#f1f5f9;color:var(--text);font-size:14px;max-width:300px;opacity:1;padding:12px 16px}.toast.success{border-left:4px solid #22c55e;border-left:4px solid var(--success)}.toast.error{border-left:4px solid #ef4444;border-left:4px solid var(--error)}.toast.warning{border-left:4px solid #f59e0b;border-left:4px solid var(--warning)}.page-header{background:#0f172a;background:var(--bg-secondary);border:1px solid #334155;border:1px solid var(--border);border-radius:8px;padding:20px}.page-header h1{color:#f1f5f9;color:var(--text);margin:0 0 8px}.page-header p{color:#64748b;color:var(--text3);font-size:14px;margin:0}.notification-container{display:flex;flex-direction:column;gap:10px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:9999}.notification{align-items:center;animation:slideIn .3s ease-out;background:#fff;border-left:4px solid;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;gap:12px;max-width:500px;min-width:300px;padding:16px 20px;pointer-events:all}.notification-success{border-left-color:#48bb78}.notification-success .notification-icon{background:#f0fff4;color:#48bb78}.notification-error{border-left-color:#f56565}.notification-error .notification-icon{background:#fff5f5;color:#f56565}.notification-warning{border-left-color:#ed8936}.notification-warning .notification-icon{background:#fffbf0;color:#ed8936}.notification-info{border-left-color:#4299e1}.notification-info .notification-icon{background:#ebf8ff;color:#4299e1}.notification-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.notification-content p{color:#2d3748;font-size:14px;font-weight:500;line-height:1.4;margin:0}.notification-close{align-items:center;background:#0000;border:none;border-radius:4px;color:#718096;cursor:pointer;display:flex;flex-shrink:0;height:24px;justify-content:center;transition:all .2s;width:24px}.notification-close:hover{background:#f7fafc;color:#2d3748}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}.notification.removing{animation:slideOut .3s ease-in forwards}@media (max-width:768px){.notification-container{left:10px;right:10px;top:10px}.notification{max-width:none;min-width:auto}}.notification-bell-container{display:inline-block}.notification-bell-btn{background:none;border:none;color:#94a3b8;color:var(--text-secondary,#94a3b8);cursor:pointer;padding:8px;position:relative;transition:color .2s}.notification-bell-btn:hover{color:#38bdf8;color:var(--accent,#38bdf8)}.notification-badge{align-items:center;animation:pulse 2s infinite;background:#ef4444;border-radius:8px;display:flex;font-weight:600;height:16px;justify-content:center;min-width:16px;padding:0 4px;right:2px;top:2px}.notification-dropdown{background:#1e293b;background:var(--bg-primary,#1e293b);border:1px solid #334155;border:1px solid var(--border,#334155);box-shadow:0 10px 25px #0000004d;margin-top:8px;max-height:400px;overflow:hidden;top:100%;width:320px}.notification-header{background:#0f172a;background:var(--bg-secondary,#0f172a);border-bottom:1px solid #334155;border-bottom:1px solid var(--border,#334155);padding:12px 16px}.notification-header h4{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:14px;margin:0}.mark-all-read{background:none;border:none;border-radius:4px;color:#38bdf8;color:var(--accent,#38bdf8);cursor:pointer;font-size:12px;padding:4px 8px;transition:background .2s}.mark-all-read:hover{background:#38bdf81a}.notification-list{max-height:320px}.no-notifications{color:#94a3b8;color:var(--text-secondary,#94a3b8);font-size:13px;padding:24px;text-align:center}.notification-item{align-items:flex-start;border-bottom:1px solid #334155;border-bottom:1px solid var(--border,#334155);justify-content:space-between}.notification-item:hover{background:#38bdf80d;background:var(--bg-hover,#38bdf80d)}.notification-title{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:13px;margin:0 0 4px}.notification-message{color:#94a3b8;color:var(--text-secondary,#94a3b8);font-size:12px;margin:0 0 4px}.notification-time{color:#64748b;color:var(--text-tertiary,#64748b);font-size:11px}.mark-read-btn{background:none;border:none;color:#38bdf8;color:var(--accent,#38bdf8);cursor:pointer;font-size:16px;margin-left:8px;opacity:0;padding:4px;transition:opacity .2s}.notification-item:hover .mark-read-btn{opacity:1}.sidebar-nav button{position:relative}.login-wrapper{align-items:center;background:#020617;background:var(--bg,#020617);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-box{background:#0f172a;background:var(--bg-secondary,#0f172a);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:12px;box-shadow:0 10px 40px #0000004d;max-width:400px;padding:40px;width:100%}.login-header{margin-bottom:24px;text-align:center}.login-logo{align-items:center;border-radius:12px;color:#38bdf8;color:var(--accent,#38bdf8);display:flex;height:180px;justify-content:center;margin:0 auto 16px;width:180px}.login-logo img{height:100%;object-fit:contain;width:100%}.login-box h1{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:24px;margin:0 0 8px;text-align:center}.subtitle{color:#64748b;color:var(--text3,#64748b);font-size:14px;margin:0 0 24px;text-align:center}.form-group label{color:#94a3b8;color:var(--text2,#94a3b8)}.form-group input{background:#1e293b;background:var(--surface,#1e293b);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:6px;box-sizing:border-box;color:#f1f5f9;color:var(--text,#f1f5f9);font-size:14px;padding:10px 12px;width:100%}.form-group input:focus{border-color:#38bdf8;border-color:var(--primary,#38bdf8);box-shadow:0 0 0 2px #38bdf833;outline:none}.form-group input::placeholder{color:#64748b;color:var(--text3,#64748b)}.btn-primary:disabled{background:#334155;color:#64748b}.btn-block{font-size:14px;margin-top:8px;padding:12px;width:100%}.error-message{border:1px solid #ef4444;border-radius:6px;color:#ef4444;font-size:13px;margin-bottom:16px;padding:10px 12px}.login-forgot-link{margin-bottom:12px;text-align:right}.login-forgot-link a{color:#38bdf8;color:var(--accent,#38bdf8);font-size:13px;text-decoration:none;transition:color .2s}.login-forgot-link a:hover{color:#0ea5e9;text-decoration:underline}.fp-container{align-items:center;background:#f8fafc;background:var(--bg-primary,#f8fafc);display:flex;justify-content:center;min-height:100vh;padding:20px}.fp-card{background:#fff;background:var(--bg-card,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:16px;box-shadow:0 4px 24px #00000014;max-width:420px;padding:32px;width:100%}.fp-header{margin-bottom:24px}.fp-back-link{align-items:center;color:#64748b;color:var(--text-secondary,#64748b);display:inline-flex;font-size:14px;gap:6px;text-decoration:none;transition:color .2s}.fp-back-link:hover,.fp-card h2{color:#0f172a;color:var(--text-primary,#0f172a)}.fp-card h2{font-size:22px;font-weight:600;margin:0 0 8px;text-align:center}.fp-subtitle{color:#64748b;color:var(--text-secondary,#64748b);font-size:14px;margin:0 0 24px;text-align:center}.fp-input-group{align-items:center;background:#fff;background:var(--input-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--input-border,#e2e8f0);border-radius:10px;display:flex;gap:12px;margin-bottom:16px;padding:12px 16px;transition:all .2s}.fp-input-group:focus-within{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.fp-input-group svg{color:#94a3b8;color:var(--text-tertiary,#94a3b8);flex-shrink:0}.fp-input-group input{background:#0000;border:none;color:#0f172a;color:var(--text-primary,#0f172a);flex:1 1;font-size:14px;outline:none}.fp-eye-btn,.fp-input-group input::placeholder{color:#94a3b8;color:var(--text-tertiary,#94a3b8)}.fp-eye-btn{align-items:center;background:none;border:none;cursor:pointer;display:flex;padding:0}.fp-eye-btn:hover{color:#64748b;color:var(--text-secondary,#64748b)}.fp-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;margin-top:8px;padding:14px;transition:all .2s;width:100%}.fp-btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.fp-btn-primary:disabled{cursor:not-allowed;opacity:.6}.fp-btn-link{background:none;border:none;color:#64748b;color:var(--text-secondary,#64748b);cursor:pointer;display:block;font-size:14px;margin-top:8px;padding:12px;text-align:center;transition:color .2s;width:100%}.fp-btn-link:hover{color:#667eea;color:var(--primary,#667eea)}.fp-error{background:#ef44441a;border:1px solid #ef444433;border-radius:8px;color:#dc2626;font-size:13px;margin-bottom:16px;padding:10px 14px;text-align:center}.fp-success{padding:16px 0;text-align:center}.fp-success-icon{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;color:#fff;display:flex;font-size:28px;height:64px;justify-content:center;margin:0 auto 20px;width:64px}@media (max-width:480px){.fp-card{padding:24px 20px}}.dashboard{padding:20px}.page-header h1{gap:10px}.section-title{color:var(--text-primary);font-size:16px;font-weight:600;letter-spacing:.5px;margin:24px 0 12px;text-transform:uppercase}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-bottom:32px}.stat-card{align-items:center;border-radius:10px;display:flex;gap:14px;padding:18px;position:relative;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.stat-card.clickable{cursor:pointer}.stat-card.clickable:hover{border-color:#38bdf8;border-color:var(--primary,#38bdf8);box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}.stat-card.clickable:focus{outline:2px solid #38bdf8;outline:2px solid var(--primary,#38bdf8);outline-offset:2px}.stat-icon{align-items:center;border-radius:10px;color:#fff;display:flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.stat-icon.blue{background:#3b82f6}.stat-icon.purple{background:#8b5cf6}.stat-icon.green{background:#22c55e}.stat-icon.cyan{background:#06b6d4}.stat-icon.amber{background:#f59e0b}.stat-icon.orange{background:#f97316}.stat-icon.red{background:#ef4444}.stat-icon.indigo{background:#6366f1}.stat-icon.emerald{background:#10b981}.stat-icon.gray{background:#9ca3af}.stat-content{flex:1 1;min-width:0}.stat-content h3{color:var(--text-primary);font-size:22px;font-weight:700;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-content p{font-size:13px;margin:0}.stat-arrow,.stat-content p{color:#64748b;color:var(--text3,#64748b)}.stat-arrow{opacity:0;transform:translateX(-4px);transition:opacity .15s ease,transform .15s ease}.stat-card.clickable:hover .stat-arrow{opacity:1;transform:translateX(0)}.dashboard-sections{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr}.section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;padding:20px}.section h2{align-items:center;color:var(--text-primary);display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 16px}.activity-list{display:flex;flex-direction:column;gap:4px}.activity-empty{color:#64748b;color:var(--text3,#64748b);font-size:14px;padding:24px;text-align:center}.activity-item{align-items:flex-start;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px 14px;position:relative;transition:background .12s ease}.activity-item:hover{background:#38bdf80f;background:var(--bg-hover,#38bdf80f)}.activity-item.unread{background:#38bdf80a;background:var(--bg-hover-subtle,#38bdf80a)}.activity-item.unread:hover{background:#38bdf814;background:var(--bg-hover,#38bdf814)}.activity-icon{color:#64748b;color:var(--text3,#64748b);flex-shrink:0;margin-top:2px}.activity-icon.approve,.activity-icon.success{color:#22c55e}.activity-icon.error,.activity-icon.reject{color:#ef4444}.activity-icon.warning{color:#f59e0b}.activity-body{flex:1 1;min-width:0}.activity-title{color:var(--text-primary);font-size:14px;font-weight:500;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.activity-message{color:#94a3b8;color:var(--text2,#94a3b8);font-size:12px}.activity-time{color:#64748b;color:var(--text3,#64748b);font-size:12px}.activity-dot{background:#3b82f6;border-radius:50%;flex-shrink:0;height:8px;margin-top:6px;width:8px}.dashboard-loading{align-items:center;color:#64748b;color:var(--text3,#64748b);display:flex;font-size:16px;height:200px;justify-content:center}@media (max-width:640px){.stats-grid{grid-template-columns:1fr}}.modal-content{animation:modalSlideIn .2s ease-out;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0003;max-width:400px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-content h3{color:var(--text);font-size:18px;font-weight:600;margin:0 0 12px}.modal-content p{color:var(--text2);line-height:1.5;margin:0 0 24px}.modal-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s}.modal-btn-cancel{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text)}.modal-btn-cancel:hover{background:var(--bg-tertiary)}.modal-btn-confirm{background:#dc3545;color:#fff}.modal-btn-confirm:hover{background:#c82333}.fp-scanner{flex-direction:column;gap:12px;padding:24px 16px}.fp-icon-wrap,.fp-scanner{align-items:center;display:flex}.fp-icon-wrap{height:80px;justify-content:center;position:relative;width:80px}.fp-icon{transition:color .3s ease}.fp-icon.status-ready,.fp-icon.status-scanning{color:#3b82f6;color:var(--color-primary,#3b82f6)}.fp-icon.status-scanning{animation:fp-pulse 1s ease-in-out infinite}.fp-icon.status-not_configured{color:#9ca3af}.fp-icon.status-error{color:#ef4444}.fp-icon.status-loading{color:#9ca3af}.fp-icon.status-success{color:#22c55e}@keyframes fp-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.08)}}.fp-ripple{animation:fp-ripple 1.2s ease-out infinite;border:2px solid #3b82f6;border:2px solid var(--color-primary,#3b82f6);border-radius:50%;inset:-8px;pointer-events:none;position:absolute}@keyframes fp-ripple{0%{opacity:.8;transform:scale(.9)}to{opacity:0;transform:scale(1.5)}}.fp-status-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:3px 10px}.fp-status-pill .dot{border-radius:50%;flex-shrink:0;height:7px;width:7px}.fp-status-pill.ready{background:#dbeafe;color:#1d4ed8}.fp-status-pill.ready .dot{background:#3b82f6}.fp-status-pill.scanning{background:#ede9fe;color:#6d28d9}.fp-status-pill.scanning .dot{animation:fp-blink .8s ease infinite;background:#8b5cf6}.fp-status-pill.not_configured{background:#f3f4f6;color:#6b7280}.fp-status-pill.not_configured .dot{background:#9ca3af}.fp-status-pill.error{background:#fee2e2;color:#991b1b}.fp-status-pill.error .dot{background:#ef4444}.fp-status-pill.loading{background:#f3f4f6;color:#6b7280}.fp-status-pill.loading .dot{background:#9ca3af}.fp-status-pill.success{background:#dcfce7;color:#166534}.fp-status-pill.success .dot{background:#22c55e}@keyframes fp-blink{0%,to{opacity:1}50%{opacity:.2}}.fp-label{color:#6b7280;font-size:13px;line-height:1.4;max-width:260px;text-align:center}.fp-label.error{color:#ef4444}.fp-scan-btn{align-items:center;background:#3b82f6;background:var(--color-primary,#3b82f6);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:9px 20px;transition:all .2s ease}.fp-scan-btn:hover:not(:disabled){filter:brightness(1.1)}.fp-scan-btn:disabled{cursor:not-allowed;opacity:.55}.fp-simulate-note{background:#fef3c7;border-radius:6px;color:#f59e0b;font-size:11px;font-weight:500;padding:3px 10px}.users-page{padding:20px}.users-filters{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.search-bar{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;display:flex;gap:8px;padding:10px 16px}.search-bar input{background:none;border:none;color:var(--text-primary);flex:1 1;font-size:14px;outline:none}.search-bar input::placeholder{color:var(--text-secondary)}.filter-controls{display:flex;flex-wrap:wrap;gap:12px}.filter-select{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;font-size:13px;min-width:150px;padding:8px 12px}.filter-select:focus{border-color:#38bdf8;border-color:var(--accent,#38bdf8)}.users-table-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.request-leave-box{margin:8px;padding:14px}.list-meta{color:var(--text-secondary);font-size:13px}.list-meta strong{color:var(--text-primary)}.list-meta-pad{background:var(--bg-secondary);border-bottom:1px solid #334155;border-bottom:1px solid var(--border,#334155);padding:10px 16px}.users-table{border-collapse:collapse;width:100%}.users-table td,.users-table th{border-bottom:1px solid #334155;border-bottom:1px solid var(--border,#334155);padding:12px 16px;text-align:left}.users-table th{background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.users-table td{color:var(--text-primary);font-size:14px}.empty-row{color:#94a3b8!important;color:var(--text2,#94a3b8)!important;padding:20px 16px!important;text-align:center}.users-table tr:hover{background:#38bdf80d}.user-info{align-items:center;gap:12px}.user-avatar{color:#0f172a;font-size:12px;height:32px;width:32px}.user-avatar-image{border-radius:50%;height:100%;object-fit:cover;width:100%}.role-badge{align-items:center;border-radius:4px;display:inline-flex;font-size:12px;font-weight:500;gap:4px;padding:4px 8px}.role-badge.admin{color:#ef4444}.role-badge.manager{color:#f59e0b}.role-badge.employee{background:#38bdf833;color:#38bdf8}.actions{display:flex;gap:8px}.leave-actions{flex-wrap:wrap}.leave-status-chip{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;justify-content:center;padding:4px 10px;text-transform:capitalize}.leave-status-chip.pending{background:#f59e0b26;border-color:#f59e0b59;color:#fbbf24}.leave-status-chip.approved{background:#22c55e26;border-color:#22c55e59;color:#4ade80}.leave-status-chip.rejected,.leave-status-chip.revoked{background:#ef444426;border-color:#ef444459;color:#f87171}.leave-type-chip{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;justify-content:center;padding:4px 10px;text-transform:capitalize}.leave-type-chip.sick{background:#ef444426;border-color:#ef444459;color:#fca5a5}.leave-type-chip.vacation{background:#38bdf826;border-color:#38bdf859;color:#7dd3fc}.leave-type-chip.other,.leave-type-chip.personal{background:#94a3b82e;border-color:#94a3b859;color:#cbd5e1}.leave-period-cell{align-items:center;color:var(--text-primary);display:inline-flex;font-weight:500;gap:8px}.leave-reason-text,.period-arrow{color:var(--text-secondary)}.leave-action-btn{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:6px 10px}.leave-action-btn.approve{border-color:#22c55e73;color:#4ade80}.leave-action-btn.reject{border-color:#ef444473;color:#f87171}.leave-action-btn.revoke{border-color:#f59e0b73;color:#fbbf24}.leave-action-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn-icon{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .15s;width:28px}.btn-icon:hover{background:#38bdf81a;border-color:#38bdf8;border-color:var(--accent,#38bdf8);color:#38bdf8;color:var(--accent,#38bdf8)}.btn-icon.delete:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.btn{font-size:13px;gap:6px;height:36px;padding:0 12px}.btn-secondary{height:40px;width:150px}.btn-secondary:hover{background:var(--surface2,#334155)}.users-page .page-header{align-items:center;display:flex;gap:16px;justify-content:space-between}.users-page .page-header h1{flex-shrink:0;margin:0}.users-page .btn-sm{border-radius:6px;flex-shrink:0;font-size:13px;height:32px;padding:0 14px;white-space:nowrap}.modal-overlay{background:#00000080}.modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;max-height:90vh;max-width:450px;overflow-y:auto;padding:24px;width:100%}.modal h2{color:var(--text-primary);font-size:20px;margin:0 0 20px}.form-group{margin-bottom:16px}.form-group label{color:var(--text-secondary)}.form-group input,.form-group select,.form-group textarea{background:var(--bg-secondary);background:var(--input-bg,var(--bg-secondary));border-radius:6px;outline:none;padding:10px 12px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary,#38bdf8);box-shadow:0 0 0 2px #38bdf833}.form-group input[type=month]{background:var(--bg-secondary);background:var(--input-bg,var(--bg-secondary));color:var(--text-primary);font-family:inherit}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-tertiary)}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.biometric-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;font-weight:500;gap:4px;padding:2px 8px;white-space:nowrap}.biometric-badge.enrolled{background:#dcfce7;color:#166534}.biometric-badge.not-enrolled{background:#f3f4f6;color:#6b7280}.light-mode .form-group input,.light-mode .form-group select,.light-mode .form-group textarea,[data-theme=light] .form-group input,[data-theme=light] .form-group select,[data-theme=light] .form-group textarea{background:#fff!important;border-color:#e2e8f0!important;color:#0f172a!important}.light-mode .form-group input:focus,.light-mode .form-group select:focus,.light-mode .form-group textarea:focus,[data-theme=light] .form-group input:focus,[data-theme=light] .form-group select:focus,[data-theme=light] .form-group textarea:focus{border-color:#667eea!important;box-shadow:0 0 0 3px #667eea1a!important}.reject-reason-card{background:#fff;background:var(--bg-card,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:12px;box-shadow:0 4px 12px #00000014;margin-bottom:16px;padding:20px}.reject-reason-card h4{color:#0f172a;color:var(--text-primary,#0f172a);font-size:16px;margin:0 0 12px}.reject-reason-card .reason-label{color:#64748b;color:var(--text-secondary,#64748b);display:block;font-size:13px;margin-bottom:8px}.reject-reason-card textarea{background:#fff;background:var(--input-bg,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:8px;color:#0f172a;color:var(--text-primary,#0f172a);font-size:14px;min-height:80px;padding:12px;resize:vertical;width:100%}.reject-reason-card textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.reject-reason-card .card-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.my-attendance-page{padding:20px}.fp-station-panel{background:#0f172a;background:var(--bg-secondary,#0f172a);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:10px;margin-bottom:20px;overflow:hidden}.fp-station-toggle{align-items:center;background:#0000;border:none;color:#f1f5f9;color:var(--text,#f1f5f9);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:10px;padding:12px 16px;text-align:left;transition:background .15s;width:100%}.fp-station-toggle:hover{background:#1e293b;background:var(--surface,#1e293b)}.fp-station-status-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.fp-station-status-dot.enabled{background:#22c55e}.fp-station-status-dot.disabled{background:#6b7280}.fp-station-body{align-items:center;border-top:1px solid #334155;border-top:1px solid var(--border,#334155);display:flex;flex-direction:column;gap:10px;padding:12px 16px 16px}.fp-last-scan{border-radius:7px;font-size:12px;padding:8px 12px;text-align:center;width:100%}.fp-last-scan.clock_in{background:#dcfce7;color:#166534}.fp-last-scan.clock_out{background:#dbeafe;color:#1e40af}.fp-station-disabled-msg{color:#94a3b8;font-size:13px;padding:8px 0;text-align:center}.attendance-message{border:1px solid;border-radius:8px;font-size:13px;margin-bottom:16px;padding:10px 14px}.attendance-message.success{background:#22c55e26;border-color:#22c55e59;color:var(--color-success)}.attendance-message.error{background:#ef444426;border-color:#ef444459;color:#fca5a5}.attendance-message.info,.attendance-message.warning{background:#f59e0b26;border-color:#f59e0b59;color:var(--color-warning)}.attendance-stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:24px}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px}.stat-label{color:#64748b;color:var(--text3,#64748b);font-size:12px;letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}.stat-value{color:var(--text-primary);font-size:24px;font-weight:700}.filters-bar{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px}.filter-group{flex-direction:column;gap:6px}.filter-group label{color:#64748b;color:var(--text3,#64748b);font-size:12px;letter-spacing:.05em;text-transform:uppercase}.filter-group select{background:var(--surface);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;min-width:120px;padding:8px 12px}.attendance-calendar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:24px;padding:20px}.calendar-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr)}.calendar-header-day{color:#64748b;color:var(--text3,#64748b);font-size:12px;font-weight:600;padding:8px;text-align:center;text-transform:uppercase}.calendar-day{align-items:center;aspect-ratio:1;background:var(--surface);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;padding:8px;transition:all .15s}.calendar-day.today,.calendar-day:hover{border-color:#38bdf8;border-color:var(--primary,#38bdf8)}.calendar-day.today{box-shadow:0 0 0 2px #38bdf84d}.calendar-day.empty{background:#0000;border-color:#0000;cursor:default}.calendar-day .day-number{color:var(--text-primary);font-size:14px;font-weight:500}.calendar-day .day-info{align-items:center;display:flex;flex-direction:column;gap:4px;margin-top:4px}.calendar-day .hours{color:#94a3b8;color:var(--text2,#94a3b8);font-size:10px}.session-count-badge{background:#38bdf829;border:1px solid #38bdf859;border-radius:999px;color:var(--color-info);font-size:9px;line-height:1;padding:2px 6px}.remote-icon{color:var(--color-warning)}.regular-icon{color:var(--color-success)}.badge-present{border-color:var(--color-success)}.badge-late{border-color:var(--color-warning)}.badge-absent{border-color:var(--color-error)}.badge-leave{border-color:#8b5cf6}.attendance-list h2{color:var(--text-primary);font-size:18px;margin:0 0 16px}.records-table-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.records-table{border-collapse:collapse;width:100%}.records-table td,.records-table th{border-bottom:1px solid #334155;border-bottom:1px solid var(--border,#334155);padding:12px 16px;text-align:left}.records-table th{background:var(--surface);color:#94a3b8;color:var(--text2,#94a3b8);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.records-table td{color:var(--text-primary);font-size:14px}.records-table tr:hover{background:#38bdf80d}.status-badge{border-radius:4px;display:inline-flex;font-weight:500}.badge-present{background:#22c55e33;color:var(--color-success)}.badge-late{background:#f59e0b33;color:var(--color-warning)}.badge-absent{background:#ef444433;color:var(--color-error)}.badge-leave{background:#8b5cf633;color:#8b5cf6}.type-remote{color:var(--color-warning)}.type-regular,.type-remote{align-items:center;display:inline-flex;font-size:12px;gap:4px}.type-regular{color:var(--color-success)}.page-loading{color:#64748b;color:var(--text3,#64748b);height:200px}.attendance-warning-modal,.page-loading{align-items:center;display:flex;justify-content:center}.attendance-warning-modal{background:#000000b3;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.attendance-warning-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;max-width:420px;padding:32px;text-align:center}.attendance-warning-icon{color:var(--color-warning);margin-bottom:16px}.attendance-warning-content h3{color:var(--text-primary);font-size:18px;margin:0 0 8px}.attendance-warning-content p{color:#94a3b8;color:var(--text2,#94a3b8);font-size:14px;margin:0 0 24px}.location-status{align-items:center;animation:fadeIn .3s ease;border-radius:6px;display:flex;font-size:13px;font-weight:500;gap:6px;padding:8px 12px}.location-status.checking{background:#3b82f61a;border:1px solid #3b82f633;color:#3b82f6}.location-status.allowed{background:#22c55e1a;border:1px solid #22c55e33;color:var(--color-success)}.location-status.denied{background:#ef44441a;border:1px solid #ef444433;color:var(--color-error)}.location-info{animation:slideDown .3s ease;background:#1e293b;background:var(--bg-secondary,#1e293b);border:1px solid var(--border-color);border-radius:8px;margin-bottom:20px;padding:16px}.location-details,.office-info{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}.location-details:last-child,.office-info:last-child{margin-bottom:0}.location-label,.office-label{color:var(--text-primary);font-size:13px;font-weight:600}.location-coords,.office-coords{background:#0f172a;background:var(--bg,#0f172a);border-radius:4px;color:#94a3b8;color:var(--text2,#94a3b8);font-family:Courier New,monospace;font-size:12px;padding:2px 6px}.location-accuracy,.radius-info{background:#64748b1a;border-radius:4px;color:#64748b;color:var(--text3,#64748b);font-size:11px;padding:2px 6px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.location-info{padding:12px}.location-details,.office-info{align-items:flex-start;flex-direction:column;gap:6px}.location-status{font-size:12px;padding:6px 10px}}.salary-toolbar{align-items:flex-end;display:flex;gap:16px;margin-bottom:16px}.salary-toolbar .form-group input[type=month]{background:var(--bg-secondary);background:var(--input-bg,var(--bg-secondary));border:1px solid var(--border-color,var(--border));border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:10px 12px}.salary-summary-card{background:var(--bg-secondary);background:var(--bg-card,var(--bg-secondary));border:1px solid var(--border-color,var(--border));border-radius:12px;margin-bottom:16px;padding:16px}.salary-metrics{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}.metric-box{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;display:flex;flex-direction:column;gap:4px;padding:12px}.metric-box span{color:#64748b;color:var(--text-tertiary,#64748b);font-size:12px}.metric-box strong{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:18px}.salary-breakdown{display:flex!important;flex-direction:column!important;gap:4px!important}.salary-details{display:flex;flex-direction:column;gap:2px}.salary-total{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-size:18px;font-weight:600}.salary-components{color:#64748b;color:var(--text-tertiary,#64748b);display:flex;font-size:11px;gap:12px}.salary-components small{align-items:center;display:flex;gap:4px}.salary-components small:before{border-radius:50%;content:"";height:8px;width:8px}.salary-components small:first-child:before{background:#10b981}.salary-components small:last-child:before{background:#f59e0b}.salary-days-list{display:flex;flex-direction:column;gap:10px}.salary-day-row{grid-gap:12px;align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;display:grid;gap:12px;grid-template-columns:120px 1fr 180px;padding:10px 12px}.salary-day-date{color:#f1f5f9;color:var(--text,#f1f5f9);font-weight:600}.salary-day-bar-wrap{align-items:flex-start;display:flex;flex-direction:column;gap:8px;position:relative}.salary-day-bar-wrap>.salary-day-bar{width:100%}.salary-day-bar{border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:999px;display:flex;height:14px;overflow:hidden;position:relative;width:100%}.salary-day-bar.interactive{cursor:ew-resize;touch-action:none;transition:box-shadow .15s ease;-webkit-user-select:none;user-select:none}.salary-day-bar.interactive:hover{box-shadow:0 0 0 3px #3b82f626}.salary-day-bar.adjusting{box-shadow:0 0 0 3px #3b82f64d}.salary-day-drag-indicator{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border:2px solid #fff;border-radius:50%;box-shadow:0 2px 8px #3b82f666;color:#fff;display:flex;height:26px;justify-content:center;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:26px;z-index:2}.salary-day-bar.adjusting .salary-day-drag-indicator{box-shadow:0 4px 14px #3b82f68c;transform:translate(-50%,-50%) scale(1.15)}.salary-day-regular{background:linear-gradient(90deg,#10b981,#059669);height:100%;position:relative}.salary-day-regular:after{background:#ffffff4d;content:"";height:100%;position:absolute;right:0;top:0;width:1px}.salary-day-overtime{background:linear-gradient(90deg,#f59e0b,#d97706);height:100%;position:relative}.salary-day-overtime:after{background:#ffffff4d;content:"";height:100%;left:0;position:absolute;top:0;width:1px}.salary-day-remote{background:linear-gradient(90deg,#3b82f6,#2563eb);height:100%;position:relative}.salary-day-remote:after{background:#ffffff4d;content:"";height:100%;left:0;position:absolute;top:0;width:1px}.salary-day-values{align-items:center;display:flex;font-size:13px;gap:12px;justify-content:flex-end}.salary-day-values span{align-items:center;border-radius:6px;display:flex;font-weight:500;gap:4px;padding:4px 8px}.salary-day-values span:first-child{background:#d1fae5;color:#065f46}.salary-day-values span:nth-child(2){background:#fed7aa;color:#92400e}.salary-day-values span:nth-child(3){background:#dbeafe;color:#1e40af}.saving-indicator{animation:pulse 1.5s ease-in-out infinite;background:#334155!important;background:var(--surface2,#334155)!important;color:#64748b!important;color:var(--text3,#64748b)!important}input[type=range]{appearance:none;background:var(--border-color);border-radius:999px;cursor:pointer;height:8px;outline:none;transition:all .3s ease;width:100%}input[type=range]:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}input[type=range]::-webkit-slider-thumb{appearance:none;background:linear-gradient(135deg,#3b82f6,#2563eb);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #3b82f64d;box-sizing:border-box;cursor:pointer;height:20px;-webkit-transition:all .3s ease;transition:all .3s ease;width:20px}input[type=range]::-moz-range-thumb{background:linear-gradient(135deg,#3b82f6,#2563eb);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #3b82f64d;box-sizing:border-box;cursor:pointer;height:20px;-moz-transition:all .3s ease;transition:all .3s ease;width:20px}input[type=range]::-webkit-slider-thumb:hover{box-shadow:0 4px 16px #3b82f666;transform:scale(1.2)}input[type=range]::-moz-range-thumb:hover{box-shadow:0 4px 16px #3b82f666;transform:scale(1.2)}input[type=range]:active{transform:scale(.98)}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.1)}input[type=range]:active::-moz-range-thumb{transform:scale(1.1)}input[type=range].adjusting{background:linear-gradient(90deg,var(--border-color) 0,var(--border-color) var(--value),var(--bg-tertiary) var(--value),var(--bg-tertiary) 100%)}input[type=range].adjusting::-webkit-slider-thumb{box-shadow:0 6px 20px #3b82f680;transform:scale(1.3)}input[type=range].adjusting::-moz-range-thumb{box-shadow:0 6px 20px #3b82f680;transform:scale(1.3)}@media (max-width:900px){.salary-day-row,.salary-metrics{grid-template-columns:1fr}.salary-day-row{gap:8px}.salary-day-values{justify-content:flex-start}}.my-profile-page{padding:20px}.profile-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:320px 1fr}.profile-card{background:#0f172a;background:var(--bg-secondary,#0f172a);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:12px;padding:20px}.photo-wrap{cursor:pointer;height:140px;margin:0 auto 14px;position:relative;width:140px}.profile-photo,.profile-photo-placeholder{border:2px solid #334155;border:2px solid var(--border,#334155);border-radius:50%;height:100%;object-fit:cover;width:100%}.profile-photo-placeholder{align-items:center;background:#1e293b;background:var(--surface,#1e293b);color:#f1f5f9;color:var(--text,#f1f5f9);display:flex;font-size:36px;font-weight:700;justify-content:center}.photo-overlay{align-items:center;background:#38bdf8;background:var(--accent,#38bdf8);border-radius:999px;bottom:-8px;color:#0f172a;display:flex;font-size:11px;font-weight:600;gap:4px;left:50%;padding:4px 10px;position:absolute;transform:translateX(-50%)}.profile-card h3{color:#f1f5f9;color:var(--text,#f1f5f9);margin:0;text-align:center}.profile-role{color:#94a3b8;color:var(--text2,#94a3b8);display:block;font-size:12px;margin-top:6px;text-align:center;text-transform:uppercase}.info-row{align-items:center;padding:12px 0}.info-row .label{align-items:center;color:#94a3b8;color:var(--text2,#94a3b8);display:flex;gap:6px}.info-row .value{font-weight:600}@media (max-width:980px){.profile-grid{grid-template-columns:1fr}}.attestation-requests{background:var(--bg-primary);min-height:100vh;padding:24px}.attestation-requests .page-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.attestation-requests .page-header h1{align-items:center;color:var(--text-primary);display:flex;font-size:28px;gap:12px;margin:0 0 8px}.attestation-requests .page-header p{color:#64748b;color:var(--text3,#64748b);font-size:14px;margin:0}.message.success{background:#22c55e1a;border:1px solid #22c55e4d}.message.error{background:#ef44441a;border:1px solid #ef44444d}.modal-overlay{background:#000c}.modal-content{background:var(--bg-secondary,#0f172a);border:1px solid var(--border-color);border-radius:12px;padding:24px}.modal-header{margin-bottom:20px}.modal-header h2{color:var(--text-primary);font-size:20px}.close-btn{align-items:center;color:#64748b;color:var(--text3,#64748b);display:flex;font-size:24px;height:32px;justify-content:center;padding:0;width:32px}.close-btn:hover{background:var(--border-hover);color:var(--text-primary)}.attestation-form{gap:16px}.attestation-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:var(--text-primary);font-size:14px;font-weight:500}.form-group input,.form-group select,.form-group textarea{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);padding:12px;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#38bdf8;border-color:var(--accent,#38bdf8)}.form-actions{border-top:1px solid #334155;border-top:1px solid var(--border,#334155);justify-content:flex-end;margin-top:8px;padding-top:16px}.requests-list{display:flex;flex-direction:column;gap:16px}.request-card{background:#0f172a;background:var(--bg-secondary,#0f172a);border-radius:12px;padding:20px;transition:border-color .2s}.request-card:hover{border-color:#475569;border-color:var(--border-hover,#475569)}.request-header{align-items:flex-start;margin-bottom:16px}.request-type h3{color:var(--text-primary);font-size:18px;margin:0 0 4px}.type-description{color:#64748b;color:var(--text3,#64748b);font-size:13px}.request-status{background:#ffffff0d;font-size:14px;font-weight:500}.request-details{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.detail-item{align-items:flex-start;color:#94a3b8;color:var(--text2,#94a3b8);display:flex;font-size:14px;gap:8px}.detail-item strong{color:var(--text-primary);font-weight:500}.detail-item.rejection{background:#ef44441a;border:1px solid #ef44444d;border-radius:6px;color:var(--color-error);padding:8px 12px}.request-footer{align-items:center;border-top:1px solid #334155;border-top:1px solid var(--border,#334155);display:flex;justify-content:space-between;padding-top:16px}.request-dates{display:flex;flex-direction:column;gap:4px}.request-dates span{font-size:12px}.empty-state,.request-dates span{color:#64748b;color:var(--text3,#64748b)}.empty-state{padding:60px 20px}.empty-state svg{color:#64748b;color:var(--text3,#64748b);margin-bottom:16px}.empty-state p{margin:0 0 24px}.btn{border-radius:8px;display:inline-flex}.btn-primary{background:var(--accent,#38bdf8)}.btn-primary:hover{background:var(--accent-hover,#0ea5e9)}.btn-primary:disabled{background:#64748b;background:var(--text3,#64748b)}.btn-secondary{background:#1e293b;background:var(--bg-secondary,#1e293b)}.btn-secondary:hover{background:#334155;background:var(--bg-hover,#334155)}.btn-outline{background:#0000;border:1px solid #38bdf8;border:1px solid var(--accent,#38bdf8);color:#38bdf8;color:var(--accent,#38bdf8)}.btn-outline:hover{background:#38bdf8;background:var(--accent,#38bdf8);color:#fff}.btn-sm{padding:8px 16px}@media (max-width:768px){.attestation-requests{padding:16px}.attestation-requests .page-header{align-items:stretch;flex-direction:column;gap:16px}.form-row{grid-template-columns:1fr}.request-footer,.request-header{flex-direction:column;gap:12px}.request-footer{align-items:stretch}.form-actions{flex-direction:column-reverse}.modal-content{padding:16px;width:95%}}.remote-attendance-page{max-width:800px;padding:20px}.remote-work-card{background:#0f172a;background:var(--bg-secondary,#0f172a);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:12px;margin-bottom:24px;padding:24px}.session-status{align-items:center;border-bottom:1px solid #334155;border-bottom:1px solid var(--border,#334155);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:20px}.status-indicator{align-items:center;border-radius:20px;display:flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px}.status-indicator.inactive{background:#64748b33;color:#64748b}.status-indicator.active{animation:pulse 2s infinite;background:#22c55e33;color:#22c55e}.duration-display{align-items:center;color:#f1f5f9;color:var(--text,#f1f5f9);display:flex;gap:8px}.duration{font-family:Courier New,monospace;font-size:28px;font-weight:600}.session-controls{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px}.inactivity-testing-control{display:flex;flex-direction:column;gap:6px;min-width:220px}.inactivity-testing-control label{color:#94a3b8;color:var(--text2,#94a3b8);font-size:12px}.inactivity-testing-control select{background:#1e293b;background:var(--surface,#1e293b);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:8px;color:#f1f5f9;color:var(--text,#f1f5f9);font-size:14px;height:48px;outline:none;padding:0 12px}.inactivity-testing-control select:focus{border-color:#38bdf8;border-color:var(--primary,#38bdf8);box-shadow:0 0 0 2px #38bdf833}.control-btn{align-items:center;border:2px solid #0000;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:16px;font-weight:600;gap:8px;justify-content:center;padding:16px 24px;transition:all .15s}.control-btn.start{background:#22c55e;color:#fff}.control-btn.start:hover:not(:disabled){background:#16a34a;transform:translateY(-1px)}.control-btn.start.disabled{background:#64748b;color:#94a3b8;cursor:not-allowed;opacity:.6}.control-btn.stop{background:#ef4444;color:#fff}.control-btn.stop:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.control-btn.stop.disabled{background:#64748b;color:#94a3b8;cursor:not-allowed;opacity:.6}.session-info{background:#1e293b;background:var(--surface,#1e293b);border-radius:8px;padding:16px}.info-row{border-bottom:1px solid #334155;border-bottom:1px solid var(--border,#334155);display:flex;justify-content:space-between;padding:8px 0}.info-row:last-child{border-bottom:none}.info-row .label{color:#64748b;color:var(--text3,#64748b);font-size:13px}.info-row .value{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:13px;font-weight:500}.info-row .session-id{color:#94a3b8;color:var(--text2,#94a3b8);font-family:monospace;font-size:11px}.info-row .activity-level{color:#22c55e}.remote-instructions{background:#1e293b;background:var(--surface,#1e293b);border-radius:8px;padding:16px}.remote-instructions h3{align-items:center;color:#f1f5f9;color:var(--text,#f1f5f9);display:flex;font-size:14px;gap:8px;margin:0 0 12px}.remote-instructions ul{color:#94a3b8;color:var(--text2,#94a3b8);font-size:13px;margin:0;padding-left:20px}.remote-instructions li{margin-bottom:6px}.warning-modal{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.warning-content{background:#0f172a;background:var(--bg-secondary,#0f172a);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:12px;max-width:400px;padding:32px;text-align:center}.warning-icon{color:#f59e0b;margin-bottom:16px}.warning-content h3{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:18px;margin:0 0 8px}.warning-content p{color:#94a3b8;color:var(--text2,#94a3b8);font-size:14px;margin:0 0 24px}.btn{transition:all .15s}.btn-primary{background:#38bdf8;background:var(--primary,#38bdf8);color:#0f172a}.btn-primary:hover{background:#0ea5e9}.settings-page{padding:20px}.settings-card{background:#0f172a;background:var(--bg-secondary,#0f172a);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:14px;box-shadow:0 10px 24px #0206172e;padding:22px}.settings-section-title{color:var(--text-primary);font-size:20px;margin:0}.settings-section-subtitle{color:#475569;color:var(--text-secondary,#475569);font-size:13px;margin:6px 0 18px}.logo-dropzone{background:#1e293b;background:var(--surface,#1e293b);border:1px dashed #334155;border:1px dashed var(--border,#334155);border-radius:10px;color:#94a3b8;color:var(--text2,#94a3b8);cursor:pointer;padding:18px;text-align:center;transition:all .15s ease}.logo-dropzone:hover{background:#38bdf814}.logo-dropzone.dragging,.logo-dropzone:hover{border-color:#38bdf8;border-color:var(--accent,#38bdf8);color:#f1f5f9;color:var(--text,#f1f5f9)}.logo-dropzone.dragging{background:#38bdf81f}.logo-preview-wrap{align-items:center;background:#1e293b;background:var(--surface,#1e293b);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:8px;display:inline-flex;justify-content:center;margin-top:12px;padding:10px}.logo-preview{height:56px;max-width:220px;object-fit:contain}.remote-message{border:1px solid;border-radius:8px;font-size:13px;margin-bottom:16px;padding:10px 14px}.remote-message.success{background:#22c55e26;border-color:#22c55e59;color:#86efac}.remote-message.error{background:#ef444426;border-color:#ef444459;color:#fca5a5}.remote-message.info,.remote-message.warning{background:#3b82f626;border-color:#3b82f659;color:#93c5fd}@media (max-width:860px){.settings-card{padding:16px}}.location-section{border-top:1px solid #334155;border-top:1px solid var(--border,#334155);margin-top:32px;padding-top:24px}.settings-subsection-title{align-items:center;color:#f1f5f9;color:var(--text,#f1f5f9);display:flex;font-size:16px;margin:0 0 8px}.location-display{background:#1e293b;background:var(--surface,#1e293b);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:6px;color:#94a3b8;color:var(--text2,#94a3b8);font-family:Courier New,monospace;font-size:13px;padding:8px 12px}.location-coords{color:#38bdf8;color:var(--accent,#38bdf8)}.map-container{border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:8px;margin-top:16px;overflow:hidden;position:relative;z-index:1}.openstreetmap{background:#1e293b;background:var(--surface,#1e293b);position:relative;z-index:1}.map-loading{align-items:center;background:#0f172ae6;border-radius:8px;bottom:0;color:#94a3b8;color:var(--text2,#94a3b8);display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0}.loading-spinner{border:3px solid #334155;border-top:3px solid #38bdf8;border:3px solid var(--border,#334155);border-top-color:var(--accent,#38bdf8);height:32px;width:32px}.settings-card .form-group input,.settings-card .form-group select{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;border-radius:6px;box-sizing:border-box;color:var(--text-primary)!important;font-size:14px;outline:none;padding:10px 12px;width:100%}.settings-card .form-group input:focus,.settings-card .form-group select:focus{border-color:#38bdf8!important;border-color:var(--primary,#38bdf8)!important;box-shadow:0 0 0 2px #38bdf833}.form-group label{color:#1e293b;color:var(--text-primary,#1e293b);margin-bottom:6px}.location-section .form-group small{color:var(--text-tertiary);display:block;font-size:11px;margin-top:4px}.location-section .form-row{margin-bottom:16px}.biometric-section{border-top:1px solid #334155;border-top:1px solid var(--border,#334155);margin-top:24px;padding-top:20px}.biometric-section .section-title{align-items:center;color:#f1f5f9;color:var(--text,#f1f5f9);display:flex;font-size:15px;font-weight:600;margin:0 0 18px}.settings-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.settings-row>label:first-child{color:#1e293b;color:var(--text-primary,#1e293b);flex-shrink:0;font-size:13px;min-width:200px}.settings-row input[type=number],.settings-row input[type=text],.settings-row select{background:#fff;background:var(--input-bg,#fff);border:1px solid #d1d5db;border:1px solid var(--input-border,#d1d5db);border-radius:6px;color:#1f2937;color:var(--text-primary,#1f2937);flex:1 1;font-size:13px;min-width:160px;padding:8px 10px}.settings-row input:focus,.settings-row select:focus{border-color:#3b82f6;border-color:var(--color-info,#3b82f6);outline:none}.toggle-switch{cursor:pointer;width:42px}.toggle-slider{background:#334155;border-radius:999px;inset:0;transition:background .2s}.toggle-slider:before{background:#fff;top:3px;transition:transform .2s}.toggle-switch input:checked+.toggle-slider{background:#38bdf8;background:var(--primary,#38bdf8)}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(18px)}.biometric-test-result{align-items:flex-start;border-radius:8px;display:flex;font-size:13px;gap:8px;line-height:1.4;margin-bottom:14px;padding:10px 14px}.biometric-test-result.success{background:#dcfce7;color:#166534}.biometric-test-result.error{background:#fee2e2;color:#991b1b}.biometric-actions{display:flex;gap:10px;margin-top:6px}.settings-msg{border-radius:6px;font-size:13px;margin-bottom:14px;padding:9px 12px}.settings-msg.success{background:#dcfce7;color:#166534}.settings-msg.error{background:#fee2e2;color:#991b1b}.permissions-management{background:#020617;background:var(--bg,#020617);min-height:100vh;padding:24px}.permissions-management .page-header .admin-note,.permissions-management .page-header h1,.permissions-management .page-header p,.permissions-management .panel-header h2,.permissions-management .section-count,.permissions-management .section-header h4{color:#f1f5f9!important;color:var(--text,#f1f5f9)!important}.permissions-management .page-header p,.permissions-management .section-count{color:#64748b!important;color:var(--text3,#64748b)!important}.permissions-management .page-header .admin-note{color:#ef4444!important;color:var(--error,#ef4444)!important}.permissions-management .page-header h1{align-items:center!important;color:var(--text)!important;display:flex!important;font-size:28px!important;gap:12px!important;margin:0 0 8px!important}.permissions-management .page-header p{color:var(--text3)!important;font-size:14px!important;margin:0!important}.permissions-management .page-header .admin-note{color:var(--error)!important;display:block!important;font-size:12px!important;font-weight:500!important;margin-top:4px!important}.panel-header h2,.section-header h4{color:var(--text)!important}.section-count{background:var(--surface)!important;color:var(--text3)!important}.permission-section,.permissions-grid,.permissions-list,.permissions-panel,.users-list,.users-panel{background:#0f172a!important;background:var(--bg-secondary,#0f172a)!important}.permission-card .permission-description,.section-count,.user-details,.user-permission-count{color:#64748b!important;color:var(--text3,#64748b)!important}.permissions-list .permission-card.granted{background:#22c55e1a!important}.permissions-list .permission-card.denied{background:#ef44441a!important}.user-item{background:#1e293b!important;background:var(--surface,#1e293b)!important}.user-item:hover{background:#334155!important;background:var(--surface2,#334155)!important}.user-item.selected{background:#38bdf81a!important}.search-container input{background:#020617!important;background:var(--bg,#020617)!important;border:1px solid #334155!important;border:1px solid var(--border,#334155)!important;color:#f1f5f9!important;color:var(--text,#f1f5f9)!important}.role-badge{border-radius:12px!important;font-size:11px!important;font-weight:600!important;padding:2px 8px!important;text-transform:uppercase!important}.role-badge.admin{background:#ef444433!important;color:#f87171!important}.role-badge.manager{background:#f59e0b33!important;color:#fbbf24!important}.role-badge.employee{background:#22c55e33!important;color:#4ade80!important}.status-badge{border-radius:12px!important;font-size:11px!important;font-weight:600!important;padding:2px 8px!important}.status-badge.inactive{background:#ef444433!important;color:#f87171!important}.permission-card .status-badge.granted{background:#22c55e33!important;color:#4ade80!important}.permission-card .status-badge.denied{background:#ef444433!important;color:#f87171!important}.permission-card .status-badge.role-based{background:#3b82f633!important;color:#60a5fa!important}.admin-note{color:#ef4444;color:var(--error,#ef4444);display:block;font-size:12px;font-weight:500;margin-top:4px}.refresh-btn{margin-top:12px;transition:all .2s}.refresh-btn:hover{transform:translateY(-1px)}.permissions-content{grid-gap:24px;display:grid;gap:24px;grid-template-columns:400px 1fr;height:calc(100vh - 200px)}.permissions-panel,.users-panel{background:#0f172a!important;background:var(--bg-secondary,#0f172a)!important;border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.panel-header{background:#1e293b!important;background:var(--surface,#1e293b)!important}.panel-header h2{align-items:center!important;color:#f1f5f9!important;color:var(--text,#f1f5f9)!important;display:flex!important;font-size:18px!important;font-weight:600!important;gap:8px!important;margin:0!important}.search-container{margin-top:16px;position:relative}.search-icon{color:#64748b;color:var(--text3,#64748b)}.search-container input{background:#020617;background:var(--bg,#020617);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:8px;color:#f1f5f9;color:var(--text,#f1f5f9);font-size:14px;padding:10px 12px 10px 40px;transition:border-color .2s;width:100%}.search-container input:focus{border-color:#38bdf8;border-color:var(--primary,#38bdf8);outline:none}.users-list{flex:1 1;overflow-y:auto;padding:8px}.user-item{align-items:center;background:#1e293b;background:var(--surface,#1e293b);border:2px solid #0000;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:16px;transition:all .2s}.user-item:hover{background:#334155;background:var(--surface2,#334155);border-color:#475569;border-color:var(--border,#475569)}.user-item.selected{background:#38bdf81a;border-color:#38bdf8;border-color:var(--primary,#38bdf8)}.user-avatar{background:#38bdf8;background:var(--primary,#38bdf8);flex-shrink:0;font-weight:600}.user-info{flex:1 1;min-width:0}.user-name{color:#f1f5f9;color:var(--text,#f1f5f9);margin-bottom:2px}.user-details{color:#64748b;color:var(--text3,#64748b);font-size:12px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{align-items:center;display:flex;gap:8px}.role-badge{border-radius:12px;font-size:11px;font-weight:600;padding:2px 8px;text-transform:uppercase}.role-badge.admin{background:#ef444433;color:#f87171}.role-badge.manager{background:#f59e0b33;color:#fbbf24}.role-badge.employee{background:#22c55e33;color:#4ade80}.status-badge{font-size:11px;padding:2px 8px}.status-badge.inactive{background:#ef444433;color:#f87171}.user-permission-count{color:#64748b;color:var(--text3,#64748b);font-size:12px;font-weight:600}.reset-btn,.save-btn{font-size:13px;padding:8px 16px}.permissions-list{background:#0f172a;background:var(--bg-secondary,#0f172a);padding:16px}.section-header h4{color:#f1f5f9!important;color:var(--text,#f1f5f9)!important;font-size:16px!important;font-weight:600!important;margin:0!important}.section-count{border-radius:12px!important;color:#64748b!important;color:var(--text3,#64748b)!important;font-size:12px!important;font-weight:600!important;padding:4px 8px!important}.permissions-list .permission-card,.section-count{background:#1e293b!important;background:var(--surface,#1e293b)!important}.permissions-list .permission-card{align-items:center;border:2px solid #334155;border:2px solid var(--border,#334155);border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:16px;transition:all .2s}.toggle-switch{width:48px}.permission-card .permission-name{color:#f1f5f9;color:var(--text,#f1f5f9);font-family:Courier New,monospace;font-size:13px;font-weight:600;margin-bottom:2px}.permission-card .permission-description{color:#64748b;color:var(--text3,#64748b);font-size:11px;line-height:1.3}.permission-card .status-badge{align-items:center;border-radius:12px;display:flex;font-size:10px;font-weight:600;gap:4px;padding:4px 8px;text-transform:uppercase}.permission-card .status-badge.granted{background:#48bb78;color:#fff}.permission-card .status-badge.denied{background:#f56565;color:#fff}.permission-card.role-based{border-left:4px solid #4299e1}.permission-card.custom{border-left:4px solid #9f7aea}.role-indicator{background:#4299e1}.admin-indicator,.role-indicator{border-radius:10px;color:#fff;display:inline-block;font-size:9px;font-weight:600;line-height:1;margin-left:8px;padding:2px 6px;text-transform:uppercase}.admin-indicator{background:#f56565}.permission-card.admin-only{border-left:4px solid #f56565;opacity:.7}.toggle-switch input:disabled+.toggle-slider{background-color:#cbd5e0;cursor:not-allowed}.toggle-switch input:disabled+.toggle-slider:before{background-color:#a0aec0}.no-permissions{color:#64748b;color:var(--text3,#64748b);padding:40px;text-align:center}.no-permissions p{font-size:16px;margin-bottom:20px}.init-btn{background:#4299e1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:background-color .2s}.init-btn:hover{background:#3182ce}.no-user-selected{align-items:center;color:#64748b;color:var(--text3,#64748b);display:flex;flex-direction:column;height:100%;justify-content:center;padding:40px;text-align:center}.no-user-selected svg{margin-bottom:16px;opacity:.5}.no-user-selected h3{font-size:20px;font-weight:600;margin:0 0 8px}.no-user-selected p{font-size:14px;margin:0}.loading-container{height:60vh}@media (max-width:1024px){.permissions-content{grid-template-columns:350px 1fr}.permissions-grid{grid-template-columns:1fr}}@media (max-width:768px){.permissions-management{padding:16px}.page-header{align-items:flex-start;flex-direction:column;gap:16px}.permissions-content{grid-template-columns:1fr;height:auto}.users-panel{max-height:400px}.permissions-panel{min-height:500px}.permissions-grid{grid-template-columns:1fr}.permission-card{padding:12px}}.permissions-management .page-header{background:#0f172a!important;background:var(--bg-secondary,#0f172a)!important;border:1px solid #334155!important;border:1px solid var(--border,#334155)!important}.permissions-management .page-header h1,.permissions-management .panel-header h2,.permissions-management .permission-card .permission-name,.permissions-management .section-header h4,.permissions-management .user-name{color:#f1f5f9!important;color:var(--text,#f1f5f9)!important}.permissions-management .loading-container,.permissions-management .no-user-selected,.permissions-management .page-header p,.permissions-management .permission-card .permission-description,.permissions-management .section-count,.permissions-management .user-details,.permissions-management .user-permission-count{color:#64748b!important;color:var(--text3,#64748b)!important}.permissions-management .no-user-selected,.permissions-management .permission-section,.permissions-management .permissions-grid,.permissions-management .permissions-list,.permissions-management .permissions-panel,.permissions-management .users-list,.permissions-management .users-panel{background:#0f172a!important;background:var(--bg-secondary,#0f172a)!important}.permissions-management .panel-header,.permissions-management .section-count{background:#1e293b!important;background:var(--surface,#1e293b)!important}.permissions-management .permission-card,.permissions-management .user-item{background:#1e293b!important;background:var(--surface,#1e293b)!important;border-color:#334155!important;border-color:var(--border,#334155)!important}.permissions-management .user-item:hover{background:#334155!important;background:var(--surface2,#334155)!important}.permissions-management .user-item.selected{background:#38bdf81a!important;border-color:#38bdf8!important;border-color:var(--primary,#38bdf8)!important}.permissions-management .permission-card.granted{background:#22c55e1a!important;border-color:#22c55e!important;border-color:var(--success,#22c55e)!important}.permissions-management .permission-card.denied{background:#ef44441a!important;border-color:#ef4444!important;border-color:var(--error,#ef4444)!important}.permissions-management .search-container input{background:#020617!important;background:var(--bg,#020617)!important;border-color:#334155!important;border-color:var(--border,#334155)!important;color:#f1f5f9!important;color:var(--text,#f1f5f9)!important}.role-permissions{background:#020617;background:var(--bg,#020617);margin:0 auto;max-width:1400px;min-height:100vh;padding:24px}.refresh-btn{align-items:center;background:#38bdf8;background:var(--primary,#38bdf8);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 20px;transition:background-color .2s}.refresh-btn:hover{background:#0ea5e9;background:var(--accent,#0ea5e9)}.loading-count{color:#64748b!important;color:var(--text3,#64748b)!important;font-size:12px;font-style:italic}.role-permissions-content{grid-gap:24px;display:grid;gap:24px;grid-template-columns:350px 1fr;height:calc(100vh - 200px)}.permissions-panel,.roles-panel{background:#0f172a;background:var(--bg-secondary,#0f172a);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.panel-header{background:#1e293b;background:var(--surface,#1e293b);border-bottom:1px solid #334155;border-bottom:1px solid var(--border,#334155);justify-content:space-between;padding:20px}.panel-header,.panel-header h3{align-items:center;display:flex}.panel-header h3{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:18px;font-weight:600;gap:8px;margin:0}.panel-actions{display:flex;gap:8px}.reset-btn,.save-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:6px;padding:8px 12px;transition:all .2s}.reset-btn{background:#334155;background:var(--surface2,#334155);border:1px solid #334155;border:1px solid var(--border,#334155);color:#f1f5f9;color:var(--text,#f1f5f9)}.reset-btn:hover{background:#1e293b;background:var(--surface,#1e293b)}.save-btn{background:#22c55e;background:var(--success,#22c55e);color:#fff}.save-btn:hover:not(:disabled){background:#16a34a}.save-btn:disabled{cursor:not-allowed;opacity:.6}.roles-list{flex:1 1;overflow-y:auto;padding:12px}.role-item{border:2px solid #0000;border-radius:8px;cursor:pointer;margin-bottom:8px;padding:16px;transition:all .2s}.role-item:hover{background:#334155;background:var(--surface2,#334155)}.role-item.active{background:#38bdf81a;border-color:#38bdf8;border-color:var(--primary,#38bdf8)}.role-info{margin-bottom:8px}.role-name{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:16px;font-weight:600;text-transform:capitalize}.role-description{color:#64748b;color:var(--text3,#64748b);font-size:12px;margin-top:4px}.role-count{color:#38bdf8;color:var(--primary,#38bdf8);font-size:11px;font-weight:600}.permissions-list{flex:1 1;overflow-y:auto;padding:20px}.permission-section{margin-bottom:32px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.section-header h4{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:16px;font-weight:600;margin:0}.section-count{background:#1e293b;background:var(--surface,#1e293b);border-radius:12px;color:#64748b;color:var(--text3,#64748b);font-size:12px;font-weight:600;padding:4px 8px}.permissions-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.permission-card{align-items:center;background:#1e293b;background:var(--surface,#1e293b);border:2px solid #334155;border:2px solid var(--border,#334155);border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:16px;transition:all .2s}.permission-card:hover{border-color:#38bdf8;border-color:var(--primary,#38bdf8);box-shadow:0 2px 8px #38bdf833;transform:translateY(-1px)}.permission-card.granted{background:#22c55e1a;border-color:#22c55e;border-color:var(--success,#22c55e)}.permission-card.denied{background:#ef44441a;border-color:#ef4444;border-color:var(--error,#ef4444)}.permission-toggle{flex-shrink:0}.toggle-switch{height:24px;width:44px}.toggle-slider{background-color:#334155;background-color:var(--surface2,#334155);border-radius:24px}.toggle-slider:before{background-color:#fff;bottom:3px;height:18px;left:3px;width:18px}input:checked+.toggle-slider{background-color:#22c55e;background-color:var(--success,#22c55e)}input:checked+.toggle-slider:before{transform:translateX(20px)}.permission-content{flex:1 1;min-width:0}.permission-name{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:14px;font-weight:600;margin-bottom:4px}.permission-description{color:#64748b;color:var(--text3,#64748b);font-size:12px;line-height:1.4}.permission-status{flex-shrink:0}.status-badge{align-items:center;display:flex;font-size:10px;gap:4px;padding:4px 8px;text-transform:uppercase}.status-badge.granted{background:#48bb78;color:#fff}.status-badge.denied{background:#f56565;color:#fff}.no-role-selected{align-items:center;color:#64748b;color:var(--text3,#64748b);display:flex;flex-direction:column;height:100%;justify-content:center;padding:40px;text-align:center}.no-role-selected h3{font-size:20px;margin:16px 0 8px}.no-role-selected p{font-size:16px;margin:0}.loading-container{align-items:center;color:#64748b;color:var(--text3,#64748b);display:flex;flex-direction:column;height:400px;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #334155;border-top:4px solid #38bdf8;border:4px solid var(--border,#334155);border-radius:50%;border-top-color:var(--primary,#38bdf8);height:40px;margin-bottom:16px;width:40px}@media (max-width:768px){.role-permissions-content{grid-template-columns:1fr;height:auto}.roles-panel{height:300px}.permissions-panel{min-height:500px}.permissions-grid{grid-template-columns:1fr}}.permissions-tabs{background:#020617;background:var(--bg,#020617);margin:0 auto;max-width:1400px;min-height:100vh;padding:24px}.tabs-header{margin-bottom:32px}.tabs-header h1{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:28px;font-weight:700;margin:0 0 24px}.tabs-navigation{border-bottom:2px solid #334155;border-bottom:2px solid var(--border,#334155);display:flex;gap:4px;padding-bottom:0}.tab-button{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;border-radius:8px 8px 0 0;color:#64748b;color:var(--text3,#64748b);cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;margin-bottom:-2px;padding:12px 20px;transition:all .2s}.tab-button:hover{background:#1e293b;background:var(--surface,#1e293b);color:#f1f5f9;color:var(--text,#f1f5f9)}.tab-button.active{background:#38bdf81a;border-bottom-color:#38bdf8;border-bottom-color:var(--primary,#38bdf8);color:#38bdf8;color:var(--primary,#38bdf8)}.tabs-content{min-height:600px}@media (max-width:768px){.permissions-tabs{padding:16px}.tabs-navigation{border-bottom:none;flex-direction:column;gap:8px}.tab-button{border-bottom:2px solid #0000;border-radius:8px;margin-bottom:0}.tab-button.active{border-bottom-color:#38bdf8;border-bottom-color:var(--primary,#38bdf8)}}.notifications-page{margin:0 auto;max-width:900px;padding:24px}.page-header{align-items:center}.notifications-toolbar{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.filter-tabs{display:flex;gap:8px}.filter-tab{background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s}.filter-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.filter-tab.active{background:var(--gradient-primary);color:#fff}.notifications-container{min-height:400px}.notifications-loading{font-size:16px;padding:60px 20px}.notifications-empty,.notifications-loading{color:var(--text-secondary);text-align:center}.notifications-empty{padding:80px 20px}.notifications-empty svg{color:var(--text-tertiary);margin-bottom:20px}.notifications-empty h3{color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 8px}.notifications-empty p{font-size:14px;margin:0}.notifications-list{display:flex;flex-direction:column;gap:12px}.notification-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;display:flex;gap:16px;padding:20px;transition:all .2s}.notification-card:hover{border-color:var(--border-hover);box-shadow:0 2px 8px var(--shadow-sm)}.notification-card.unread{background:var(--color-info-bg);border-color:var(--color-info-border)}.notification-indicator{flex-shrink:0;padding-top:4px;width:8px}.unread-dot{background:var(--color-info);border-radius:50%;height:8px;width:8px}.notification-body{flex:1 1;min-width:0}.notification-header-row{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:8px}.notification-title{color:var(--text-primary);font-size:16px;margin:0}.notification-time{color:var(--text-secondary);font-size:13px;white-space:nowrap}.notification-message{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0 0 16px}.notification-actions-row{display:flex;gap:12px}.notification-btn{align-items:center;background:none;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:6px 12px;transition:all .2s}.notification-btn:hover{background:var(--bg-secondary);border-color:var(--border-hover);color:var(--text-primary)}.notification-btn.delete:hover{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error)}.btn{text-decoration:none}.btn-primary:hover{box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.btn-secondary{background:var(--bg-secondary)}.notification-settings-page{margin:0 auto;max-width:800px;padding:24px}.page-header{margin-bottom:24px}.page-header h1{align-items:center;color:var(--text-primary);display:flex;font-size:28px;font-weight:600;gap:12px;margin:0}.page-loading{padding:60px 20px}.message{border-radius:8px;margin-bottom:20px;padding:12px 16px}.message.success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.message.error{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error)}.settings-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.settings-section{padding:24px}.settings-section h2{color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 8px}.section-description{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0 0 24px}.settings-list{display:flex;flex-direction:column;gap:16px}.setting-item{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;display:flex;gap:20px;justify-content:space-between;padding:20px;transition:all .2s}.setting-item:hover{background:var(--bg-hover);border-color:var(--border-hover)}.setting-info{display:flex;flex:1 1;gap:16px}.setting-icon{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;color:var(--color-info);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.setting-content{flex:1 1}.setting-content h3{color:var(--text-primary);font-size:16px;font-weight:600;margin:0 0 4px}.setting-content p{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0}.toggle-switch{display:inline-block;flex-shrink:0;height:28px;position:relative;width:52px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:var(--border-hover);border-radius:28px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider:before{background-color:var(--bg-card);border-radius:50%;bottom:4px;content:"";height:20px;left:4px;position:absolute;transition:.3s;width:20px}input:checked+.toggle-slider{background-color:var(--color-info)}input:checked+.toggle-slider:before{transform:translateX(24px)}.toggle-slider:hover{background-color:var(--text-secondary)}input:checked+.toggle-slider:hover{background-color:#2563eb}.settings-actions{background:var(--bg-secondary);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;padding:20px 24px}.btn{padding:10px 20px}.btn-primary{background:var(--gradient-primary)}.btn-primary:disabled{cursor:not-allowed;opacity:.5}.all-requests-page{margin:0 auto;max-width:1600px;padding:24px}.filters-section{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.search-box{flex:1 1;min-width:300px;position:relative}.search-icon{color:var(--text-tertiary);left:12px;position:absolute;top:50%;transform:translateY(-50%)}.search-box input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-size:14px;padding:12px 16px 12px 44px;transition:all .2s;width:100%}.search-box input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.search-box input::placeholder{color:var(--text-secondary)}.filter-group{display:flex;gap:12px}.filter-item{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;display:flex;gap:8px;padding:10px 14px;transition:all .2s}.filter-item:hover{border-color:#667eea}.filter-item svg{color:var(--text-secondary)}.filter-select{background:none;border:none;color:var(--text-primary);cursor:pointer;font-size:14px;outline:none}.requests-summary{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;display:flex;gap:24px;margin-bottom:24px;padding:20px 24px}.summary-item{align-items:center;display:flex;gap:8px}.summary-label{color:var(--text-secondary);font-size:14px;font-weight:500}.summary-value{color:var(--text-primary);font-size:20px;font-weight:700}.summary-value.pending{color:var(--color-warning)}.summary-value.approved{color:var(--color-success)}.summary-value.generated{color:var(--color-info)}.page-loading{font-size:16px;padding:80px 20px}.empty-state,.page-loading{color:var(--text-secondary);text-align:center}.empty-state{padding:100px 20px}.empty-state h3{font-size:22px}.requests-table-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 8px var(--shadow-sm);overflow:hidden}.requests-table{border-collapse:collapse;table-layout:fixed;width:100%}.requests-table thead{background:var(--bg-primary);border-bottom:2px solid var(--border-color)}.requests-table th{color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.8px;padding:14px 18px;text-align:left;text-transform:uppercase}.requests-table tbody tr{border-bottom:1px solid var(--border-color);transition:all .2s}.requests-table tbody tr:hover{background:var(--bg-primary);transform:scale(1.001)}.requests-table tbody tr:last-child{border-bottom:none}.requests-table td{color:var(--text-primary);font-size:14px;padding:18px}.id-cell{color:var(--text-tertiary);font-weight:600}.employee-cell{min-width:200px}.employee-info{align-items:center;display:flex;gap:10px}.employee-info svg{color:var(--text-tertiary);flex-shrink:0}.employee-name{color:var(--text-primary);font-weight:500}.employee-email{color:var(--text-tertiary);font-size:12px}.type-cell{min-width:150px}.category-cell{min-width:100px}.category-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.category-badge.attestation{background:var(--color-info-bg);border:1px solid var(--color-info-border);color:var(--color-info)}.category-badge.leave{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.status-cell{min-width:100px}.status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px}.purpose-cell{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approved-by-cell{max-width:200px;min-width:150px}.actions-cell{max-width:250px;min-width:180px;text-align:center}.action-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.btn-sm{padding:6px 12px;white-space:nowrap}.btn-success{background:var(--color-success)}.btn-danger{background:var(--color-error);color:#fff}.btn-warning{background:var(--color-warning);color:#fff}.approved-date-cell,.date-cell{align-items:center;color:var(--text-tertiary);display:flex;font-size:13px;gap:6px}.btn{border-radius:6px;font-weight:500;padding:10px 16px;transition:all .2s}.btn-secondary{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-hover);color:var(--text-primary)}.leave-balance-button-wrapper{display:inline-block;position:relative}.leave-balance-popup{animation:popupFadeIn .3s ease-out;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 8px 24px #667eea66;margin-right:12px;min-width:280px;padding:16px;right:100%;white-space:nowrap;z-index:1000}.leave-balance-popup,.leave-balance-popup:before{position:absolute;top:50%;transform:translateY(-50%)}.leave-balance-popup:before{border-bottom:8px solid #0000;border-left:8px solid #764ba2;border-top:8px solid #0000;content:"";height:0;right:-6px;width:0}@keyframes popupFadeIn{0%{opacity:0;transform:translateY(-50%) translateX(-10px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}.popup-content{color:#fff}.popup-title{font-size:14px;font-weight:600;margin-bottom:12px;opacity:.95;text-align:center}.popup-stats{display:flex;gap:12px;justify-content:space-around}.popup-stat{align-items:center;background:#ffffff26;border-radius:8px;display:flex;flex-direction:column;min-width:60px;padding:8px 12px}.popup-stat.highlight{background:#ffffff40;border:2px solid #ffffff4d}.popup-stat .stat-label{font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;opacity:.85;text-transform:uppercase}.popup-stat .stat-value{font-size:20px;font-weight:700}.popup-error{color:#fee;font-size:13px;padding:4px;text-align:center}.modal-overlay{align-items:center;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s ease;background:#0f172a;border:1px solid #94a3b833;border-radius:16px;box-shadow:0 20px 60px #00000080;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:1px solid #94a3b81a;display:flex;justify-content:space-between;padding:24px}.modal-header h2{color:#f1f5f9;font-size:24px;font-weight:700;margin:0}.close-btn{background:none;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;padding:4px;transition:all .2s}.close-btn:hover{background:#94a3b81a;color:#f1f5f9}.request-type-tabs{display:flex;gap:12px;padding:20px 24px 0}.type-tab{align-items:center;background:#94a3b80d;border:1px solid #94a3b81a;border-radius:10px;color:#94a3b8;cursor:pointer;display:flex;flex:1 1;font-size:15px;font-weight:500;gap:8px;justify-content:center;padding:12px 20px;transition:all .3s ease}.type-tab:hover{background:#94a3b81a;border-color:#94a3b833;color:#cbd5e1}.type-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 4px 12px #667eea4d;color:#fff}.request-form{padding:24px}.form-group{margin-bottom:20px}.form-group label{color:#cbd5e1;display:block;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{background:#0f172a99;border:1px solid #94a3b833;border-radius:10px;color:#f1f5f9;font-family:inherit;font-size:14px;padding:12px 16px;transition:all .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group textarea{min-height:80px;resize:vertical}.form-group input::placeholder,.form-group textarea::placeholder{color:#64748b}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.error-message{background:#ef44441a;border:1px solid #ef444433;border-radius:8px;color:#fca5a5;font-size:14px;margin-bottom:20px;padding:12px 16px}.form-actions{border-top:1px solid #94a3b81a;display:flex;gap:12px;margin-top:24px;padding-top:20px}.btn{padding:12px 20px}.btn-secondary{background:#94a3b81a;color:#cbd5e1}.my-requests-page{margin:0 auto;max-width:1400px}.page-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:32px}.header-title h1{color:var(--text-primary);font-size:32px;font-weight:700;margin:0 0 8px}.header-title p{color:var(--text-secondary);font-size:16px;margin:0}.header-actions{align-items:center;display:flex;gap:12px}.message{border-radius:10px;font-size:14px;font-weight:500;margin-bottom:24px;padding:14px 18px}.message.success{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid #6ee7b7;color:#065f46}.message.error{background:linear-gradient(135deg,#fee2e2,#fecaca);border:1px solid #fca5a5;color:#991b1b}.tabs-container{margin-bottom:32px}.tabs{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;gap:12px;padding:6px}.tab,.tabs{display:flex}.tab{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:15px;font-weight:500;gap:8px;padding:12px 24px;transition:all .3s ease}.tab:hover{background:#94a3b833;color:var(--text-primary)}.tab.active{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff}.tab-count{background:#fff3;border-radius:10px;font-size:12px;font-weight:600;padding:2px 8px}.tab.active .tab-count{background:#ffffff4d}.requests-content{min-height:400px}.loading-state{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:80px 20px}.spinner{animation:spin 1s linear infinite;border:4px solid var(--border-color);border-radius:50%;border-top:4px solid #667eea;height:48px;margin-bottom:16px;width:48px}.loading-state p{font-size:16px;margin:0}.empty-state{align-items:center;color:var(--text-tertiary);display:flex;flex-direction:column;justify-content:center;padding:80px 20px}.empty-state svg{color:var(--text-secondary);margin-bottom:20px;opacity:.5}.empty-state h3{color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 8px}.empty-state p{color:var(--text-secondary);font-size:14px;margin:0}.requests-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.request-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:24px;transition:all .3s ease}.request-card:hover{border-color:#94a3b833;box-shadow:0 12px 24px var(--shadow-md);transform:translateY(-4px)}.request-card.status-approved{border-left:4px solid #10b981}.request-card.status-rejected{border-left:4px solid #ef4444}.request-card.status-pending{border-left:4px solid #f59e0b}.request-card.status-generated{border-left:4px solid #3b82f6}.request-header{border-color:var(--border-color);justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.request-header,.request-type{align-items:center;display:flex}.request-type{color:var(--text-primary);font-size:15px;font-weight:600;gap:10px}.request-type svg{color:var(--color-info)}.request-status{align-items:center;background:#94a3b833;border-radius:20px;display:flex;gap:6px;padding:6px 12px}.status-icon{flex-shrink:0}.status-icon.success{color:#10b981}.status-icon.error{color:#ef4444}.status-icon.pending{color:#f59e0b}.status-text{color:var(--text-primary);font-size:13px;font-weight:600;text-transform:capitalize}.request-body{margin-bottom:20px}.request-field{margin-bottom:16px}.request-field label{color:var(--text-secondary);display:block;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.request-field p{color:var(--text-tertiary);font-size:14px;line-height:1.6;margin:0}.request-meta{display:flex;flex-direction:column;gap:8px;margin-top:16px}.meta-item{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;gap:6px}.meta-item svg{color:var(--text-tertiary);flex-shrink:0}.rejection-reason{background:#ef44441a;border:1px solid #ef444433;border-radius:8px;margin-top:16px;padding:12px}.rejection-reason strong{color:#fca5a5;display:block;font-size:12px;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.rejection-reason p{color:#fecaca;font-size:14px;line-height:1.5;margin:0}.request-actions{display:flex;gap:12px}.btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:10px 18px;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff}.btn-primary:hover:not(:disabled){box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.btn-success{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b9814d;color:#fff}.btn-success:hover{box-shadow:0 6px 16px #10b98166;transform:translateY(-2px)}.btn-secondary{background:#94a3b833;border:1px solid #94a3b833;color:var(--text-primary)}.btn-secondary:hover{background:#94a3b833;border-color:#94a3b84d}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none!important}.btn-sm{font-size:13px;padding:8px 14px}.leave-balance-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 8px 24px #667eea4d;color:#fff;margin-bottom:24px;padding:24px}.leave-balance-card h3{font-size:18px;font-weight:600;margin:0 0 20px;opacity:.95}.leave-balance-stats{display:flex;gap:32px}.balance-stat{align-items:center;background:#ffffff26;border-radius:12px;display:flex;flex-direction:column;min-width:80px;padding:16px 24px}.balance-stat.highlight{background:#ffffff40;border:2px solid #ffffff4d}.balance-stat .stat-label{font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;opacity:.85;text-transform:uppercase}.balance-stat .stat-value{font-size:28px;font-weight:700}.tr-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:16px}.tr-stat-card{background:linear-gradient(135deg,#667eea2e,#764ba21f);border:1px solid var(--border-color);border-radius:12px;padding:12px 14px}.tr-stat-label{color:var(--text-secondary);font-size:12px;letter-spacing:.6px;text-transform:uppercase}.tr-stat-value{color:var(--text-primary);font-size:24px;font-weight:700;line-height:1.1;margin-top:4px}.tr-card{background:linear-gradient(180deg,#ffffff05,#fff0);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 8px 20px #0000001f}.tr-card-header{font-size:16px;font-weight:700;margin:0 0 10px}.tr-form-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.tr-form-full{grid-column:1/-1}.form-group .tr-input,.form-group .tr-select,.tr-form-full,.tr-input,.tr-select{background:var(--bg-secondary)!important;background:var(--input-bg,var(--bg-secondary))!important;border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease}.tr-form-full::placeholder,.tr-input::placeholder{color:var(--text-secondary)}.tr-form-full:focus,.tr-input:focus,.tr-select:focus{border-color:#6d7cf5;box-shadow:0 0 0 3px #6d7cf52e;outline:none;transform:translateY(-1px)}.tr-badge{border-radius:999px;display:inline-block;font-size:12px;font-weight:700;letter-spacing:.4px;padding:4px 10px;text-transform:uppercase}.tr-priority-low{background:#22c55e26;color:#86efac}.tr-priority-medium{background:#3b82f626;color:#93c5fd}.tr-priority-high{background:#f59e0b26;color:#fcd34d}.tr-priority-urgent{background:#ef444426;color:#fca5a5}.tr-status-todo{background:#94a3b833;color:#cbd5e1}.tr-status-in_progress{background:#3b82f633;color:#93c5fd}.tr-status-completed{background:#10b98133;color:#6ee7b7}.tr-status-cancelled{background:#ef444433;color:#fca5a5}.tr-tight-input,.tr-tight-select{min-width:100px;width:100%}.tr-summary-line{color:var(--text-secondary);font-size:14px;margin-top:8px}.tr-filter-tabs{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:12px;display:inline-flex;gap:6px;padding:6px}.tr-filter-btn{background:#0000;border:none;border-radius:9px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:700;padding:8px 14px;transition:all .2s ease}.tr-filter-btn:hover{background:#94a3b82e;color:var(--text-primary)}.tr-filter-btn.active{background:linear-gradient(135deg,#6d7cf5,#7c3aed);box-shadow:0 6px 14px #6d7cf559;color:#fff}.sidebar{background:#0f172a;background:var(--bg-secondary,#0f172a);border-right:1px solid #334155;border-right:1px solid var(--border,#334155);bottom:0;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:240px;z-index:10}.settings-footer-btn{align-items:center;background:#0000;border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:6px;color:#94a3b8;color:var(--text2,#94a3b8);cursor:pointer;display:flex;font-size:13px;gap:10px;margin-bottom:10px;padding:9px 20px;transition:all .15s;width:100%}.settings-footer-btn.active,.settings-footer-btn:hover{background:#38bdf81a;border-color:#38bdf8;border-color:var(--accent,#38bdf8);color:#38bdf8;color:var(--accent,#38bdf8)}.sidebar-brand{align-items:center;border-bottom:1px solid #334155;border-bottom:1px solid var(--border,#334155);display:flex;gap:12px;padding:20px 20px 16px}.sidebar-brand h2{color:#38bdf8;color:var(--accent,#38bdf8);font-size:18px;letter-spacing:-.02em;margin:0}.sidebar-brand small{font-size:11px}.sidebar-brand small,.sidebar-logo{color:#64748b;color:var(--text3,#64748b)}.sidebar-logo{align-items:center;background:#1e293b;background:var(--surface,#1e293b);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:8px;display:flex;font-size:14px;font-weight:700;height:40px;justify-content:center;width:40px}.sidebar-logo-image{border-radius:8px;height:100%;object-fit:contain;width:100%}.sidebar-profile{align-items:center;border-bottom:1px solid #334155;border-bottom:1px solid var(--border,#334155);display:flex;gap:10px;padding:16px 20px}.sidebar-profile .avatar{align-items:center;background:#38bdf8;background:var(--primary,#38bdf8);border-radius:50%;color:#fff;display:inline-flex;font-size:14px;font-weight:700;height:36px;justify-content:center;width:36px}.sidebar-profile .avatar .avatar-image{border-radius:50%;height:100%;object-fit:cover;width:100%}.sidebar-profile .info{display:inline-block}.sidebar-profile .info .name{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:13px;font-weight:600}.sidebar-profile .info .role-label{color:#64748b;color:var(--text3,#64748b);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.nav-badge{align-items:center;animation:pulse 2s infinite;background:#ef4444;border-radius:8px;color:#fff;display:inline-flex;font-size:10px;font-weight:600;height:16px;justify-content:center;margin-left:8px;min-width:16px;padding:0 4px}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.sidebar-nav{flex:1 1;overflow-y:auto;padding:8px 0}.nav-loading{align-items:center;color:#64748b;color:var(--text3,#64748b);display:flex;flex-direction:column;font-size:12px;gap:12px;height:100%;justify-content:center}.loading-spinner-small{animation:spin .8s linear infinite;border:2px solid #334155;border-top-color:#38bdf8;border:2px solid var(--border,#334155);border-radius:50%;border-top-color:var(--accent,#38bdf8);height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}.nav-section{color:#64748b;color:var(--text3,#64748b);font-size:10px;font-weight:600;letter-spacing:.08em;padding:8px 20px 4px;text-transform:uppercase}.sidebar-nav button{align-items:center;background:none;border:none;border-left:3px solid #0000;color:#94a3b8;color:var(--text2,#94a3b8);cursor:pointer;display:flex;font-size:13px;gap:10px;padding:9px 20px;text-align:left;transition:all .15s;width:100%}.sidebar-nav button:hover{background:#38bdf80f;color:#f1f5f9;color:var(--text,#f1f5f9)}.sidebar-nav button.active{background:#38bdf814;border-left-color:#38bdf8;border-left-color:var(--accent,#38bdf8);color:#38bdf8;color:var(--accent,#38bdf8);font-weight:600}.sidebar-footer{border-top:1px solid #334155;border-top:1px solid var(--border,#334155);padding:16px 20px}.theme-toggle-btn{align-items:center;background:#0000;border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:6px;color:#94a3b8;color:var(--text2,#94a3b8);cursor:pointer;display:flex;font-size:13px;gap:10px;margin-bottom:10px;padding:9px 20px;transition:all .15s;width:100%}.theme-toggle-btn:hover{background:#38bdf81a;border-color:#38bdf8;border-color:var(--accent,#38bdf8);color:#38bdf8;color:var(--accent,#38bdf8)}.logout-btn{align-items:center;background:#0000;border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:6px;color:#94a3b8;color:var(--text2,#94a3b8);cursor:pointer;display:flex;font-size:13px;gap:10px;padding:9px 20px;transition:all .15s;width:100%}.logout-btn:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.notification-bell-container{position:relative}.notification-bell-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:10px;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;position:relative;transition:all .3s ease;width:40px}.notification-bell-button:hover{background:#ffffff40;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.notification-badge{background:linear-gradient(135deg,#f093fb,#f5576c);border:2px solid #ffffff4d;border-radius:10px;box-shadow:0 2px 8px #0003;color:#fff;font-size:10px;font-weight:700;min-width:20px;padding:3px 6px;position:absolute;right:-4px;text-align:center;top:-4px}.notification-dropdown{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0000001a;display:flex;flex-direction:column;max-height:500px;position:absolute;right:0;top:calc(100% + 8px);width:380px;z-index:1000}.notification-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:16px}.notification-header h3{color:#0f172a;font-size:16px;font-weight:600;margin:0}.mark-all-read-btn{align-items:center;background:none;border:none;border-radius:4px;color:#3b82f6;cursor:pointer;display:flex;font-size:13px;gap:4px;padding:4px 8px;transition:background .2s}.mark-all-read-btn:hover{background:#eff6ff}.delete-all-btn{align-items:center;background:none;border:none;border-radius:6px;color:#ef4444;cursor:pointer;display:flex;font-size:14px;gap:6px;justify-content:center;padding:8px 16px;transition:background .2s;width:100%}.delete-all-btn:hover{background:#fee2e2}.notification-list{max-height:400px;overflow-y:auto}.notification-empty,.notification-loading{color:#64748b;padding:40px 20px;text-align:center}.notification-empty svg{color:#cbd5e1;margin-bottom:12px}.notification-empty p{font-size:14px;margin:0}.notification-item{border-bottom:1px solid #f1f5f9;cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:background .2s}.notification-item:hover{background:#f8fafc}.notification-item.unread{background:#eff6ff}.notification-item.unread:hover{background:#dbeafe}.notification-content{flex:1 1;min-width:0}.notification-title{color:#0f172a;font-size:14px;font-weight:600;margin-bottom:4px}.notification-message{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#64748b;display:-webkit-box;font-size:13px;line-height:1.4;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis}.notification-time{color:#94a3b8;font-size:12px}.notification-actions{align-items:flex-start;display:flex;gap:4px}.notification-action-btn{align-items:center;background:none;border:none;border-radius:4px;color:#64748b;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s}.notification-action-btn:hover{background:#e2e8f0;color:#0f172a}.notification-action-btn.delete:hover{background:#fee2e2;color:#ef4444}.notification-footer{border-top:1px solid #e2e8f0;padding:12px 16px;text-align:center}.notification-footer a{color:#3b82f6;font-size:14px;font-weight:500;text-decoration:none}.notification-footer a:hover{text-decoration:underline}.app-layout{background:#020617;background:var(--bg,#020617);color:#f1f5f9;color:var(--text,#f1f5f9);display:flex;min-height:100vh}.layout-right{display:flex;flex:1 1;flex-direction:column;margin-left:240px}.app-header{background:linear-gradient(135deg,#b6ceb4,#96a78d88);box-shadow:0 4px 20px #667eea26;position:sticky;top:0;z-index:100}.header-content{gap:24px;justify-content:space-between;max-width:100%;padding:20px 32px}.header-content,.header-left{align-items:center;display:flex}.header-left{flex:0 0 auto;gap:16px}.app-logo{height:70px;object-fit:contain;width:auto}.greeting-section{display:flex;flex-direction:column;gap:4px}.greeting-text{color:#fff;font-size:24px;font-weight:700;letter-spacing:-.5px;margin:0}.greeting-subtitle{color:#ffffffd9;font-size:13px;font-weight:400;margin:0}.header-right{gap:16px}.header-right,.user-profile{align-items:center;display:flex}.user-profile{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:50px;cursor:pointer;gap:12px;padding:8px 12px 8px 8px;transition:all .3s ease}.user-profile:hover{background:#ffffff40;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.user-avatar{align-items:center;background:linear-gradient(135deg,#32d03f,#72d888);border:2px solid #ffffff4d;border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:700;height:40px;justify-content:center;width:40px}.user-info{align-items:flex-start;display:flex;flex-direction:column;gap:2px}.user-name{color:#fff;font-size:14px;font-weight:600;line-height:1}.user-role{color:#ffffffd9;font-size:12px;line-height:1;text-transform:capitalize}.main-content{background:#020617;background:var(--bg,#020617);flex:1 1;overflow-y:auto;padding:24px}.loading-screen{background:radial-gradient(1000px 600px at 15% 15%,#0ea5e933,#0000 55%),radial-gradient(900px 500px at 80% 20%,#22c55e29,#0000 55%),#020617;background:radial-gradient(1000px 600px at 15% 15%,#0ea5e933,#0000 55%),radial-gradient(900px 500px at 80% 20%,#22c55e29,#0000 55%),var(--bg,#020617);display:grid;min-height:100vh;place-items:center}.loading-card{background:color-mix(in srgb,#0f172a 92%,#fff 8%);background:color-mix(in srgb,var(--bg-secondary,#0f172a) 92%,#fff 8%);border:1px solid #334155;border:1px solid var(--border,#334155);border-radius:16px;box-shadow:0 14px 40px #02061759;padding:24px;width:min(460px,88vw)}.loading-label{color:#94a3b8;color:var(--text2,#94a3b8);font-size:12px;letter-spacing:.1em;margin:0 0 8px;text-transform:uppercase}.loading-value{color:#f1f5f9;color:var(--text,#f1f5f9);font-size:clamp(42px,8vw,64px);font-weight:800;line-height:1;margin-bottom:16px}.loading-track{background:#94a3b838;border-radius:999px;height:10px;overflow:hidden;width:100%}.loading-fill{background:linear-gradient(90deg,#0ea5e9,#22c55e);border-radius:inherit;height:100%;transition:width .1s linear}.App{min-height:100vh}.App,.loading{background:#020617;background:var(--bg,#020617);color:#f1f5f9;color:var(--text,#f1f5f9)}.loading{align-items:center;display:flex;font-size:18px;height:100vh;justify-content:center}
/*# sourceMappingURL=main.3bf05107.css.map*/