:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.sidebar-overlay{position:fixed;inset:0;z-index:20;background-color:#00000080;display:block}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:30;width:256px;background-color:#111827;color:#fff;transform:translate(-100%);transition:transform .3s ease-in-out}.sidebar.open{transform:translate(0)}.sidebar-content{display:flex;flex-direction:column;height:100%}.sidebar-logo{display:flex;align-items:center;justify-content:center;height:64px;background-color:#1f2937;gap:8px;border-bottom:1px solid #374151}.sidebar-logo-icon{color:#60a5fa;width:32px;height:32px}.sidebar-logo-text{font-size:20px;font-weight:700;color:#fff}.sidebar-nav{flex:1;padding:24px 16px;overflow-y:auto}.nav-item{display:flex;align-items:center;width:100%;padding:12px 16px;margin-bottom:8px;border:none;border-radius:8px;background:none;color:#d1d5db;text-align:left;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;text-decoration:none}.nav-item:hover{background-color:#1f2937;color:#fff;transform:translate(4px)}.nav-item.active{background-color:#2563eb;color:#fff;box-shadow:0 4px 12px #2563eb4d}.nav-item.active:hover{background-color:#1d4ed8;transform:translate(0)}.nav-icon{width:20px;height:20px;margin-right:12px;flex-shrink:0}.sidebar-footer{padding:16px;border-top:1px solid #374151;background-color:#1f2937}.sidebar-user{display:flex;align-items:center;gap:12px;padding:8px;border-radius:8px;transition:background-color .2s}.sidebar-user:hover{background-color:#374151}.sidebar-user-avatar{width:40px;height:40px;background-color:#3b82f6;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.sidebar-user-name{font-size:14px;font-weight:500;color:#fff;margin-bottom:2px}.sidebar-user-role{font-size:12px;color:#9ca3af}@media (min-width: 1024px){.sidebar{position:static;transform:translate(0)}.sidebar-overlay{display:none}}@media (max-width: 1023px) and (min-width: 768px){.sidebar{width:240px}}@media (max-width: 767px){.sidebar{width:280px}.sidebar-nav{padding:16px 12px}.nav-item{padding:14px 16px;font-size:16px}.nav-icon{width:22px;height:22px}}.app-header{background-color:#fff;box-shadow:0 1px 3px #0000001a;border-bottom:1px solid #e5e7eb;padding:16px 24px;position:sticky;top:0;z-index:10}.header-content{display:flex;align-items:center;justify-content:space-between;max-width:100%}.header-left{display:flex;align-items:center;gap:16px}.header-title{font-size:24px;font-weight:700;color:#111827;margin:0}.menu-toggle{display:none;padding:8px;border:none;border-radius:6px;background:none;color:#6b7280;cursor:pointer;transition:all .2s ease}.menu-toggle:hover{color:#374151;background-color:#f9fafb}.menu-toggle:active{transform:scale(.95)}.header-right{display:flex;align-items:center;gap:16px}.search-container{position:relative;display:block}.search-input{padding:8px 16px 8px 40px;border:1px solid #d1d5db;border-radius:8px;width:256px;font-size:14px;background-color:#f9fafb;transition:all .2s ease}.search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.search-input::placeholder{color:#9ca3af}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af;width:20px;height:20px;pointer-events:none}.notification-btn{position:relative;padding:8px;border:none;border-radius:8px;background:none;color:#6b7280;cursor:pointer;transition:all .2s ease}.notification-btn:hover{color:#374151;background-color:#f9fafb}.notification-btn:active{transform:scale(.95)}.notification-badge{position:absolute;top:-4px;right:-4px;background-color:#ef4444;color:#fff;font-size:12px;font-weight:600;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:2px solid white;box-shadow:0 2px 4px #ef44444d}.user-profile{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:8px;transition:background-color .2s ease;cursor:pointer}.user-profile:hover{background-color:#f9fafb}.user-avatar{width:32px;height:32px;background-color:#3b82f6;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.user-info{display:block}.user-name{font-size:14px;font-weight:500;color:#374151;margin-bottom:2px;line-height:1.2}.user-role{font-size:12px;color:#6b7280;line-height:1.2}@media (max-width: 1024px){.menu-toggle{display:block}}@media (max-width: 768px){.app-header{padding:12px 16px}.header-title{font-size:20px}.search-container,.user-info{display:none}.header-right{gap:12px}}@media (max-width: 640px){.header-left{gap:12px}.header-title{font-size:18px}}.dashboard-panel{padding:24px;background-color:#f9fafb;min-height:100vh;width:100%;max-width:none}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px;padding-bottom:20px;border-bottom:2px solid #e5e7eb}.header-info{flex:1}.dashboard-title{font-size:32px;font-weight:700;color:#111827;margin:0 0 8px;line-height:1.2}.dashboard-subtitle{font-size:16px;color:#6b7280;margin:0;line-height:1.4}.dashboard-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.dashboard-actions .btn-primary,.dashboard-actions .btn-secondary{display:flex;align-items:center;gap:8px;padding:10px 20px;font-weight:500}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:32px;width:100%}.stat-card{background-color:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb;transition:all .3s ease;position:relative;overflow:hidden}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#3b82f6,#1d4ed8)}.stat-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.stat-info{flex:1}.stat-title{font-size:14px;color:#6b7280;font-weight:500;margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:28px;font-weight:700;color:#111827;line-height:1.2}.stat-icon{padding:12px;border-radius:12px;color:#fff;flex-shrink:0}.stat-icon.blue{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.stat-icon.green{background:linear-gradient(135deg,#10b981,#059669)}.stat-icon.yellow{background:linear-gradient(135deg,#f59e0b,#d97706)}.stat-icon.purple{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.stat-footer{display:flex;align-items:center;justify-content:space-between}.stat-change{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:600}.stat-change.positive{color:#059669}.stat-change.negative{color:#dc2626}.change-period{font-size:12px;color:#9ca3af}.content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:24px;margin-bottom:32px;width:100%}.activity-card,.payroll-card{background-color:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb;overflow:hidden}.card-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid #f3f4f6}.card-header h3{font-size:18px;font-weight:600;color:#111827;margin:0}.view-all-btn{font-size:14px;color:#3b82f6;background:none;border:none;cursor:pointer;font-weight:500;padding:4px 8px;border-radius:6px;transition:all .2s ease}.view-all-btn:hover{background-color:#eff6ff;color:#1d4ed8}.activity-list{padding:0 24px 20px}.activity-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid #f9fafb}.activity-item:last-child{border-bottom:none}.activity-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0}.activity-dot.success{background-color:#10b981}.activity-dot.warning{background-color:#f59e0b}.activity-dot.info{background-color:#3b82f6}.activity-content{flex:1}.activity-text{font-size:14px;color:#111827;line-height:1.4;margin-bottom:4px}.activity-time{font-size:12px;color:#6b7280}.payroll-list{padding:0 24px 20px}.payroll-item{display:flex;align-items:center;justify-content:space-between;padding:16px;margin-bottom:12px;background-color:#f9fafb;border-radius:8px;border:1px solid #f3f4f6;transition:all .2s ease}.payroll-item:hover{background-color:#f3f4f6;border-color:#e5e7eb}.payroll-item:last-child{margin-bottom:0}.payroll-info{flex:1}.department-name{font-size:16px;font-weight:600;color:#111827;margin:0 0 4px}.payroll-details{display:flex;align-items:center;gap:12px;font-size:13px;color:#6b7280}.payroll-date{font-weight:500}.employee-count{padding:2px 8px;background-color:#eff6ff;color:#1d4ed8;border-radius:12px;font-size:12px;font-weight:500}.payroll-actions{text-align:right}.payroll-amount{font-size:16px;font-weight:700;color:#111827;margin-bottom:6px}.process-btn{font-size:13px;color:#3b82f6;background:none;border:none;cursor:pointer;font-weight:600;padding:4px 12px;border-radius:6px;transition:all .2s ease}.process-btn:hover{background-color:#eff6ff;color:#1d4ed8}.quick-actions-section{background-color:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb;width:100%}.section-title{font-size:20px;font-weight:600;color:#111827;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.quick-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.quick-action{display:flex;align-items:center;padding:20px;text-align:left;border:1px solid #e5e7eb;border-radius:12px;background-color:#fafafa;cursor:pointer;transition:all .3s ease;gap:16px}.quick-action:hover{background-color:#fff;border-color:#d1d5db;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.action-icon{padding:12px;border-radius:12px;color:#fff;flex-shrink:0;display:flex;align-items:center;justify-content:center}.action-icon.blue{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.action-icon.green{background:linear-gradient(135deg,#10b981,#059669)}.action-icon.purple{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.action-icon.orange{background:linear-gradient(135deg,#f97316,#ea580c)}.action-content{flex:1;display:flex;flex-direction:column;gap:4px}.action-title{font-size:16px;font-weight:600;color:#111827;line-height:1.2}.action-description{font-size:13px;color:#6b7280;line-height:1.3}@media (max-width: 1024px){.content-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}@media (max-width: 768px){.dashboard-panel{padding:16px}.dashboard-header{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:24px}.dashboard-title{font-size:28px}.dashboard-actions{width:100%;justify-content:flex-start}.stats-grid{grid-template-columns:1fr;gap:16px;margin-bottom:24px}.stat-card{padding:20px}.stat-value{font-size:24px}.content-grid{gap:16px;margin-bottom:24px}.card-header{padding:16px 20px 12px}.activity-list,.payroll-list{padding:0 20px 16px}.quick-actions-section{padding:20px}.quick-actions-grid{grid-template-columns:1fr;gap:12px}.quick-action{padding:16px}}@media (max-width: 480px){.dashboard-panel{padding:12px}.dashboard-title{font-size:24px}.dashboard-subtitle{font-size:14px}.dashboard-actions{flex-direction:column;width:100%}.dashboard-actions .btn-primary,.dashboard-actions .btn-secondary{width:100%;justify-content:center}.stats-grid{gap:12px}.stat-card{padding:16px}.stat-header{margin-bottom:12px}.stat-value{font-size:20px}.stat-icon{padding:10px}.payroll-item{flex-direction:column;align-items:flex-start;gap:12px}.payroll-actions{width:100%;display:flex;justify-content:space-between;align-items:center}.quick-action{padding:14px;gap:12px}.action-icon{padding:10px}}.department-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.department-modal{background:#fff;border-radius:12px;width:100%;max-width:900px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.department-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.department-modal-header h2{margin:0;font-size:20px;font-weight:600;color:#1e293b;display:flex;align-items:center;gap:12px}.department-modal-content{padding:24px;overflow-y:auto;flex:1}.department-actions{margin-bottom:24px}.btn-primary{display:flex;align-items:center;gap:8px;padding:12px 20px;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:8px 16px;background-color:#fff;color:#374151;border:1px solid #d1d5db;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-secondary-small{padding:6px 12px;font-size:14px;background-color:#fff;color:#374151;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;transition:all .2s ease}.btn-secondary-small:hover{background-color:#f9fafb}.btn-danger{padding:8px 16px;background-color:#ef4444;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;display:flex;align-items:center;gap:8px;font-size:14px}.alert-error{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626}.alert-success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.department-form-section{background:#f9fafb;border-radius:8px;padding:20px;margin-bottom:24px}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.form-header h3{margin:0;font-size:16px;font-weight:600;color:#1e293b}.department-form{display:flex;flex-direction:column;gap:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:#374151}.form-group input,.form-group textarea,.form-group select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background-color:#fff;transition:border-color .2s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group textarea{resize:vertical;min-height:80px}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-option{width:32px;height:32px;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all .2s ease}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:#1e293b;transform:scale(1.1)}.form-actions{display:flex;justify-content:flex-end;padding-top:16px;border-top:1px solid #e5e7eb}.departments-list{min-height:300px}.loading-state{display:flex;align-items:center;justify-content:center;padding:40px;color:#6b7280;font-size:16px}.departments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.department-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;transition:all .2s ease}.department-item:hover{border-color:#d1d5db;box-shadow:0 4px 6px -1px #0000001a}.dept-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.dept-info{display:flex;align-items:flex-start;gap:12px;flex:1}.dept-color-indicator{width:12px;height:12px;border-radius:50%;margin-top:4px;flex-shrink:0}.dept-name{margin:0 0 4px;font-size:16px;font-weight:600;color:#1e293b}.dept-description{margin:0;font-size:14px;color:#64748b;line-height:1.4}.dept-actions{display:flex;gap:4px}.action-btn.delete{color:#ef4444}.action-btn.delete:hover{background-color:#fee2e2}.dept-details{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.dept-detail{display:flex;align-items:center;gap:8px;font-size:14px;color:#64748b}.dept-detail svg{flex-shrink:0}.dept-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #f3f4f6}.status-badge.active{background-color:#dcfce7;color:#16a34a}.status-badge.inactive{background-color:#fee2e2;color:#dc2626}.dept-date{font-size:12px;color:#9ca3af}.confirm-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100}.confirm-modal{background:#fff;border-radius:8px;width:90%;max-width:400px;padding:24px}.confirm-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.confirm-header h3{margin:0;font-size:18px;font-weight:600;color:#1e293b}.warning-icon{color:#f59e0b}.confirm-content{margin-bottom:20px}.confirm-content p{margin:0 0 8px;color:#374151;line-height:1.5}.warning-text{font-size:14px;color:#ef4444;font-weight:500}.confirm-actions{display:flex;gap:12px;justify-content:flex-end}@media (max-width: 768px){.department-modal{margin:10px;max-width:none;width:calc(100% - 20px)}.department-modal-header,.department-modal-content{padding:16px}.form-row,.departments-grid{grid-template-columns:1fr}.dept-header{flex-direction:column;gap:12px;align-items:flex-start}.dept-actions{align-self:flex-end}.dept-footer{flex-direction:column;gap:8px;align-items:flex-start}.confirm-actions{flex-direction:column}.confirm-actions button{width:100%}}.employee-dashboard{padding:24px;background-color:#f8fafc;min-height:100vh}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.dashboard-title{display:flex;align-items:center;gap:12px;font-size:28px;font-weight:700;color:#1e293b;margin:0 0 8px}.dashboard-subtitle{color:#64748b;font-size:16px;margin:0}.stat-icon.users{background-color:#3b82f6}.stat-icon.departments{background-color:#10b981}.stat-icon.active{background-color:#f59e0b}.stat-icon.new{background-color:#ef4444}.filters-section{display:flex;gap:16px;margin-bottom:32px}.search-box{position:relative;flex:1;max-width:400px}.filter-dropdown{display:flex;align-items:center;gap:8px;background:#fff;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;color:#374151}.filter-dropdown select{border:none;background:transparent;font-size:14px;color:#374151;cursor:pointer}.filter-dropdown select:focus{outline:none}.departments-overview{margin-bottom:32px}.section-title{font-size:20px;font-weight:600;color:#1e293b;margin-bottom:16px}.departments-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.department-card{background:#fff;padding:20px;border-radius:12px;box-shadow:0 1px 3px #0000001a;transition:transform .2s ease}.department-card:hover{transform:translateY(-2px)}.dept-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.dept-color{width:12px;height:12px;border-radius:50%}.dept-name{font-size:16px;font-weight:600;color:#1e293b;margin:0}.dept-stats{text-align:center}.dept-count{font-size:24px;font-weight:700;color:#1e293b;margin-bottom:4px}.dept-label{color:#64748b;font-size:14px}.employees-section{margin-bottom:32px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.employees-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px}.employee-card{background:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;transition:transform .2s ease}.employee-card:hover{transform:translateY(-2px)}.employee-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.employee-avatar{width:48px;height:48px;border-radius:12px;overflow:hidden;flex-shrink:0}.employee-info{flex:1}.employee-name{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 4px}.employee-position{color:#64748b;font-size:14px;margin:0}.employee-actions{position:relative}.action-btn{padding:8px;border:none;background:none;cursor:pointer;border-radius:6px;color:#6b7280;transition:all .2s ease}.action-btn:hover{background-color:#f3f4f6;color:#374151}.employee-details{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.detail-item{display:flex;align-items:center;gap:8px;font-size:14px;color:#64748b}.detail-item svg{flex-shrink:0}.department-badge{padding:4px 8px;border-radius:6px;font-size:12px;font-weight:500}.employee-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #e5e7eb}.status-badge{padding:4px 8px;border-radius:6px;font-size:12px;font-weight:500}.card-actions{display:flex;gap:4px}.action-btn.view:hover{background-color:#dbeafe;color:#3b82f6}.action-btn.edit:hover{background-color:#fef3c7;color:#f59e0b}.action-btn.delete:hover{background-color:#fee2e2;color:#ef4444}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e5e7eb}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:#1e293b}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:#374151}.modal-body{padding:24px}@media (max-width: 768px){.employee-dashboard{padding:16px}.dashboard-header{flex-direction:column;gap:16px}.header-actions{width:100%}.stats-grid{grid-template-columns:1fr}.filters-section{flex-direction:column}.search-box{max-width:none}.departments-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.employees-grid{grid-template-columns:1fr}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.checkinout-modal{background:#fff;border-radius:12px;width:100%;max-width:800px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:#1e293b;display:flex;align-items:center;gap:12px}.close-btn{background:none;border:none;padding:8px;cursor:pointer;border-radius:6px;color:#6b7280;transition:all .2s ease}.close-btn:hover{background-color:#f3f4f6;color:#374151}.modal-body{padding:24px;overflow-y:auto;flex:1}.search-section{margin-bottom:24px}.search-box{position:relative}.search-box input{width:100%;padding:12px 12px 12px 40px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff;box-sizing:border-box}.employee-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px;max-height:500px;overflow-y:auto}.employee-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:16px;transition:all .2s ease}.employee-card:hover{border-color:#d1d5db;box-shadow:0 2px 4px #0000001a}.employee-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.employee-avatar{width:48px;height:48px;border-radius:8px;overflow:hidden;flex-shrink:0}.avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:16px}.employee-details{flex:1}.employee-name{margin:0 0 4px;font-size:16px;font-weight:600;color:#1e293b}.employee-info{margin:0 0 2px;font-size:14px;color:#64748b}.employee-dept{margin:0;font-size:12px;color:#64748b}.status-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;white-space:nowrap}.attendance-info{background:#fff;border-radius:6px;padding:12px;margin-bottom:12px;border:1px solid #e5e7eb}.attendance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.attendance-title{font-size:12px;font-weight:500;color:#374151}.attendance-date{font-size:12px;color:#64748b}.attendance-times{display:grid;grid-template-columns:1fr 1fr;gap:12px}.time-item{text-align:center}.time-label{font-size:12px;color:#64748b;margin-bottom:2px}.time-value{font-size:14px;font-weight:500}.card-actions{display:flex;gap:8px}.btn-check-in,.btn-check-out{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-check-in{background:#10b981;color:#fff}.btn-check-in:hover:not(:disabled){background:#059669}.btn-check-out{background:#f59e0b;color:#fff}.btn-check-out:hover:not(:disabled){background:#d97706}.btn-check-in:disabled,.btn-check-out:disabled{opacity:.6;cursor:not-allowed}.status-complete{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:#e5e7eb;color:#6b7280;border-radius:6px;font-size:14px;font-weight:500}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;color:#6b7280}@media (max-width: 768px){.modal-overlay{padding:10px}.checkinout-modal{max-width:none;width:100%;max-height:95vh}.modal-header,.modal-body{padding:16px}.employee-list{grid-template-columns:1fr}.employee-header{flex-direction:column;gap:12px;align-items:flex-start}.status-badge{align-self:flex-end}.attendance-times{grid-template-columns:1fr;gap:8px}.card-actions{flex-direction:column}}@media (max-width: 480px){.modal-header h2{font-size:18px}.employee-avatar{width:40px;height:40px}.avatar-placeholder{font-size:14px}}.history-modal{background:#fff;border-radius:12px;width:100%;max-width:1000px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.history-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.history-modal .modal-header h2{margin:0;font-size:20px;font-weight:600;color:#1e293b;display:flex;align-items:center;gap:12px}.employee-subtitle{font-size:16px;font-weight:400;color:#64748b}.header-actions{display:flex;gap:12px;align-items:center}.btn-export{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s ease}.btn-export:hover{background:#2563eb}.history-modal .modal-body{padding:24px;overflow-y:auto;flex:1}.employee-info-card{background:#f9fafb;border-radius:8px;padding:16px;margin-bottom:24px;border:1px solid #e5e7eb}.employee-info-content{display:flex;align-items:center;gap:16px}.employee-info-card .employee-avatar{width:60px;height:60px;border-radius:8px;overflow:hidden;flex-shrink:0}.employee-info-card .employee-avatar img{width:100%;height:100%;object-fit:cover}.employee-info-card .avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:20px}.employee-details h3{margin:0 0 4px;font-size:18px;font-weight:600;color:#1e293b}.employee-id{margin:0 0 2px;font-size:14px;color:#64748b}.employee-dept{margin:0;font-size:14px;color:#64748b}.controls-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px;flex-wrap:wrap}.month-selector{display:flex;align-items:center;gap:12px}.month-selector label{font-size:14px;font-weight:500;color:#374151}.month-selector input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff}.month-selector input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.stats-summary{display:flex;gap:20px}.stat-item{text-align:center}.stat-value{font-weight:600;font-size:16px;color:#1e293b;margin-bottom:2px}.stat-label{font-size:12px;color:#64748b}.history-table{background:#fff;border-radius:8px;border:1px solid #e5e7eb;overflow:hidden}.history-table .table-header{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 80px;background:#f9fafb;padding:16px;border-bottom:1px solid #e5e7eb;font-weight:600;color:#374151;font-size:14px}.history-table .table-body{max-height:400px;overflow-y:auto}.history-table .table-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 80px;padding:16px;border-bottom:1px solid #f3f4f6;align-items:center;font-size:14px;transition:background-color .2s ease}.history-table .table-row:hover{background-color:#f9fafb}.date-cell{color:#1e293b;font-weight:500}.time-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;display:inline-block}.working-hours{color:#1e293b;font-weight:500}.status-cell{display:flex;align-items:center;gap:6px}.notes-indicator{padding:4px 8px;background-color:#f3f4f6;border-radius:4px;font-size:12px;color:#64748b;cursor:help}.history-modal .loading-state{display:flex;align-items:center;justify-content:center;padding:60px;color:#6b7280}.history-modal .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;text-align:center;color:#6b7280}.history-modal .empty-state svg{margin-bottom:16px;color:#9ca3af}.history-modal .empty-state h3{margin:0 0 8px;font-size:18px;color:#374151}.history-modal .empty-state p{margin:0;font-size:14px}@media (max-width: 768px){.history-modal{max-width:none;width:100%;max-height:95vh}.history-modal .modal-header,.history-modal .modal-body{padding:16px}.employee-subtitle{display:none}.controls-section{flex-direction:column;align-items:stretch}.stats-summary{justify-content:space-around}.history-table{overflow-x:auto}.history-table .table-header,.history-table .table-row{grid-template-columns:120px 100px 100px 120px 100px 60px;min-width:600px}}@media (max-width: 480px){.history-modal .modal-header h2{font-size:18px}.employee-info-content{flex-direction:column;text-align:center;gap:12px}.employee-info-card .employee-avatar{width:50px;height:50px}.stats-summary{grid-template-columns:repeat(2,1fr);gap:12px}.history-table .table-header,.history-table .table-row{grid-template-columns:100px 80px 80px 100px 80px 50px;min-width:490px;font-size:12px}}.attendance-panel{padding:24px;background-color:#f8fafc;min-height:100vh}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.header-left{flex:1}.panel-title{display:flex;align-items:center;gap:12px;font-size:28px;font-weight:700;color:#1e293b;margin:0 0 8px}.title-icon{color:#3b82f6}.panel-subtitle{color:#64748b;font-size:16px;margin:0}.header-actions{display:flex;gap:12px}.btn-primary,.btn-secondary{display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:8px;font-weight:500;font-size:14px;cursor:pointer;transition:all .2s ease;border:none}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover{background-color:#2563eb;transform:translateY(-1px)}.btn-secondary{background-color:#fff;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover{background-color:#f9fafb;border-color:#9ca3af}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:32px}.stat-card{background:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;align-items:center;gap:16px;transition:transform .2s ease}.stat-card:hover{transform:translateY(-2px)}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}.stat-card.present .stat-icon{background-color:#10b981}.stat-card.absent .stat-icon{background-color:#ef4444}.stat-card.late .stat-icon{background-color:#f59e0b}.stat-card.ontime .stat-icon{background-color:#3b82f6}.stat-content{flex:1}.stat-number{font-size:24px;font-weight:700;color:#1e293b;margin-bottom:4px}.stat-label{color:#64748b;font-size:14px}.quick-actions{background:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:32px}.section-title{font-size:20px;font-weight:600;color:#1e293b;margin-bottom:20px}.today-attendance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.quick-attendance-card{background:#f9fafb;padding:16px;border-radius:8px;border:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.quick-attendance-card .employee-info{display:flex;align-items:center;gap:12px}.employee-avatar{width:40px;height:40px;border-radius:8px;overflow:hidden;flex-shrink:0}.employee-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px}.quick-attendance-card h4{margin:0;font-size:14px;font-weight:600;color:#1e293b}.quick-attendance-card p{margin:0;font-size:12px;color:#64748b}.attendance-actions{display:flex;gap:8px}.btn-check-in,.btn-check-out{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;border:none;transition:all .2s ease}.btn-check-in{background-color:#10b981;color:#fff}.btn-check-in:hover{background-color:#059669}.btn-check-out{background-color:#f59e0b;color:#fff}.btn-check-out:hover{background-color:#d97706}.status-complete{display:flex;align-items:center;gap:6px;color:#10b981;font-size:12px;font-weight:500}.filters-section{display:flex;gap:16px;margin-bottom:32px;flex-wrap:wrap}.search-box{position:relative;flex:1;min-width:300px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af}.search-box input{width:100%;padding:12px 12px 12px 40px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background-color:#fff}.search-box input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.filter-controls{display:flex;gap:12px}.date-filter,.status-filter{display:flex;align-items:center;gap:8px;background:#fff;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;color:#374151}.date-filter input,.status-filter select{border:none;background:transparent;font-size:14px;color:#374151;cursor:pointer}.date-filter input:focus,.status-filter select:focus{outline:none}.attendance-section{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.section-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e5e7eb}.results-count{color:#64748b;font-size:14px}.attendance-table{width:100%}.table-header{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr 1fr;background:#f9fafb;padding:16px 24px;border-bottom:1px solid #e5e7eb;font-weight:600;color:#374151;font-size:14px}.table-body{max-height:600px;overflow-y:auto}.table-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr 1fr;padding:16px 24px;border-bottom:1px solid #f3f4f6;align-items:center;transition:background-color .2s ease}.table-row:hover{background-color:#f9fafb}.th,.td{font-size:14px}.th{color:#374151;font-weight:600}.td{color:#64748b}.employee-cell .employee-info{display:flex;align-items:center;gap:12px}.employee-cell .employee-avatar{width:32px;height:32px;border-radius:6px;overflow:hidden}.employee-name{font-weight:600;color:#1e293b;margin-bottom:2px}.employee-dept{font-size:12px;color:#64748b}.time-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.time-badge.check-in{background-color:#dcfce7;color:#16a34a}.time-badge.check-out{background-color:#fee2e2;color:#dc2626}.no-time{color:#9ca3af;font-style:italic;font-size:12px}.working-hours{font-weight:500;color:#1e293b}.status-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;text-transform:capitalize}.action-buttons{display:flex;gap:4px}.action-btn{padding:6px;border:none;background:none;cursor:pointer;border-radius:4px;transition:all .2s ease}.action-btn.view{color:#3b82f6}.action-btn.view:hover{background-color:#dbeafe}.action-btn.edit{color:#f59e0b}.action-btn.edit:hover{background-color:#fef3c7}.loading-state{display:flex;align-items:center;justify-content:center;padding:60px;color:#6b7280;font-size:16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;text-align:center;color:#6b7280}.empty-state svg{margin-bottom:16px;color:#9ca3af}.empty-state h3{margin:0 0 8px;font-size:18px;color:#374151}.empty-state p{margin:0;font-size:14px}@media (max-width: 1200px){.table-header,.table-row{grid-template-columns:2fr 1fr 1fr 1fr 1fr 80px}.table-header .th:nth-child(7),.table-row .td:nth-child(7){display:none}}@media (max-width: 768px){.attendance-panel{padding:16px}.panel-header{flex-direction:column;gap:16px}.header-actions{width:100%}.stats-grid{grid-template-columns:1fr 1fr}.filters-section,.filter-controls{flex-direction:column}.today-attendance-grid{grid-template-columns:1fr}.attendance-table{overflow-x:auto}.table-header,.table-row{grid-template-columns:200px 100px 100px 100px 60px;min-width:560px}.table-header .th:nth-child(6),.table-header .th:nth-child(7),.table-row .td:nth-child(6),.table-row .td:nth-child(7){display:none}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}.quick-attendance-card{flex-direction:column;gap:12px;text-align:center}}.highlight{font-weight:600;color:#f59e0b}.system-panel{flex:1;overflow:auto;background-color:#f9fafb;min-height:100%}.panel-content{padding:24px;width:100%;max-width:none}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid #e5e7eb}.panel-title{font-size:28px;font-weight:700;color:#111827;margin:0;line-height:1.2}.panel-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.placeholder-content{background-color:#fff;padding:48px 32px;border-radius:12px;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb;text-align:center;max-width:600px;margin:0 auto}.placeholder-icon{font-size:64px;margin-bottom:16px;opacity:.8}.placeholder-title{font-size:24px;font-weight:600;color:#374151;margin-bottom:8px}.placeholder-text{color:#6b7280;margin-bottom:32px;font-size:16px;line-height:1.5}.loading-skeleton{max-width:400px;margin:0 auto}.loading-bar{height:12px;background-color:#e5e7eb;border-radius:6px;margin-bottom:12px;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;width:100%}.loading-bar.w-75{width:75%;margin-left:auto;margin-right:auto}.loading-bar.w-50{width:50%;margin-left:auto;margin-right:auto}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.content-card{background-color:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb;margin-bottom:24px;transition:box-shadow .2s ease}.content-card:hover{box-shadow:0 4px 6px -1px #0000001a}.content-card h3{font-size:20px;font-weight:600;color:#111827;margin-bottom:16px;border-bottom:2px solid #f3f4f6;padding-bottom:8px}.content-grid{display:grid;gap:24px;margin-bottom:32px}.content-grid.two-column{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.content-grid.three-column{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.content-grid.four-column{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}@media (max-width: 768px){.panel-content{padding:16px}.panel-header{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:24px}.panel-title{font-size:24px}.panel-actions{width:100%;justify-content:flex-start}.placeholder-content{padding:32px 24px}.placeholder-icon{font-size:48px}.placeholder-title{font-size:20px}.content-grid{grid-template-columns:1fr}}@media (max-width: 480px){.panel-content{padding:12px}.panel-header{margin-bottom:20px}.panel-title{font-size:20px}.panel-actions{flex-direction:column;width:100%}.panel-actions .btn-primary,.panel-actions .btn-secondary{width:100%;justify-content:center}.placeholder-content{padding:24px 16px}}.dashboard-main{display:flex;min-height:100vh;width:100%;background-color:#f3f4f6}.dashboard-content{flex:1;display:flex;flex-direction:column;width:100%;min-width:0;min-height:100vh;overflow-y:auto}.dashboard-main,.dashboard-content{max-width:none}@media (max-width: 1024px){.dashboard-main{position:relative}}@media (max-width: 768px){.dashboard-content{width:100%}}.dashboard-content>*{width:100%}.dashboard-content{scroll-behavior:smooth}.dashboard-content::-webkit-scrollbar{width:8px}.dashboard-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.dashboard-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.dashboard-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}#root,.app{width:100%;height:100vh;margin:0;padding:0;box-sizing:border-box}*{box-sizing:border-box}body{margin:0;padding:0;width:100%;height:100vh}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
