body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;display:flex;justify-content:center;min-height:80vh}.login-box{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:400px;padding:2.5rem;width:100%}.login-box h2{color:#2c3e50;margin-bottom:1.5rem;text-align:center}.login-help{border-top:1px solid #eee;color:#7f8c8d;font-size:.9rem;margin-top:1.5rem;padding-top:1.5rem;text-align:center}.login-help .warning{color:#e74c3c;font-weight:500;margin-top:.5rem}.dashboard-container h1{color:#2c3e50;margin-bottom:2rem}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.stat-card h3{color:#7f8c8d;font-size:.9rem;letter-spacing:.5px;margin-bottom:.5rem;text-transform:uppercase}.stat-value{color:#2c3e50;font-size:2.5rem;font-weight:700}.quick-actions{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;padding:2rem}.quick-actions h2{color:#2c3e50;margin-bottom:1.5rem}.action-buttons{display:flex;flex-wrap:wrap;gap:1rem}.action-btn{background-color:#ecf0f1;border-radius:4px;color:#2c3e50;display:inline-block;font-weight:500;padding:1rem 1.5rem;text-decoration:none;transition:all .3s}.action-btn:hover{background-color:#bdc3c7;box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.action-btn.primary{background-color:#3498db;color:#fff}.action-btn.primary:hover{background-color:#2980b9}.recent-entries{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:2rem}.recent-entries h2{color:#2c3e50;margin-bottom:1.5rem}.timesheet-entry-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:2rem}.timesheet-entry-container h2{color:#2c3e50;margin-bottom:2rem}.timesheet-form{max-width:800px}.form-row{grid-gap:1.5rem;gap:1.5rem}.attachment-section{border-top:2px solid #ecf0f1;margin-top:2rem;padding-top:2rem}.attachment-section h3{color:#2c3e50;margin-bottom:1rem}.attachment-toggle{display:flex;gap:1rem;margin-bottom:1.5rem}.toggle-btn{background-color:#ecf0f1;border:2px solid #0000;border-radius:4px;color:#2c3e50;cursor:pointer;flex:1 1;font-size:1rem;padding:1rem;transition:all .3s}.toggle-btn.active{background-color:#3498db;border-color:#2980b9;color:#fff}.sharepoint-preferred{background-color:#e8f8f5;border:2px solid #27ae60;border-radius:4px;padding:1.5rem;position:relative}.preference-badge{background-color:#27ae60;border-radius:12px;color:#fff;font-size:.85rem;font-weight:500;left:1rem;padding:.25rem .75rem;position:absolute;top:-12px}.help-text{color:#7f8c8d;font-size:.9rem;font-style:italic;margin-top:.5rem}.form-actions{margin-top:2rem}.timesheet-list-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:2rem}.list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.list-header h2{color:#2c3e50;margin:0}.total-hours{color:#2c3e50;font-size:1.2rem}.total-hours strong{color:#27ae60;font-size:1.5rem}.filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem}.filter-group{display:flex;flex-direction:column}.filter-group label{color:#7f8c8d;font-size:.9rem;margin-bottom:.25rem}.filter-group input{border:1px solid #ddd;border-radius:4px;padding:.5rem}.notes-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sharepoint-link{color:#3498db;display:inline-block;margin-right:.5rem;text-decoration:none}.sharepoint-link:hover{text-decoration:underline}.attachment-badge{background-color:#ecf0f1;border-radius:4px;color:#7f8c8d;font-size:.85rem;padding:.25rem .5rem}.customer-management-container,.project-management-container,.user-management-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:2rem}.customer-form,.project-form,.user-form{background-color:#f8f9fa;border-radius:4px;margin-bottom:2rem;padding:1.5rem}.form-group.checkbox{align-items:center;display:flex}.form-group.checkbox label{margin-bottom:0}.form-group.checkbox input{margin:0}.role-badge{font-weight:500;text-transform:uppercase}.role-employee{background-color:#e3f2fd;color:#1976d2}.role-manager{background-color:#fce4ec;color:#c2185b}.btn-toggle{background-color:#9b59b6}.btn-toggle:hover{background-color:#8e44ad}.reports-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:2rem}.reports-container h2{color:#2c3e50;margin-bottom:2rem}.filters-section{background-color:#f8f9fa;border-radius:4px;margin-bottom:2rem;padding:1.5rem}.filters-section h3{color:#2c3e50;margin-bottom:1rem}.filters-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1rem}.filter-actions{display:flex;gap:1rem}.report-summary{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.summary-card{background-color:#ecf0f1;border-radius:4px;padding:1.5rem;text-align:center}.summary-card h4{color:#7f8c8d;font-size:.9rem;margin-bottom:.5rem;text-transform:uppercase}.summary-value{color:#2c3e50;font-size:2rem;font-weight:700}.total-row{background-color:#34495e!important;color:#fff;font-weight:700}.total-row td{border-top:2px solid #2c3e50}.no-data-message{color:#95a5a6;font-style:italic;padding:3rem;text-align:center}.customer-management-container{margin:0 auto;max-width:1400px;padding:2rem 2rem 80px}.customer-form{background:#fff;border:1px solid #ddd;border-radius:8px;margin-bottom:2rem;padding:2rem}.form-group input,.form-group textarea{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#5a6c7d;outline:none}.form-group.checkbox label{align-items:center;display:flex;gap:.5rem}.form-group.checkbox input{width:auto}.customers-table{background:#fff;border:1px solid #ddd;border-collapse:collapse;border-radius:8px;overflow:hidden;width:100%}.customers-table td,.customers-table th{border-bottom:1px solid #ecf0f1;padding:1rem;text-align:left}.customers-table th{background:#f8f9fa;color:#2c3e50;font-weight:600}.customers-table tr:last-child td{border-bottom:none}.customers-table tr:hover{background:#f8f9fa}.btn-delete{background:#e74c3c}.btn-delete:hover{background:#c0392b}.user-management-container{margin:0 auto;max-width:1400px;padding:2rem 2rem 80px}.header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.header h2{color:#2c3e50;margin:0}.btn-primary,.btn-secondary{font-weight:600}.btn-edit{background:#3498db;margin-left:.5rem}.btn-edit:hover{background:#2980b9}.btn-toggle{background:#95a5a6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.btn-toggle:hover{background:#7f8c8d}.error-message{background:#fee;border:1px solid #fcc}.success-message{background:#efe;border:1px solid #cfc}.user-form{background:#fff;border:1px solid #ddd;border-radius:8px;margin-bottom:2rem;padding:2rem}.form-group input,.form-group select{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem;width:100%}.form-group input:focus,.form-group select:focus{border-color:#5a6c7d;outline:none}.form-group small{color:#666;display:block;font-size:.85rem;margin-top:.25rem}.users-table{background:#fff;border:1px solid #ddd;border-collapse:collapse;border-radius:8px;overflow:hidden;width:100%}.users-table td,.users-table th{border-bottom:1px solid #ecf0f1;padding:1rem;text-align:left}.users-table th{background:#f8f9fa;color:#2c3e50;font-weight:600}.users-table tr:last-child td{border-bottom:none}.users-table tr:hover{background:#f8f9fa}.status-active,.status-inactive{font-weight:600}.actions-cell{display:flex;gap:.5rem}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #ecf0f1;display:flex;justify-content:space-between;padding:1.5rem}.modal-header h3{color:#2c3e50;font-size:1.25rem;margin:0}.modal-close{background:none;border:none;color:#95a5a6;cursor:pointer;font-size:2rem;height:30px;line-height:1;padding:0;width:30px}.modal-close:hover{color:#7f8c8d}.leave-form{padding:1.5rem}@media (max-width:768px){.user-management-container{padding:1rem}.header{align-items:stretch;flex-direction:column;gap:1rem}.users-table{display:block;overflow-x:auto}.actions-cell{flex-direction:column}.modal-content{max-width:none;width:95%}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.app{display:flex;flex-direction:column;min-height:100vh}.navbar{align-items:center;background-color:#2c3e50;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1rem 2rem}.nav-brand h1{font-size:1.5rem;margin:0}.nav-links{display:flex;gap:1.5rem}.nav-links a{border-radius:4px;color:#fff;padding:.5rem 1rem;text-decoration:none;transition:background-color .3s}.nav-links a:hover{background-color:#34495e}.nav-user{align-items:center;display:flex;gap:1rem}.btn-logout{background-color:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background-color .3s}.btn-logout:hover{background-color:#c0392b}.main-content{flex:1 1;margin:0 auto;max-width:1400px;padding:2rem;width:100%}.loading{color:#7f8c8d;padding:3rem;text-align:center}.error-message{background-color:#fee;border-left:4px solid #c33;color:#c33}.error-message,.success-message{border-radius:4px;margin-bottom:1rem;padding:1rem}.success-message{background-color:#efe;border-left:4px solid #3c3;color:#3c3}.btn-primary{background-color:#3498db;border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .3s}.btn-primary:hover:not(:disabled){background-color:#2980b9}.btn-primary:disabled{background-color:#95a5a6;cursor:not-allowed}.btn-secondary{background-color:#95a5a6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .3s}.btn-secondary:hover{background-color:#7f8c8d}.btn-edit{background-color:#f39c12;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;margin-right:.5rem;padding:.5rem 1rem}.btn-edit:hover{background-color:#e67e22}.btn-delete{background-color:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.btn-delete:hover{background-color:#c0392b}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{font-family:inherit;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}table{background-color:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;width:100%}table thead{background-color:#34495e;color:#fff}table td,table th{padding:1rem;text-align:left}table tbody tr:nth-child(2n){background-color:#f8f9fa}table tbody tr:hover{background-color:#e8f4f8}.no-data{color:#95a5a6;padding:2rem!important}.status-active{color:#27ae60;font-weight:500}.status-inactive{color:#e74c3c;font-weight:500}.actions-cell{white-space:nowrap}.app-header{background:linear-gradient(135deg,#5a6c7d,#4a5a6b);box-shadow:0 2px 8px #00000026;color:#fff;height:80px;justify-content:space-between;padding:0 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.app-header,.header-left{align-items:center;display:flex}.header-left{gap:1rem}.company-logo{height:50px;object-fit:contain;width:auto}.company-info{display:flex;flex-direction:column;gap:.25rem}.company-name{color:#fff;font-size:1.5rem;font-weight:700;letter-spacing:.5px;margin:0}.app-subtitle{color:#fffc;font-size:.85rem;font-weight:400}.header-nav{display:flex;flex:1 1;gap:.5rem;justify-content:center}.nav-link{border-radius:4px;color:#fff;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:all .2s}.nav-link:hover{background:#ffffff26}.nav-link.active{background:#fff3}.header-right{align-items:center;display:flex;gap:1.5rem}.user-info{align-items:flex-end;display:flex;flex-direction:column;gap:.25rem}.user-name{font-size:.95rem;font-weight:600}.user-role{color:#ffffffb3;font-size:.8rem;text-transform:capitalize}.logout-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1.25rem;transition:all .2s}.logout-btn:hover{background:#ffffff4d;border-color:#ffffff80}@media (max-width:1024px){.app-header{flex-wrap:wrap;height:auto;padding:1rem}.header-nav{flex-wrap:wrap;justify-content:flex-start;margin-top:1rem;order:3;width:100%}}.status-bar{background:#2c3e50;bottom:0;box-shadow:0 -2px 8px #00000026;color:#fff;left:0;padding:.75rem 2rem;position:fixed;right:0;z-index:99}.status-bar-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1400px}.status-info{color:#ffffffe6;font-size:.9rem}.pending-approvals{align-items:center;background:#f1c40f33;border:1px solid #f1c40f66;border-radius:4px;cursor:pointer;display:flex;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.pending-approvals:hover{background:#f1c40f4d;border-color:#f1c40f99;transform:translateX(2px)}.pending-icon{animation:pulse 2s infinite;font-size:1.1rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.pending-text{color:#f1c40f;font-weight:600}.pending-arrow{color:#f1c40f;font-weight:700}.no-pending{color:#2ecc71;font-weight:500}@media (max-width:768px){.status-bar{padding:.5rem 1rem}.status-bar-content{align-items:flex-start;flex-direction:column;gap:.5rem}.pending-approvals{justify-content:center;width:100%}}.leave-page{margin:0 auto;max-width:1400px;padding:2rem 2rem 80px}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.page-header h1{color:#2c3e50;margin:0}.alert{border-radius:4px;margin-bottom:1rem;padding:1rem}.alert-error{background:#fee;border:1px solid #fcc;color:#c33}.alert-success{background:#efe;border:1px solid #cfc;color:#3c3}.leave-balances{margin-bottom:2rem}.leave-balances h2{color:#2c3e50;margin-bottom:1rem}.balance-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.balance-card{background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.balance-card h3{color:#5a6c7d;font-size:1.1rem;margin:0 0 1rem}.balance-details{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.balance-item{align-items:center;display:flex;justify-content:space-between}.balance-item .label{color:#666;font-size:.9rem}.balance-item .value{color:#2c3e50;font-weight:600}.balance-item .value.used{color:#e74c3c}.balance-item .value.remaining{color:#27ae60;font-size:1.1rem}.balance-bar{background:#ecf0f1;border-radius:4px;height:8px;overflow:hidden}.balance-bar-fill{background:linear-gradient(90deg,#3498db,#2980b9);height:100%;transition:width .3s}.leave-form-section{background:#fff;border:1px solid #ddd;border-radius:8px;margin-bottom:2rem;padding:2rem}.leave-form-section h2{color:#2c3e50;margin:0 0 1.5rem}.leave-form{display:flex;flex-direction:column;gap:1rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#2c3e50;font-size:.9rem;font-weight:600}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#5a6c7d;outline:none}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem}.btn{border:none;border-radius:4px;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.btn-primary{background:#5a6c7d;color:#fff}.btn-primary:hover{background:#4a5a6b}.btn-secondary{background:#ecf0f1;color:#2c3e50}.btn-secondary:hover{background:#d5dbdb}.leave-requests-section{margin-top:2rem}.leave-requests-section h2{color:#2c3e50;margin-bottom:1rem}.requests-table{background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden}.requests-table table{border-collapse:collapse;width:100%}.requests-table td,.requests-table th{border-bottom:1px solid #ecf0f1;padding:1rem;text-align:left}.requests-table th{background:#f8f9fa;color:#2c3e50;font-weight:600}.requests-table tr:last-child td{border-bottom:none}.requests-table tr:hover{background:#f8f9fa}.status-pending{background:#fff3cd;color:#856404}.status-approved{background:#d4edda;color:#155724}.status-rejected{background:#f8d7da;color:#721c24}.status-cancelled{background:#e2e3e5;color:#383d41}.auto-approved-label{color:#666;font-size:.75rem;font-style:italic}.no-data{color:#666;font-style:italic;padding:2rem;text-align:center}.loading{align-items:center;color:#666;display:flex;font-size:1.2rem;justify-content:center;min-height:400px}@media (max-width:768px){.leave-page{padding:1rem}.page-header{align-items:stretch;flex-direction:column;gap:1rem}.balance-cards,.form-row{grid-template-columns:1fr}.requests-table{overflow-x:auto}.form-actions{flex-direction:column}}.team-page{margin:0 auto;max-width:1400px;padding:2rem 2rem 80px}.team-list{margin-top:2rem}.team-list h2{color:#2c3e50;margin-bottom:1rem}.team-table{background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden}.team-table table{border-collapse:collapse;width:100%}.team-table td,.team-table th{border-bottom:1px solid #ecf0f1;padding:1rem;text-align:left}.team-table th{background:#f8f9fa;color:#2c3e50;font-weight:600}.team-table tr:last-child td{border-bottom:none}.team-table tr:hover{background:#f8f9fa}.role-badge{border-radius:12px;display:inline-block;font-size:.85rem;font-weight:600;padding:.25rem .75rem;text-transform:capitalize}.role-admin{background:#e8f5e9;color:#2e7d32}.role-manager{background:#e3f2fd;color:#1565c0}.role-employee{background:#f3e5f5;color:#6a1b9a}.status-badge{border-radius:12px;display:inline-block;font-size:.85rem;font-weight:600;padding:.25rem .75rem}.status-active{background:#d4edda;color:#155724}.status-inactive{background:#f8d7da;color:#721c24}@media (max-width:768px){.team-page{padding:1rem}.team-table{overflow-x:auto}}
/*# sourceMappingURL=main.50c8487a.css.map*/