*{box-sizing:border-box}body{color:#333;-webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);background:#0f1117;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}button,a,.clickable{-webkit-tap-highlight-color:transparent;touch-action:manipulation}nav,header,.bottom-tab-bar,button{-webkit-user-select:none;user-select:none}button,a,[role=button]{min-width:44px;min-height:44px}.login-container{background:#f5f5f5;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:#fff;border-radius:12px;width:100%;max-width:360px;padding:2rem;box-shadow:0 2px 12px #00000014}.login-card h1{color:#333;text-align:center;margin:0 0 .5rem;font-size:1.5rem}.login-subtitle{color:#666;text-align:center;margin:0 0 1.5rem;font-size:.9rem}.form-group input,.form-group select{border:1px solid #ddd;border-radius:8px;width:100%;padding:.75rem;font-size:1rem;transition:border-color .15s}.form-group input:focus,.form-group select:focus{border-color:#007bff;outline:none}.submit-button{color:#fff;cursor:pointer;background:#007bff;border:none;border-radius:8px;width:100%;padding:.875rem;font-size:1rem;font-weight:500;transition:background .15s}.submit-button:hover{background:#0056b3}.submit-button:disabled{cursor:not-allowed;background:#ccc}.link-button{color:#007bff;cursor:pointer;text-align:center;background:0 0;border:none;width:100%;margin-top:.5rem;padding:.75rem;font-size:.9rem;display:block}.link-button:hover{text-decoration:underline}.success-message{color:#155724;text-align:center;background:#d4edda;border-radius:6px;padding:1rem;font-size:.9rem}.lead-inbox{max-width:600px;margin:0 auto;padding:1rem}.stat-cards{flex:1;gap:.75rem;display:flex}.stat-card{text-align:center;background:#f8f9fa;border-radius:8px;flex:1;padding:.75rem}.stat-value{color:#333;font-size:1.5rem;font-weight:600}.stat-label{color:#666;text-transform:uppercase;letter-spacing:.5px;font-size:.75rem}.search-bar{margin-bottom:1rem;position:relative}.search-bar input{box-sizing:border-box;background:#fff;border:1px solid #ddd;border-radius:8px;width:100%;padding:.75rem 1rem .75rem 2.5rem;font-size:1rem}.search-bar input:focus{border-color:#007bff;outline:none}.search-icon{font-size:1rem;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.lead-list{flex-direction:column;gap:.75rem;display:flex}.lead-card{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;transition:box-shadow .15s,border-color .15s}.lead-card:hover{border-color:#007bff;box-shadow:0 2px 8px #00000014}.lead-card:active{background:#f8f9fa}.lead-card-main{margin-bottom:.5rem}.lead-name{color:#333;font-size:1rem;font-weight:600}.lead-phone{color:#666;font-size:.875rem}.lead-card-meta{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.lead-service{color:#555;background:#e9ecef;border-radius:4px;padding:.2rem .5rem;font-size:.75rem}.lead-status{text-transform:uppercase;border-radius:4px;padding:.2rem .5rem;font-size:.7rem;font-weight:600}.lead-source{color:#888;margin-top:.25rem;font-size:.75rem}.no-results{text-align:center;color:#666;padding:2rem}.loading,.error{text-align:center;padding:2rem}.error{color:#c00;background:#fee;border-radius:8px}.inbox-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.add-lead-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#2563eb;border:none;border-radius:8px;flex-shrink:0;padding:.6rem 1rem;font-size:.9rem;font-weight:500}.add-lead-btn:hover{background:#1d4ed8}.modal-overlay{z-index:1000;box-sizing:border-box;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.add-lead-modal{box-sizing:border-box;background:#fff;border-radius:12px;width:100%;max-width:400px;max-height:85vh;overflow-y:auto;box-shadow:0 4px 20px #00000026}.modal-header{z-index:1;background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1rem;display:flex;position:sticky;top:0}.modal-header h3{margin:0;font-size:1.1rem}.form-group{padding:.5rem 1rem}.form-group label{color:#374151;margin-bottom:.3rem;font-size:.85rem;font-weight:500;display:block}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#2563eb;outline:none}.modal-actions{background:#fff;border-top:1px solid #e5e7eb;gap:.5rem;padding:1rem;display:flex;position:sticky;bottom:0}.modal-actions .cancel-btn{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;flex:1;padding:.6rem;font-size:.9rem}.modal-actions .save-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;flex:1;padding:.6rem;font-size:.9rem}.modal-actions .save-btn:disabled{cursor:not-allowed;background:#93c5fd}@media (width<=480px){.inbox-header{flex-direction:column;align-items:stretch}.add-lead-btn{text-align:center}.add-lead-modal{border-radius:12px;max-width:100%;max-height:90vh;margin:0}}.show-more-btn{color:#6b7280;cursor:pointer;text-align:center;background:0 0;border:1px dashed #d1d5db;border-radius:6px;width:calc(100% - 2rem);margin:.5rem 1rem;padding:.5rem;font-size:.85rem;display:block}.show-more-btn:hover{color:#2563eb;border-color:#2563eb}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1rem;display:flex}.modal-header h2{margin:0;font-size:1.25rem}.close-btn{cursor:pointer;color:#6b7280;background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1}.modal-client{background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:1rem}.modal-client strong{font-size:1.1rem}.modal-client p{color:#6b7280;margin:.25rem 0 0;font-size:.9rem}.modal-content form{padding:1rem}.form-row{gap:1rem;display:flex}.form-row .form-group{flex:1}.form-group label{margin-bottom:.25rem;font-size:.9rem;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:.5rem;font-size:1rem}.form-group textarea{resize:vertical}.no-refinishers{color:#ef4444;background:#fef2f2;border-radius:4px;margin:0;padding:.5rem;font-size:.9rem}.modal-actions{gap:.75rem;margin-top:1rem;display:flex}.modal-actions button{cursor:pointer;border:none;border-radius:6px;flex:1;padding:.75rem;font-size:1rem}.modal-actions .cancel-btn{color:#374151;background:#e5e7eb}.modal-actions button[type=submit]{color:#fff;background:#2563eb}.modal-actions button:disabled{cursor:not-allowed;background:#9ca3af}.error-message{color:#dc2626;background:#fef2f2;border-radius:6px;margin-bottom:1rem;padding:.75rem;font-size:.9rem}.week-picker{gap:.5rem;margin-bottom:.5rem;display:flex;overflow-x:auto}.day-btn{cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:8px;flex-direction:column;align-items:center;min-width:50px;padding:.5rem .75rem;transition:all .15s;display:flex}.day-btn:hover{border-color:#2563eb}.day-btn.selected{color:#fff;background:#2563eb;border-color:#2563eb}.day-label{text-transform:uppercase;font-size:.7rem;font-weight:500}.day-number{font-size:1.1rem;font-weight:600}.other-date-btn{color:#2563eb;cursor:pointer;background:0 0;border:none;margin-bottom:.5rem;padding:.25rem 0;font-size:.85rem}.other-date-btn:hover{text-decoration:underline}.hint{color:#6b7280;margin-top:.25rem;font-size:.75rem}.address-group{position:relative}.address-suggestions{z-index:100;background:#fff;border:1px solid #d1d5db;border-radius:6px;max-height:200px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.suggestion-item{cursor:pointer;border-bottom:1px solid #f3f4f6;padding:.75rem;font-size:.9rem}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover{background:#f3f4f6}.scope-suggestions{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;display:flex}.scope-chip{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:20px;padding:.4rem .75rem;font-size:.8rem;transition:all .15s}.scope-chip:hover{color:#2563eb;border-color:#2563eb}.scope-chip.selected{color:#fff;background:#2563eb;border-color:#2563eb}.lead-detail{max-width:600px;margin:0 auto;padding:1rem}.back-button{color:#007bff;cursor:pointer;background:0 0;border:none;margin-bottom:.5rem;padding:.5rem 0;font-size:1rem}.back-button:hover{text-decoration:underline}.lead-header{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.lead-header .lead-name{color:#333;margin:0;font-size:1.5rem;font-weight:600}.lead-header .lead-status{text-transform:uppercase;border-radius:4px;padding:.25rem .6rem;font-size:.75rem;font-weight:600}.status-new{color:#004085;background:#cce5ff}.status-contacted{color:#856404;background:#fff3cd}.status-scheduled{color:#155724;background:#d4edda}.status-complete{color:#383d41;background:#e2e3e5}.info-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.info-section{margin-bottom:1rem}.info-section:last-child{margin-bottom:0}.info-section h3{text-transform:uppercase;letter-spacing:.5px;color:#888;border-bottom:1px solid #eee;margin:0 0 .5rem;padding-bottom:.25rem;font-size:.75rem}.info-row{justify-content:space-between;padding:.4rem 0;display:flex}.info-label{color:#666;font-size:.9rem}.info-value{color:#333;text-align:right;word-break:break-word;max-width:60%;font-size:.9rem;font-weight:500}.info-value.muted{color:#ccc;font-weight:400}.timeline-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1rem}.timeline-section h3{text-transform:uppercase;letter-spacing:.5px;color:#888;margin:0 0 1rem;font-size:.75rem}.no-activity{color:#999;text-align:center;padding:1rem;font-style:italic}.timeline{flex-direction:column;gap:1rem;display:flex}.timeline-item{gap:.75rem;display:flex}.timeline-icon{flex-shrink:0;font-size:1.25rem}.timeline-content{flex:1;min-width:0}.timeline-header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.comm-type{color:#333;text-transform:capitalize;font-size:.9rem;font-weight:600}.comm-direction{color:#666;font-size:.8rem}.comm-time{color:#999;margin-left:auto;font-size:.75rem}.comm-body{color:#555;white-space:pre-wrap;word-break:break-word;margin:.25rem 0;font-size:.9rem}.comm-link{color:#007bff;font-size:.85rem;text-decoration:none}.comm-link:hover{text-decoration:underline}.comm-media{color:#666;margin-top:.25rem;font-size:.8rem;display:block}.loading{text-align:center;color:#666;padding:2rem}.error{color:#c00;text-align:center;background:#fee;border-radius:8px;padding:1rem}.action-buttons{gap:.75rem;margin-bottom:1rem;display:flex}.schedule-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;flex:1;padding:.75rem 1rem;font-size:1rem;font-weight:500}.schedule-btn:hover{background:#1d4ed8}.view-project-btn{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:8px;flex:1;padding:.75rem 1rem;font-size:1rem;font-weight:500}.view-project-btn:hover{background:#059669}.phone-link{color:#2563eb;text-decoration:none}.delete-btn:disabled{opacity:.6;cursor:not-allowed}.invite-container{max-width:500px;margin:0 auto;padding:1rem}.invite-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.invite-card h2{margin:0 0 1rem}.form-group{margin-bottom:1rem}.form-group label{margin-bottom:.25rem;font-weight:500;display:block}.form-group input,.form-group select{box-sizing:border-box;border:1px solid #ddd;border-radius:4px;width:100%;padding:.5rem;font-size:1rem}.password-row{gap:.5rem;display:flex}.password-row input{flex:1}.gen-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#6b7280;border:none;border-radius:4px;padding:.5rem 1rem}.gen-btn:hover{background:#4b5563}.invite-card button[type=submit]{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:4px;width:100%;margin-top:.5rem;padding:.75rem;font-size:1rem}.invite-card button[type=submit]:hover{background:#1d4ed8}.invite-card button[type=submit]:disabled{background:#9ca3af}.success-card{text-align:center}.credentials-box{text-align:left;background:#f0fdf4;border:2px solid #22c55e;border-radius:8px;margin:1rem 0;padding:1rem}.credentials-box p{margin:.5rem 0;font-size:1.1rem}.instructions{color:#6b7280;font-size:.9rem}.button-row{gap:.5rem;margin-top:1rem;display:flex}.button-row button{cursor:pointer;border:none;border-radius:4px;flex:1;padding:.75rem;font-size:1rem}.copy-btn{color:#fff;background:#22c55e}.copy-btn:hover{background:#16a34a}.button-row button:last-child{color:#374151;background:#e5e7eb}.refinisher-home{box-sizing:border-box;width:100%;max-width:100%;padding:12px;overflow-x:hidden}.refinisher-home h2{text-align:center;margin:0 0 12px;font-size:1.1rem}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.nav-btn{cursor:pointer;color:#374151;background:#f3f4f6;border:none;border-radius:50%;flex-shrink:0;width:40px;height:40px;font-size:1.2rem}.calendar-weekdays{width:100%;margin-bottom:4px;display:flex}.weekday{text-align:center;color:#6b7280;box-sizing:border-box;width:14.2857%;padding:6px 0;font-size:.75rem;font-weight:600}.calendar-grid{background:#e5e7eb;border-radius:12px;flex-wrap:wrap;width:100%;margin-bottom:16px;display:flex;overflow:hidden}.calendar-day{box-sizing:border-box;cursor:pointer;background:#fff;border:.5px solid #e5e7eb;flex-direction:column;justify-content:center;align-items:center;width:14.2857%;height:52px;display:flex;position:relative}.calendar-day.empty{cursor:default;background:#f9fafb}.calendar-day.today .day-number{color:#fff;font-weight:700}.calendar-day.has-projects{background:#dbeafe}.calendar-day.has-projects.today{background:#2563eb}.day-number{color:#374151;font-size:.95rem;font-weight:500}.day-dot{background:#2563eb;border-radius:50%;width:6px;height:6px;margin-top:2px}.calendar-day.today .day-dot{background:#fff}.day-count{color:#fff;background:#ef4444;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;font-size:.6rem;font-weight:600;display:flex;position:absolute;top:2px;right:2px}.upcoming-section{background:#fff;border-radius:12px;padding:12px;box-shadow:0 1px 3px #0000001a}.upcoming-section h3{margin:0 0 12px;font-size:1rem}.no-jobs{color:#9ca3af;text-align:center;padding:16px;font-size:.9rem}.job-list{flex-direction:column;gap:8px;display:flex}.job-card{cursor:pointer;background:#f9fafb;border-radius:8px;align-items:center;gap:10px;padding:10px;display:flex}.job-date{color:#2563eb;text-align:center;flex-shrink:0;min-width:44px;font-size:.8rem;font-weight:600}.job-info{flex:1;min-width:0;overflow:hidden}.job-client{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.job-address,.job-time{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.job-status{text-transform:uppercase;border-radius:4px;flex-shrink:0;padding:3px 6px;font-size:.65rem;font-weight:600}.job-status.status-scheduled{color:#1d4ed8;background:#dbeafe}.job-status.status-in_progress{color:#b45309;background:#fef3c7}.job-status.status-complete{color:#065f46;background:#d1fae5}.loading,.error{text-align:center;color:#6b7280;padding:24px}.error button{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;margin-top:8px;padding:8px 16px}.schedule-screen{flex-direction:column;align-items:center;padding:1rem;display:flex}.calendar-header{justify-content:space-between;align-items:center;width:100%;max-width:560px;margin-bottom:.5rem;display:flex}.nav-btn{cursor:pointer;color:#374151;background:#f3f4f6;border:none;border-radius:50%;width:44px;height:44px;font-size:1.2rem}.nav-btn:hover{background:#e5e7eb}.month-year{text-align:center}.month-name{font-size:1.25rem;font-weight:600;display:block}.year{color:#6b7280;font-size:.9rem}.today-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:20px;margin:0 auto 1rem;padding:.5rem 1.25rem;font-size:.9rem;display:block}.today-btn:hover{background:#1d4ed8}.calendar-weekdays{text-align:center;grid-template-columns:repeat(7,80px);margin-bottom:.5rem;display:grid}.weekday{color:#6b7280;padding:.5rem;font-size:.8rem;font-weight:600}.calendar-grid{background:#fff;border-radius:12px;grid-template-columns:repeat(7,80px);display:grid;overflow:hidden;box-shadow:0 1px 3px #0000001a}.calendar-day{background:#fff;border:1px solid #f3f4f6;flex-direction:column;align-items:flex-start;width:80px;height:80px;padding:8px;display:flex}.calendar-day.empty{background:#fafafa}.calendar-day.today{background:#eff6ff}.calendar-day.today .day-number{color:#fff;background:#2563eb;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.day-number{color:#374151;margin-bottom:4px;font-size:.9rem;font-weight:500}.day-projects{flex-direction:column;flex:1;gap:2px;width:100%;display:flex;overflow:hidden}.project-pill{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:2px 4px;font-size:.65rem;overflow:hidden}.project-pill.status-scheduled{color:#1e40af;background:#dbeafe}.project-pill.status-in_progress{color:#92400e;background:#fef3c7}.project-pill.status-complete{color:#065f46;background:#d1fae5}.pill-time{font-weight:600}.pill-name{text-overflow:ellipsis;overflow:hidden}.more-projects{color:#6b7280;text-align:center;font-size:.6rem}.upcoming-section{background:#fff;border-radius:12px;width:100%;max-width:560px;margin-top:1.5rem;padding:1rem;box-shadow:0 1px 3px #0000001a}.upcoming-section h3{color:#374151;margin:0 0 1rem;font-size:1rem}.no-projects{color:#6b7280;text-align:center;padding:1rem}.upcoming-list{flex-direction:column;gap:.5rem;display:flex}.upcoming-item{cursor:pointer;background:#f9fafb;border-radius:8px;align-items:center;gap:1rem;padding:.75rem;transition:background .15s;display:flex}.upcoming-item:hover{background:#f3f4f6}.upcoming-date{color:#2563eb;width:55px;font-size:.9rem;font-weight:600}.upcoming-info{flex:1}.upcoming-name{font-size:.95rem;font-weight:500}.upcoming-time{color:#6b7280;font-size:.85rem}.upcoming-status{text-transform:uppercase;border-radius:4px;padding:.25rem .6rem;font-size:.75rem;font-weight:500}.upcoming-status.status-scheduled{color:#1d4ed8;background:#dbeafe}.upcoming-status.status-in_progress{color:#b45309;background:#fef3c7}@media (width<=600px){.calendar-weekdays{grid-template-columns:repeat(7,1fr)}.calendar-grid{grid-template-columns:repeat(7,1fr);width:100%}.calendar-day{width:auto;height:64px;padding:6px}.day-number{font-size:.8rem}.calendar-day.today .day-number{width:24px;height:24px}.project-pill{padding:1px 3px;font-size:.55rem}.pill-time{display:none}.weekday{font-size:.7rem}.calendar-header,.upcoming-section{max-width:100%}}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.quick-modal{background:#fff;border-radius:12px;width:100%;max-width:400px;max-height:80vh;overflow-y:auto;box-shadow:0 4px 20px #00000026}.quick-modal-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1rem;display:flex}.quick-modal-header h3{margin:0;font-size:1rem}.close-btn{cursor:pointer;color:#6b7280;background:0 0;border:none;font-size:1.5rem;line-height:1}.no-leads-msg{text-align:center;color:#6b7280;padding:2rem}.quick-form-group{padding:1rem}.quick-form-group label{color:#374151;margin-bottom:.5rem;font-weight:500;display:block}.quick-form-group input[type=time]{border:1px solid #d1d5db;border-radius:6px;width:100%;padding:.5rem;font-size:1rem}.lead-options{flex-direction:column;gap:.5rem;max-height:200px;display:flex;overflow-y:auto}.lead-option{cursor:pointer;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;gap:2px;padding:.75rem;display:flex}.lead-option:hover{background:#f9fafb}.lead-option.selected{background:#eff6ff;border-color:#2563eb}.lead-option strong{font-size:.95rem}.lead-option span{color:#6b7280;font-size:.8rem}.quick-modal-actions{border-top:1px solid #e5e7eb;gap:.5rem;padding:1rem;display:flex}.quick-modal-actions .cancel-btn{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;flex:1;padding:.6rem}.quick-modal-actions .schedule-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;flex:1;padding:.6rem}.quick-modal-actions .schedule-btn:disabled{cursor:not-allowed;background:#93c5fd}.calendar-day{cursor:pointer;transition:background .15s}.calendar-day:hover:not(.empty){background:#f3f4f6}.calendar-day.today:hover{background:#dbeafe}.mode-tabs{border-bottom:1px solid #e5e7eb;display:flex}.mode-tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:.75rem;font-size:.9rem}.mode-tab:hover{color:#374151}.mode-tab.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:500}.lead-search{border:1px solid #d1d5db;border-radius:6px;width:100%;margin-bottom:.5rem;padding:.6rem;font-size:.9rem}.lead-search:focus{border-color:#2563eb;outline:none}.no-leads-inline{text-align:center;color:#9ca3af;padding:1rem;font-size:.85rem}.quick-form-group input[type=text],.quick-form-group input[type=tel],.quick-form-group input[type=email]{border:1px solid #d1d5db;border-radius:6px;width:100%;padding:.5rem;font-size:.9rem}.quick-form-group input:focus{border-color:#2563eb;outline:none}.project-folder{max-width:600px;margin:0 auto;padding:1rem}.job-brief{background:#fff;border-radius:12px;margin-bottom:1rem;padding:1rem;box-shadow:0 1px 3px #0000001a}.brief-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.brief-header h2{margin:0;font-size:1.25rem}.status-badge{text-transform:uppercase;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.status-badge.status-scheduled{color:#1d4ed8;background:#dbeafe}.status-badge.status-in_progress{color:#b45309;background:#fef3c7}.status-badge.status-complete{color:#047857;background:#d1fae5}.brief-details{font-size:.95rem}.brief-phone{color:#2563eb;margin-bottom:.5rem;font-size:1.1rem;text-decoration:none;display:block}.brief-address{color:#6b7280;margin:0 0 .75rem}.brief-schedule{gap:1rem;margin-bottom:.5rem;display:flex}.schedule-date{font-weight:500}.schedule-time{color:#2563eb;font-weight:500}.brief-refinisher{color:#6b7280;margin:.5rem 0}.brief-scope{background:#f9fafb;border-radius:6px;margin:.75rem 0;padding:.75rem}.brief-amount{color:#059669;margin:.5rem 0 0;font-size:1.25rem;font-weight:600}.photo-stages{flex-direction:column;gap:1rem;margin-bottom:1rem;display:flex}.photo-stage{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 1px 3px #0000001a}.photo-stage h3{color:#374151;margin:0 0 .75rem;font-size:1rem}.photo-grid{flex-wrap:wrap;gap:.5rem;display:flex}.photo-thumb{background:#f3f4f6;border-radius:8px;width:80px;height:80px;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%}.photo-loading{color:#9ca3af;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.add-photo-btn{cursor:pointer;color:#6b7280;background:#fff;border:2px dashed #d1d5db;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;width:80px;height:80px;transition:all .15s;display:flex}.add-photo-btn:hover{color:#2563eb;border-color:#2563eb}.add-photo-btn:disabled{cursor:not-allowed;opacity:.6}.add-photo-btn .plus{font-size:1.5rem;line-height:1}.add-photo-btn span:last-child{font-size:.7rem}.spinner{border:2px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.complete-btn{color:#fff;cursor:pointer;background:#059669;border:none;border-radius:12px;width:100%;padding:1rem;font-size:1.1rem;font-weight:600}.complete-btn:hover{background:#047857}.completed-badge{text-align:center;color:#047857;background:#d1fae5;border-radius:12px;padding:1rem;font-weight:600}.error-message{color:#dc2626;background:#fef2f2;border-radius:8px;margin-bottom:1rem;padding:.75rem}.confirm-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.confirm-dialog{text-align:center;background:#fff;border-radius:12px;max-width:300px;padding:1.5rem}.confirm-dialog p{margin:0 0 1rem}.confirm-actions{gap:.75rem;display:flex}.confirm-actions button{cursor:pointer;border:none;border-radius:8px;flex:1;padding:.75rem;font-size:1rem}.confirm-actions button:first-child{color:#374151;background:#e5e7eb}.confirm-actions .confirm-btn{color:#fff;background:#059669}.folder-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.delete-btn{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.85rem}.delete-btn:hover{background:#dc2626}.reschedule-btn{color:#2563eb;cursor:pointer;background:0 0;border:none;margin-left:.5rem;font-size:.85rem}.reschedule-btn:hover{text-decoration:underline}.reschedule-dialog{min-width:280px}.reschedule-dialog h3{margin:0 0 1rem}.reschedule-form{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.reschedule-form label{color:#374151;font-size:.85rem}.reschedule-form input{border:1px solid #d1d5db;border-radius:6px;padding:.5rem}*,:before,:after{box-sizing:border-box}html,body,#root{max-width:100vw;margin:0;padding:0;overflow-x:hidden}.app{background:#f5f5f5;max-width:100vw;min-height:100vh;overflow-x:hidden}.app-header{padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top));z-index:100;background:#fff;border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.app-header h1{color:#333;white-space:nowrap;margin:0;font-size:1.25rem;font-weight:600}.header-right{align-items:center;gap:.75rem;display:flex}.user-info{align-items:center;gap:.5rem;display:flex}.user-name{color:#333;text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:.875rem;overflow:hidden}.user-role{text-transform:uppercase;border-radius:4px;padding:.2rem .5rem;font-size:.7rem;font-weight:600}.role-owner{color:#155724;background:#d4edda}.role-office{color:#004085;background:#cce5ff}.role-refinisher{color:#856404;background:#fff3cd}.header-button{cursor:pointer;color:#333;white-space:nowrap;background:#f0f0f0;border:none;border-radius:8px;align-items:center;min-height:44px;padding:.5rem 1rem;font-size:.875rem;display:flex}.header-button:hover{background:#e0e0e0}.header-button.logout{color:#666}@media (width<=768px){.app-header{padding:.75rem 1rem;padding-top:calc(.75rem + env(safe-area-inset-top))}.app-header h1{font-size:1.125rem}.user-name{display:none}.header-button{padding:.5rem .75rem;font-size:.8rem}}@media (width<=400px){.user-info{display:none}}.loading-screen{color:#666;justify-content:center;align-items:center;min-height:100vh;font-size:1rem;display:flex}.app-main{width:100%;max-width:100vw;padding:0;overflow-x:hidden}@media (width<=768px){.app-main{padding-bottom:calc(72px + env(safe-area-inset-bottom))}}.loading{color:#666;font-style:italic}.error{color:#c00;background:#fee;border-radius:8px;margin:1rem;padding:1rem}.app-nav{background:#fff;border-bottom:1px solid #e5e7eb;padding:0 1rem;display:flex}@media (width<=768px){.app-nav{display:none}}.nav-tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;min-height:44px;padding:.75rem 1rem;font-size:.95rem;transition:all .15s}.nav-tab:hover{color:#374151}.nav-tab.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:500}.bottom-tab-bar{display:none}@media (width<=768px){.bottom-tab-bar{height:64px;padding-bottom:env(safe-area-inset-bottom);z-index:100;background:#fff;border-top:1px solid #e5e7eb;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}}.tab-item{color:#6b7280;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:64px;min-height:48px;padding:8px 24px;font-size:12px;display:flex}.tab-item.active{color:#2563eb}.tab-item svg{width:24px;height:24px}@media (width<=768px){.header-button.desktop-only{display:none}}
