body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-header{align-items:center;background-color:#f0f0f0;display:flex;justify-content:space-between;padding:20px}.app-header h1{color:#333;margin:0}.sign-out-button{background-color:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:10px 20px;transition:background-color .3s}.sign-out-button:hover{background-color:#c0392b}.app-main{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:40px}.api-button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:12px 24px;transition:background-color .3s}.api-button:hover{background-color:#2980b9}.api-button:disabled{background-color:#95a5a6;cursor:not-allowed}.message{background-color:#f9f9f9;border-left:4px solid #2ecc71;border-radius:4px;margin-top:20px;max-width:600px;padding:20px;width:100%}.loading-container{flex-direction:column;height:100vh}.change-password-container,.loading-container{align-items:center;display:flex;justify-content:center}.change-password-container{background-color:#f5f5f5;min-height:100vh}.change-password-container form{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;max-width:400px;padding:2rem;width:100%}.change-password-container h2{color:#333;margin-bottom:1rem;text-align:center}.change-password-container p{color:#666;margin-bottom:1.5rem;text-align:center}.form-group{margin-bottom:1rem}.form-group label{color:#666;margin-bottom:.5rem}.change-password-button,.form-group input{font-size:1rem;padding:.75rem}.change-password-button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:1rem;transition:background-color .2s;width:100%}.change-password-button:hover{background-color:#0056b3}.change-password-button:disabled{background-color:#ccc;cursor:not-allowed}.error-message{color:#dc3545;margin-bottom:1rem;padding:.5rem}.user-config-container{align-items:center;background-color:#f5f5f5;display:flex;justify-content:center;min-height:100vh;padding:20px}.user-config-card{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;max-width:600px;padding:30px;width:100%}.user-config-card h2{color:#333;margin-bottom:10px;text-align:center}.user-config-card p{color:#666;margin-bottom:20px;text-align:center}.user-type-option{border:2px solid #ddd;padding:20px;transition:all .3s}.user-type-option:hover{border-color:#007bff}.user-type-option.selected{background-color:#007bff0d;border-color:#007bff}.option-icon{font-size:32px;margin-bottom:10px}.user-type-option h4{margin:0 0 5px}.user-type-option p{font-size:14px}.form-group input{font-size:16px;padding:12px}.form-group input:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.zip-code-input-group{align-items:center;display:flex;gap:10px;margin-bottom:10px}.zip-code-input-group input{border:1px solid #ddd;border-radius:4px;flex:1 1;font-size:16px;padding:12px}.zip-code-input-group input:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.remove-zip-btn{background-color:#f8f9fa;border:1px solid #dc3545;border-radius:4px;color:#dc3545;cursor:pointer;font-size:14px;padding:8px 15px;transition:all .2s}.remove-zip-btn:hover{background-color:#dc3545;color:#fff}.add-zip-btn{background-color:#f8f9fa;border:1px solid #007bff;border-radius:4px;color:#007bff;cursor:pointer;font-size:14px;margin-top:10px;padding:10px;transition:all .2s;width:100%}.add-zip-btn:hover{background-color:#007bff;color:#fff}.submit-btn{background-color:#007bff;font-size:16px;padding:14px;transition:background-color .3s;width:100%}.submit-btn:hover{background-color:#0056b3}.submit-btn:disabled{background-color:#83b4e8;cursor:not-allowed}.error-message{background-color:#f8d7da;color:#721c24;padding:10px;text-align:center}@media (max-width:768px){.user-type-options{flex-direction:column}.user-config-card{padding:20px}}.client-dashboard{margin:0 auto;max-width:1200px}.dashboard-header-actions{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.dashboard-header-actions h2{color:#333;margin:0}.create-job-btn{background-color:#4285f4;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:10px 20px;transition:background-color .3s}.create-job-btn:hover{background-color:#3367d6}.create-job-form-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:30px;padding:25px}.create-job-form h3{color:#333;margin-bottom:20px;margin-top:0}.form-group label{margin-bottom:8px}.form-group input,.form-group textarea{border:1px solid #ddd;border-radius:4px;font-size:16px;padding:12px;transition:border-color .3s;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#4285f4;outline:none}.form-error{background-color:#ffebee;border-radius:4px;color:#d32f2f;margin-bottom:20px;padding:12px}.form-actions{display:flex;gap:15px;justify-content:flex-end}.cancel-btn,.submit-btn{border:none;border-radius:4px;cursor:pointer;font-weight:500;padding:12px 20px}.status-badge.new{background-color:#e3f2fd;color:#1976d2}.bid-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}.accept-bid-btn,.reject-bid-btn,.view-bids-btn{border:none;border-radius:4px;cursor:pointer;font-weight:500;padding:8px 16px}.view-bids-btn{background-color:#4285f4;color:#fff}.accept-action-btn,.accept-bid-btn{background-color:#4caf50;color:#fff}.reject-action-btn,.reject-bid-btn{background-color:#e53935;color:#fff}.bids-modal,.response-modal{background:#fff;border-radius:8px;box-shadow:0 10px 30px #0003;max-width:720px;width:100%}.accept-action-btn,.cancel-btn,.reject-action-btn,.submit-btn{border:none;border-radius:4px;cursor:pointer;font-weight:500;padding:10px 16px}.cancel-btn{background-color:#f1f1f1;color:#333}.submit-btn{background-color:#4285f4;color:#fff}.close-job-btn{background-color:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .3s}.close-job-btn:hover{background-color:#d32f2f}@media (max-width:768px){.jobs-list{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse;gap:10px}.form-actions button{width:100%}}.worker-dashboard{margin:0 auto;max-width:1200px}.dashboard-tabs{border-bottom:1px solid #e0e0e0;display:flex;margin-bottom:24px}.tab-btn{background:none;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;transition:all .3s}.tab-btn:hover{color:#4285f4}.tab-btn.active{border-bottom-color:#4285f4;color:#4285f4}.filter-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:24px;padding:20px}.filter-group{display:flex;flex-direction:column}.filter-group label{color:#333;font-weight:500;margin-bottom:8px}.filter-input-group{display:flex;gap:10px}.filter-input-group input{border:1px solid #ddd;border-radius:4px;flex:1 1;font-size:16px;padding:10px}.filter-input-group button{background-color:#4285f4;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:10px 16px}.jobs-error,.loading-jobs,.no-jobs{align-items:center;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;flex-direction:column;justify-content:center;padding:50px 0}.loading-jobs .loading-spinner{animation:spin 1s linear infinite;border:4px solid #0000001a;border-left-color:#4285f4;border-radius:50%;height:30px;margin-bottom:15px;width:30px}.jobs-error button,.no-jobs button{background-color:#4285f4;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:15px;padding:10px 20px}.jobs-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.job-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px;transition:transform .2s,box-shadow .2s}.job-card:hover{box-shadow:0 8px 20px #0000001f;transform:translateY(-5px)}.job-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.job-title{color:#333;font-size:18px;margin:0}.status-badge{border-radius:20px;font-size:12px;font-weight:500;padding:5px 10px}.status-badge.new{background-color:#e8f5e9;color:#2e7d32}.status-badge.in-progress{background-color:#fff8e1;color:#f57f17}.status-badge.closed{background-color:#f5f5f5;color:#757575}.job-description{color:#444;line-height:1.5}.job-description,.job-details{margin-bottom:20px}.job-detail{display:flex;margin-bottom:8px}.detail-label{color:#666;flex:0 0 100px;font-weight:500}.detail-value{color:#333}.job-actions{display:flex;justify-content:flex-end}.accept-job-btn{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .3s}.accept-job-btn:hover{background-color:#388e3c}.complete-job-btn{background-color:#ff9800;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .3s}.bids-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.bid-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px;transition:transform .2s,box-shadow .2s}.bid-card:hover{box-shadow:0 8px 20px #0000001f;transform:translateY(-5px)}.bid-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.bid-status{border-radius:20px;font-size:12px;font-weight:500;padding:5px 10px}.bid-status.pending{background-color:#fff8e1;color:#f57f17}.bid-status.accepted{background-color:#e8f5e9;color:#2e7d32}.bid-status.rejected{background-color:#ffebee;color:#d32f2f}.bid-details{margin-top:10px}.bid-detail{display:flex;margin-bottom:8px}.bid-detail .detail-label{color:#666;flex:0 0 120px;font-weight:500}.bid-detail .detail-value{color:#333}.bid-job-btn,.submit-bid-btn{background-color:#4285f4;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px}.modal-overlay{align-items:center;background:#00000059;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.bid-modal{background:#fff;border-radius:8px;box-shadow:0 10px 30px #0003;max-width:720px;width:100%}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:16px 20px}.modal-header h3{color:#333;margin:0}.modal-close{background:#0000;border:none;color:#666;cursor:pointer;font-size:20px}.modal-content{padding:20px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;padding:0 20px 20px}.complete-job-btn:hover{background-color:#f57c00}@media (max-width:768px){.jobs-list{grid-template-columns:1fr}.filter-input-group{flex-direction:column}.filter-input-group button{width:100%}.dashboard-tabs{flex-direction:column}.tab-btn{text-align:center;width:100%}}.user-settings-overlay{align-items:center;background-color:#0009;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.user-settings-container{background-color:#fff;border-radius:10px;box-shadow:0 4px 15px #0003;max-height:90vh;max-width:600px;overflow-y:auto;padding:30px;width:100%}.user-settings-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.user-settings-header h2{color:#333;margin:0}.close-btn{background:none;border:none;color:#666;cursor:pointer;font-size:24px;padding:0 5px}.close-btn:hover{color:#333}.form-section{margin-bottom:25px}.form-section h3{color:#333;font-size:18px;margin-bottom:15px}.user-type-options{display:flex;gap:20px;justify-content:space-between}.user-type-option{border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;flex:1 1;padding:15px;text-align:center;transition:all .3s ease}.user-type-option:hover{box-shadow:0 5px 15px #0000001a;transform:translateY(-3px)}.user-type-option.selected{background-color:#f0f7ff;border-color:#4285f4}.option-icon{font-size:28px;margin-bottom:8px}.user-type-option h4{color:#333;font-size:16px;margin:5px 0}.user-type-option p{color:#666;font-size:13px;margin:0}.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-weight:500;margin-bottom:6px}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:15px;padding:10px 12px;transition:border-color .3s;width:100%}.form-group input:focus{border-color:#4285f4;outline:none}.settings-actions{display:flex;gap:15px;justify-content:flex-end;margin-top:30px}.cancel-btn,.save-btn{border-radius:4px;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .3s}.cancel-btn{background-color:initial;border:1px solid #ddd;color:#666}.cancel-btn:hover{background-color:#f5f5f5}.save-btn{background-color:#4285f4;border:1px solid #4285f4;color:#fff}.save-btn:hover{background-color:#3367d6}.error-message{background-color:#ffebee;border-radius:4px;color:#d32f2f;font-size:14px;margin-bottom:20px;padding:10px 15px}button:disabled{cursor:not-allowed;opacity:.6}.pwa-install-button-container{bottom:20px;position:fixed;right:20px;z-index:1000}.pwa-install-button{align-items:center;background:linear-gradient(135deg,#2196f3,#1976d2);border:none;border-radius:50px;box-shadow:0 4px 12px #2196f34d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;letter-spacing:.5px;padding:12px 24px;text-transform:uppercase;transition:all .3s ease}.pwa-install-button:hover{background:linear-gradient(135deg,#1976d2,#1565c0);box-shadow:0 6px 20px #2196f366;transform:translateY(-2px)}.pwa-install-button:active{box-shadow:0 2px 8px #2196f34d;transform:translateY(0)}.pwa-install-button-icon{font-size:20px}.pwa-install-button:focus{box-shadow:0 4px 12px #2196f34d,0 0 0 3px #2196f333;outline:none}@media (max-width:768px){.pwa-install-button-container{bottom:16px;right:16px}.pwa-install-button{font-size:13px;padding:10px 20px}}.dashboard-container{display:flex;flex-direction:column;min-height:100vh}.dashboard-header{align-items:center;background-color:#fff;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;padding:15px 30px}.dashboard-logo h1{color:#4285f4;font-size:24px;margin:0}.dashboard-user{align-items:center;display:flex;gap:15px}.user-name{color:#333;font-weight:500}.user-actions{display:flex;gap:10px}.settings-btn{background-color:initial;border:1px solid #34a853;border-radius:4px;color:#34a853;cursor:pointer;font-weight:500;padding:8px 16px;transition:all .3s}.settings-btn:hover{background-color:#34a853;color:#fff}.sign-out-btn{background-color:initial;border:1px solid #4285f4;border-radius:4px;color:#4285f4;cursor:pointer;font-weight:500;padding:8px 16px;transition:all .3s}.sign-out-btn:hover{background-color:#4285f4;color:#fff}.dashboard-content{background-color:#f5f5f5;flex:1 1;padding:30px}.dashboard-footer{background-color:#333;color:#fff;font-size:14px;padding:15px;text-align:center}.dashboard-loading{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #0000001a;border-left-color:#4285f4;border-radius:50%;height:40px;margin-bottom:20px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.dashboard-error{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center;padding:0 20px;text-align:center}.dashboard-error h3{color:#d32f2f;margin-bottom:10px}.dashboard-error button{background-color:#4285f4;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:20px;padding:10px 20px}
/*# sourceMappingURL=main.8b08a8f2.css.map*/