*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#2563eb;--primary-dark:#1e40af;--secondary:#10b981;--danger:#ef4444;--warning:#f59e0b;--info:#3b82f6;--success:#22c55e;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--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;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9fafb;background-color:var(--gray-50);color:#111827;color:var(--gray-900);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}.app-layout{display:flex;min-height:100vh}.sidebar{background:#fff;border-right:1px solid #e5e7eb;border-right:1px solid var(--gray-200);height:100vh;overflow-y:auto;padding:1.5rem 0;position:fixed;width:260px}.sidebar-header{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);padding:0 1.5rem 1.5rem}.sidebar-header h1{color:#2563eb;color:var(--primary);font-size:1.5rem;font-weight:700}.sidebar-nav{list-style:none;padding:1rem 0}.sidebar-nav a{align-items:center;color:#374151;color:var(--gray-700);display:flex;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s}.sidebar-nav a:hover{background:#f9fafb;background:var(--gray-50);color:#2563eb;color:var(--primary)}.sidebar-nav a.active{background:#2563eb;background:var(--primary);color:#fff;font-weight:500}.sidebar-nav svg{font-size:1.25rem;margin-right:.75rem}.main-content{flex:1 1;margin-left:260px;padding:2rem}.page-header{margin-bottom:2rem}.page-header h2{color:#111827;color:var(--gray-900);font-size:2rem;font-weight:700;margin-bottom:.5rem}.page-header p{color:#4b5563;color:var(--gray-600)}.header-actions{display:flex;gap:1rem;margin-top:1rem}.card{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;box-shadow:var(--shadow);margin-bottom:1.5rem;padding:1.5rem}.card-header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:1rem}.card-title{color:#111827;color:var(--gray-900);font-size:1.25rem;font-weight:600}.metrics-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.metric-card{background:#fff;border-left:4px solid #2563eb;border-left:4px solid var(--primary);border-radius:.5rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;box-shadow:var(--shadow);padding:1.5rem}.metric-card.success{border-left-color:#22c55e;border-left-color:var(--success)}.metric-card.warning{border-left-color:#f59e0b;border-left-color:var(--warning)}.metric-card.danger{border-left-color:#ef4444;border-left-color:var(--danger)}.metric-label{color:#4b5563;color:var(--gray-600);font-size:.875rem;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.metric-value{color:#111827;color:var(--gray-900);font-size:2rem;font-weight:700}.metric-change{font-size:.875rem;margin-top:.5rem}.metric-change.positive{color:#22c55e;color:var(--success)}.metric-change.negative{color:#ef4444;color:var(--danger)}.btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;padding:.625rem 1.25rem;text-decoration:none;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#2563eb;background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:#1e40af;background:var(--primary-dark)}.btn-secondary{background:#e5e7eb;background:var(--gray-200);color:#374151;color:var(--gray-700)}.btn-secondary:hover:not(:disabled){background:#d1d5db;background:var(--gray-300)}.btn-success{background:#22c55e;background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}.btn-danger{background:#ef4444;background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-sm{font-size:.8125rem;padding:.375rem .75rem}.form-group{margin-bottom:1.5rem}.form-label{color:#374151;color:var(--gray-700);display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.form-label.required:after{color:#ef4444;color:var(--danger);content:" *"}.form-input,.form-select,.form-textarea{background:#fff;border:1px solid #d1d5db;border:1px solid var(--gray-300);border-radius:.375rem;font-size:.875rem;padding:.625rem .875rem;transition:all .2s;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#2563eb;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-textarea{min-height:100px;resize:vertical}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.table-container{overflow-x:auto}.table{border-collapse:collapse;font-size:.875rem;width:100%}.table thead{background:#f9fafb;background:var(--gray-50);border-bottom:2px solid #e5e7eb;border-bottom:2px solid var(--gray-200)}.table th{color:#374151;color:var(--gray-700);font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.75rem 1rem;text-align:left;text-transform:uppercase}.table td{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);padding:1rem}.table tbody tr:hover{background:#f9fafb;background:var(--gray-50)}.table tbody tr:last-child td{border-bottom:none}.badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:500;padding:.25rem .75rem;text-transform:capitalize}.badge-primary{background:#2563eb1a;color:#2563eb;color:var(--primary)}.badge-success{background:#22c55e1a;color:#22c55e;color:var(--success)}.badge-warning{background:#f59e0b1a;color:#f59e0b;color:var(--warning)}.badge-danger{background:#ef44441a;color:#ef4444;color:var(--danger)}.badge-gray{background:#6b72801a;color:#4b5563;color:var(--gray-600)}.status-quoted{background:#3b82f61a;color:#3b82f6}.status-scheduled{background:#8b5cf61a;color:#8b5cf6}.status-in_progress{background:#f59e0b1a;color:#f59e0b}.status-completed{background:#22c55e1a;color:#22c55e}.status-invoiced{background:#10b9811a;color:#10b981}.status-paid{background:#0596691a;color:#059669}.status-cancelled{background:#ef44441a;color:#ef4444}.filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.filter-item{flex:1 1;min-width:200px}.loading{align-items:center;color:#6b7280;color:var(--gray-500);display:flex;justify-content:center;padding:3rem}.spinner{animation:spin .8s linear infinite;border:3px solid #e5e7eb;border-top-color:#2563eb;border:3px solid var(--gray-200);border-radius:50%;border-top-color:var(--primary);height:2rem;margin-right:1rem;width:2rem}@keyframes spin{to{transform:rotate(1turn)}}.empty-state{color:#6b7280;color:var(--gray-500);padding:3rem;text-align:center}.empty-state svg{color:#d1d5db;color:var(--gray-300);font-size:4rem;margin-bottom:1rem}.alert{border-radius:.375rem;margin-bottom:1rem;padding:1rem 1.25rem}.alert-success{background:#22c55e1a;border:1px solid #22c55e33;color:#22c55e;color:var(--success)}.alert-danger{background:#ef44441a;border:1px solid #ef444433;color:#ef4444;color:var(--danger)}.alert-warning{background:#f59e0b1a;border:1px solid #f59e0b33;color:#f59e0b;color:var(--warning)}.job-detail-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:2fr 1fr}.detail-section{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;box-shadow:var(--shadow);margin-bottom:1.5rem;padding:1.5rem}.detail-section h3{color:#111827;color:var(--gray-900);font-size:1.125rem;font-weight:600;margin-bottom:1rem}.detail-row{border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--gray-100);display:grid;grid-template-columns:140px 1fr;padding:.75rem 0}.detail-row:last-child{border-bottom:none}.detail-label{color:#4b5563;color:var(--gray-600);font-size:.875rem;font-weight:500}.detail-value{color:#111827;color:var(--gray-900)}@media (max-width:1024px){.sidebar{width:220px}.main-content{margin-left:220px}.job-detail-grid{grid-template-columns:1fr}}@media (max-width:768px){.sidebar{transform:translateX(-100%);z-index:1000}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0;padding:1rem}.form-row,.metrics-grid{grid-template-columns:1fr}}
/*# sourceMappingURL=main.3027ef7c.css.map*/