@import url(https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600&family=Space+Grotesk:wght@500;700&display=swap);:root{--primary:#0f172a;--primary-hover:#1e293b;--primary-light:#e8eefb;--accent-blue:#3b82f6;--secondary:#64748b;--success:#059669;--success-light:#d1fae5;--warning:#d97706;--warning-light:#fef3c7;--danger:#dc2626;--danger-light:#fee2e2;--info:#3b82f6;--info-light:#dbeafe;--bg:#f8fafc;--bg-white:#fff;--border:#cbd5e1;--text-primary:#0f172a;--text-secondary:#64748b;--text-light:#94a3b8;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--radius:8px;--radius-lg:12px}*{box-sizing:border-box;margin:0;padding:0}body{background:#f8fafc;background:var(--bg);color:#0f172a;color:var(--text-primary);font-family:Plus Jakarta Sans,sans-serif;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:Space Grotesk,sans-serif}.app-layout{display:flex;min-height:100vh}.sidebar{background:#0f172a;bottom:0;color:#f8fafc;left:0;overflow-y:auto;position:fixed;top:0;transition:transform .3s ease;width:260px;z-index:100}.sidebar-header{border-bottom:1px solid #f8fafc1a;padding:24px 20px}.sidebar-header h1{color:#f8fafc;font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700;letter-spacing:-.5px}.sidebar-header p{color:#f8fafc80;font-size:12px;margin-top:4px}.sidebar-nav{padding:16px 12px}.nav-section{margin-bottom:24px}.nav-section-title{color:#f8fafc66;font-size:11px;font-weight:600;letter-spacing:1px;margin-bottom:8px;padding:0 8px;text-transform:uppercase}.nav-item{align-items:center;border-radius:6px;color:#f8fafcb3;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:12px;padding:10px 12px;text-decoration:none;transition:all .2s}.nav-item:hover{background:#f8fafc1a;color:#f8fafc}.nav-item.active{background:#3b82f6;color:#f8fafc}.nav-item .icon{font-size:16px;text-align:center;width:20px}.nav-item .badge{background:#dc2626;background:var(--danger);border-radius:10px;color:#fff;font-size:11px;font-weight:600;margin-left:auto;padding:2px 8px}.main-content{flex:1 1;margin-left:260px;min-height:100vh}.top-bar{align-items:center;background:#fff;background:var(--bg-white);border-bottom:1px solid #cbd5e1;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 32px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.top-bar-left h2{font-size:20px;font-weight:600}.top-bar-left p{color:#64748b;color:var(--text-secondary);font-size:13px}.top-bar-right{gap:16px}.top-bar-right,.user-info{align-items:center;display:flex}.user-info{border-radius:8px;cursor:pointer;gap:10px;padding:6px 12px;transition:background .2s}.user-info:hover{background:#f8fafc;background:var(--bg)}.user-avatar{align-items:center;background:#0f172a;background:var(--primary);border-radius:50%;color:#fff;display:flex;height:36px;justify-content:center;width:36px}.user-avatar,.user-details .name{font-size:14px;font-weight:600}.user-details .role{color:#64748b;color:var(--text-secondary);font-size:12px}.page-content{padding:32px}.card{background:#fff;background:var(--bg-white);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;box-shadow:var(--shadow);overflow:hidden}.card-header{align-items:center;border-bottom:1px solid #cbd5e1;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:20px 24px}.card-header h3{font-size:16px;font-weight:600}.card-body{padding:24px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:32px}.stat-card{align-items:flex-start;background:#fff;background:var(--bg-white);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;box-shadow:var(--shadow);display:flex;gap:16px;padding:24px}.stat-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;font-size:22px;height:48px;justify-content:center;width:48px}.stat-icon.blue{background:#dbeafe;background:var(--info-light);color:#3b82f6;color:var(--info)}.stat-icon.green{background:#d1fae5;background:var(--success-light);color:#059669;color:var(--success)}.stat-icon.orange{background:#fef3c7;background:var(--warning-light);color:#d97706;color:var(--warning)}.stat-icon.red{background:#fee2e2;background:var(--danger-light);color:#dc2626;color:var(--danger)}.stat-content h4{color:#64748b;color:var(--text-secondary);font-size:13px;font-weight:500;margin-bottom:4px}.stat-content .value{font-size:28px;font-weight:700;line-height:1.2}.stat-content .subtitle{color:#94a3b8;color:var(--text-light);font-size:12px;margin-top:4px}.table-container{overflow-x:auto}table{border-collapse:collapse;width:100%}table th{background:#f8fafc;border-bottom:1px solid #cbd5e1;color:#64748b;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}table td{border-bottom:1px solid #e2e8f0;font-size:14px;padding:12px 16px}table tbody tr:hover{background:#f8fafc}.status-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:12px;font-weight:600;padding:4px 12px}.status-badge.active,.status-badge.approved{background:#d1fae5;background:var(--success-light);color:#059669;color:var(--success)}.status-badge.inactive,.status-badge.rejected{background:#fee2e2;background:var(--danger-light);color:#dc2626;color:var(--danger)}.status-badge.draft{background:#f3f4f6;color:#64748b;color:var(--secondary)}.status-badge.pending,.status-badge.submitted{background:#fef3c7;background:var(--warning-light);color:#d97706;color:var(--warning)}.status-badge.on_hold,.status-badge.on_leave{background:#dbeafe;background:var(--info-light);color:#3b82f6;color:var(--info)}.status-badge.opportunity{background:#fef3c7;background:var(--warning-light);color:#d97706;color:var(--warning)}.status-badge.closed{background:#f3f4f6;color:#64748b;color:var(--secondary)}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;text-decoration:none;transition:all .2s}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb}.btn-success{background:#059669;background:var(--success);color:#fff}.btn-success:hover{opacity:.9}.btn-danger{background:#dc2626;background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-secondary{background:#f8fafc;background:var(--bg);border:1px solid #cbd5e1;border:1px solid var(--border);color:#0f172a;color:var(--text-primary)}.btn-secondary:hover{background:#e5e7eb}.btn-sm{font-size:13px;padding:6px 14px}.btn:disabled{cursor:not-allowed;opacity:.5}.form-group{margin-bottom:20px}.form-group label{color:#64748b;color:var(--text-secondary);display:block;font-size:13px;font-weight:600;margin-bottom:6px}.form-control{background:#fff;border:1px solid #cbd5e1;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:14px;padding:10px 14px;transition:border-color .2s;width:100%}.form-control:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626;outline:none}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}select.form-control{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%236b7280' d='M6 8 1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md);max-height:90vh;max-width:640px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #cbd5e1;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:20px 24px}.modal-header h3{font-size:18px;font-weight:600}.modal-close{background:none;border:none;color:#64748b;color:var(--text-secondary);cursor:pointer;font-size:24px;line-height:1;padding:4px}.modal-body{padding:24px}.modal-footer{border-top:1px solid #cbd5e1;border-top:1px solid var(--border);display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.filters-bar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.search-input{flex:1 1;min-width:200px;position:relative}.search-input input{background:#fff;border:1px solid #cbd5e1;border:1px solid var(--border);border-radius:8px;font-size:14px;padding:10px 14px 10px 40px;width:100%}.search-input input:focus{border-color:#3b82f6;outline:none}.timesheet-grid{grid-gap:1px;background:#cbd5e1;background:var(--border);border-radius:8px;border-radius:var(--radius);display:grid;gap:1px;grid-template-columns:minmax(200px,2fr) repeat(7,1fr) auto;overflow:hidden}.timesheet-grid .header-cell{background:#f8fafc;color:#64748b;font-size:12px;font-weight:600;padding:12px 8px;text-align:center}.timesheet-grid .header-cell.service-col{padding-left:16px;text-align:left}.timesheet-grid .row-cell{align-items:center;background:#fff;display:flex;justify-content:center;padding:8px}.timesheet-grid .row-cell.service-col{font-size:13px;justify-content:flex-start;padding-left:16px}.timesheet-grid .row-cell.service-col .service-name{font-weight:500}.timesheet-grid .row-cell.service-col .engagement-name{color:#64748b;color:var(--text-secondary);font-size:11px}.timesheet-grid .hour-input{border:1px solid #cbd5e1;border:1px solid var(--border);border-radius:6px;font-size:14px;font-weight:500;max-width:60px;padding:8px;text-align:center;width:100%}.timesheet-grid .hour-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626;outline:none}.timesheet-grid .total-cell{background:#f0f7ff;color:#0f172a;color:var(--primary);font-weight:600}.charts-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin-bottom:32px}.chart-card{background:#fff;background:var(--bg-white);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;box-shadow:var(--shadow);padding:24px}.chart-card h3{font-size:16px;font-weight:600;margin-bottom:16px}.login-page{align-items:center;background:linear-gradient(135deg,#0f172a,#3b82f6);display:flex;justify-content:center;min-height:100vh}.login-card{background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;max-width:420px;padding:48px;width:100%}.login-card h1{font-size:28px;font-weight:700;margin-bottom:8px;text-align:center}.login-card .subtitle{color:#64748b;color:var(--text-secondary);font-size:14px;margin-bottom:32px;text-align:center}.login-card .form-control{padding:12px 16px}.login-card .btn-primary{font-size:15px;font-weight:600;justify-content:center;padding:12px;width:100%}.login-error{background:#fee2e2;background:var(--danger-light);border-radius:8px;color:#dc2626;color:var(--danger);font-size:14px;margin-bottom:20px;padding:12px 16px;text-align:center}.empty-state{color:#64748b;color:var(--text-secondary);padding:60px 20px;text-align:center}.empty-state .icon{font-size:48px;margin-bottom:16px}.empty-state h3{color:#0f172a;color:var(--text-primary);font-size:18px;font-weight:600;margin-bottom:8px}.loading{align-items:center;display:flex;justify-content:center;padding:60px}.spinner{animation:spin .8s linear infinite;border:3px solid #cbd5e1;border-top-color:#0f172a;border:3px solid var(--border);border-radius:50%;border-top-color:var(--primary);height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0}.page-content{padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.charts-grid,.form-row{grid-template-columns:1fr}}a{color:#3b82f6;text-decoration:none}a:hover{color:#2563eb;text-decoration:underline}.financial-data,.stat-content .value{font-family:Plus Jakarta Sans,sans-serif}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.text-right{text-align:right}.text-center{text-align:center}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}
/*# sourceMappingURL=main.98d523aa.css.map*/