@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";.toast-container{position:fixed;bottom:24px;right:24px;z-index:99999;display:flex;flex-direction:column;gap:12px;max-width:400px}.toast{display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:12px;background:#fff;box-shadow:0 10px 40px #00000026,0 4px 12px #0000001a;animation:slideIn .3s ease-out;min-width:300px}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{font-size:1.25rem;flex-shrink:0}.toast-success .toast-icon{color:#10b981}.toast-error .toast-icon{color:#ef4444}.toast-warning .toast-icon{color:#f59e0b}.toast-info .toast-icon{color:#3b82f6}.toast-message{flex:1;font-size:.95rem;font-weight:500;color:#1f2937}.toast-close{background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.toast-close:hover{color:#4b5563}@media(max-width:480px){.toast-container{left:16px;right:16px;bottom:16px}.toast{min-width:auto}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.loading-message{color:var(--text-secondary);font-size:.95rem;font-weight:500}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);font-family:Outfit,sans-serif;position:relative;padding:2rem}.auth-bg{position:absolute;inset:0;overflow:hidden;z-index:0}.auth-gradient{position:absolute;top:-30%;right:-20%;width:60%;height:80%;background:radial-gradient(ellipse,rgba(14,165,233,.08) 0%,transparent 60%)}.auth-gradient:after{content:"";position:absolute;bottom:-50%;left:-30%;width:60%;height:80%;background:radial-gradient(ellipse,rgba(236,72,153,.08) 0%,transparent 60%)}.auth-container{position:relative;z-index:1;width:100%;max-width:440px}.signup-container{max-width:480px}.auth-logo{display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:1.75rem;font-weight:700;color:var(--text-primary);text-decoration:none;margin-bottom:2rem}.auth-logo i{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:2rem}.auth-card{background:#fff;border:1px solid var(--border-color);border-radius:24px;padding:2.5rem;box-shadow:var(--shadow-xl)}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.auth-header p{color:var(--text-secondary)}.signup-progress{display:flex;align-items:center;justify-content:center;margin-bottom:2rem}.progress-step{display:flex;flex-direction:column;align-items:center;gap:.5rem}.step-circle{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;background:var(--bg-tertiary);border:2px solid var(--border-color);color:var(--text-tertiary);transition:all .3s}.progress-step.active .step-circle{background:var(--gradient-primary);border-color:transparent;color:#fff;box-shadow:var(--shadow-glow-blue)}.progress-step span{font-size:.75rem;color:var(--text-tertiary)}.progress-step.active span{color:var(--accent-blue)}.progress-line{width:80px;height:2px;background:var(--border-color);margin:0 1rem 1.5rem}.auth-error{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:12px;color:var(--error);font-size:.9rem;margin-bottom:1.5rem}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.auth-form .form-group{display:flex;flex-direction:column;gap:.5rem}.auth-form label{font-size:.9rem;font-weight:500;color:var(--text-secondary)}.optional-label{font-weight:400;color:var(--text-tertiary);font-size:.8rem}.form-hint{display:block;margin-top:.35rem;font-size:.8rem;color:var(--text-tertiary)}.auth-form input,.auth-form select{width:100%;padding:.875rem 1rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;font-size:1rem;color:var(--text-primary);font-family:Outfit,sans-serif;transition:all .2s}.auth-form input::placeholder{color:var(--text-tertiary)}.auth-form input:focus,.auth-form select:focus{outline:none;border-color:var(--accent-blue);background:#fff;box-shadow:0 0 0 3px #0ea5e926}.auth-form select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2394a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}.auth-form select option{background:#fff;color:var(--text-primary);padding:.5rem}.form-row{display:flex;align-items:center;justify-content:space-between}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--text-secondary);font-size:.9rem}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-blue);cursor:pointer}.forgot-link{color:var(--accent-blue);text-decoration:none;font-size:.9rem;font-weight:500;transition:color .2s}.forgot-link:hover{color:var(--accent-pink)}.auth-submit{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:1rem;background:var(--gradient-primary);border:none;border-radius:12px;font-size:1rem;font-weight:600;color:#fff;cursor:pointer;transition:all .3s;font-family:Outfit,sans-serif;box-shadow:var(--shadow-glow-blue)}.auth-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-glow)}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.form-buttons{display:flex;gap:1rem}.auth-back{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;color:var(--text-secondary);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;font-family:Outfit,sans-serif}.auth-back:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-blue)}.form-buttons .auth-submit{flex:1}.spinner-small{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.auth-footer{text-align:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.auth-footer p{color:var(--text-secondary)}.auth-footer a{color:var(--accent-blue);text-decoration:none;font-weight:500}.auth-footer a:hover{color:var(--accent-pink)}.auth-terms{text-align:center;margin-top:1.5rem;font-size:.8rem;color:var(--text-tertiary)}.auth-terms a{color:var(--text-secondary);text-decoration:none}.auth-terms a:hover{color:var(--accent-blue)}.consent-group{margin-top:.25rem}.consent-label{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer;font-size:.85rem;color:var(--text-secondary);line-height:1.4}.consent-label input[type=checkbox]{width:18px;height:18px;min-width:18px;margin-top:1px;accent-color:var(--accent-blue);cursor:pointer}.consent-label a{color:var(--accent-blue);text-decoration:none;font-weight:500}.consent-label a:hover{color:var(--accent-pink);text-decoration:underline}.reset-success-info{text-align:center;padding:1rem 0}.reset-success-icon{font-size:3rem;color:var(--accent-blue);margin-bottom:1rem}.reset-success-text{color:var(--text-secondary);font-size:.95rem;line-height:1.6;margin-bottom:.5rem}.reset-success-hint{color:var(--text-tertiary);font-size:.85rem}.password-requirements{display:flex;flex-direction:column;gap:.35rem;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border-color);margin-top:.5rem}.password-requirements p{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-tertiary);margin:0;transition:color .2s}.password-requirements p.met{color:var(--success, #10b981)}.password-requirements p i{font-size:.7rem}.password-mismatch,.password-match{display:flex;align-items:center;gap:.4rem;font-size:.8rem;margin-top:.4rem}.password-mismatch{color:#ef4444}.password-match{color:#10b981}.trial-banner{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #6ee7b7;border-radius:12px;padding:14px 18px;margin-bottom:1.5rem}.trial-banner i{font-size:24px;color:#059669;flex-shrink:0}.trial-banner strong{display:block;color:#065f46;font-size:15px;font-weight:700}.trial-banner span{display:block;color:#047857;font-size:13px;margin-top:2px}@media(max-width:480px){.auth-page{padding:1rem}.auth-card{padding:1.5rem}.auth-header h1{font-size:1.5rem}.form-row{flex-direction:column;align-items:flex-start;gap:.75rem}.signup-progress{transform:scale(.9)}.progress-line{width:40px}}.employee-portal-btn{display:flex;align-items:center;justify-content:center;gap:.65rem;width:100%;padding:.85rem 1.25rem;margin-top:1rem;background:linear-gradient(135deg,#fff7ed,#fef3c7);color:#92400e;border:1.5px solid #fed7aa;border-radius:12px;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .2s;box-shadow:0 1px 3px #fb923c1a}.employee-portal-btn:hover{border-color:#fb923c;color:#9a3412;background:linear-gradient(135deg,#ffedd5,#fef3c7);box-shadow:0 4px 12px #fb923c33;transform:translateY(-1px)}.employee-portal-btn i:first-child{font-size:1rem;color:#f97316}.employee-portal-btn i:last-child{font-size:.75rem;margin-left:auto;opacity:.5;color:#f97316}.install-app-link{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.6rem 1rem;margin-top:.5rem;background:none;color:#94a3b8;border:none;font-size:.8rem;font-weight:500;text-decoration:none;transition:color .15s}.install-app-link:hover{color:#6366f1}.install-app-link i{font-size:.85rem}.auth-top-row{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;width:100%}.auth-back-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;text-decoration:none;font-size:.85rem;font-weight:500;transition:all .15s;white-space:nowrap}.auth-back-btn:hover{border-color:#94a3b8;color:#1e293b}.auth-back-btn i{font-size:.75rem}.auth-top-row .auth-logo{margin-left:auto}.auth-top-row:only-child .auth-logo:first-child,.auth-top-row .auth-logo:only-child{margin-left:auto;margin-right:auto}@media(max-width:768px){.auth-top-row{justify-content:center}.auth-top-row .auth-logo{margin-left:auto;margin-right:auto}.auth-top-row .auth-back-btn+.auth-logo{margin-right:0}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--bg-gray: #f8fafc;--glass-bg: rgba(255, 255, 255, .8);--glass-border: rgba(0, 0, 0, .08);--border-color: #e2e8f0;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--accent-blue: #0ea5e9;--accent-blue-dark: #0284c7;--accent-blue-light: #38bdf8;--accent-pink: #ec4899;--accent-pink-dark: #db2777;--accent-pink-light: #f472b6;--accent-purple: #8b5cf6;--accent-cyan: #06b6d4;--accent-green: #10b981;--accent-orange: #f59e0b;--accent-red: #ef4444;--gradient-primary: linear-gradient(135deg, var(--accent-blue) 0%, var(--accent-pink) 100%);--gradient-subtle: linear-gradient(135deg, rgba(14, 165, 233, .1) 0%, rgba(236, 72, 153, .1) 100%);--success: #10b981;--warning: #f59e0b;--error: #ef4444;--danger: #ef4444;--info: #0ea5e9;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-glow-blue: 0 0 20px rgba(14, 165, 233, .25);--shadow-glow-pink: 0 0 20px rgba(236, 72, 153, .25);--shadow-glow: 0 0 30px rgba(14, 165, 233, .2), 0 0 60px rgba(236, 72, 153, .15);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1)}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;height:100%}body{font-family:Outfit,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,var(--accent-blue) 0%,var(--accent-pink) 100%);border-radius:var(--radius-full);border:2px solid var(--bg-secondary)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,var(--accent-blue-dark) 0%,var(--accent-pink-dark) 100%)}.container{max-width:1600px;margin:0 auto;padding:0 24px}.tab-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;gap:1rem;flex-wrap:wrap}.tab-page-title{font-size:1.3rem;font-weight:700;color:#1e293b;margin:0}.tab-page-title i{color:#6366f1;font-size:1.1rem}.tab-page-subtitle{font-size:.85rem;color:#94a3b8;margin:.15rem 0 0}.tab-page-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}@media(max-width:768px){.tab-page-header:first-child{display:none}.tab-page-header{margin-bottom:.5rem;padding-top:0}.tab-page-title{font-size:1.05rem}.jobs-tab,.customers-tab,.call-logs-tab,.calendar-tab,.insights-tab,.finances-tab,.materials-tab,.services-tab,.reviews-tab,.employees-tab{gap:.65rem}.jt-search,.employees-search,.mat-search,.svc-search,.acct-search,.search-box{padding:.4rem .65rem;border-radius:8px;font-size:.85rem}.jt-search input,.employees-search input,.mat-search input,.svc-search input,.acct-search input,.search-box input{font-size:.85rem}.jt-filter,.filter-pill,.filter-btn,.mat-sort-chip,.svc-sort-chip,.acct-pill{padding:.35rem .55rem;font-size:.72rem;border-radius:6px}.jt-card-top h4,.employee-info h3,.customer-info h3,.call-log-info h3,.mat-card-name,.service-title,.review-customer{font-size:.86rem}.customer-card,.call-log-card,.employee-card,.service-card,.review-item{padding:.75rem}.employees-header h2,.customers-header h2,.call-logs-header h2,.services-header h2,.materials-header h2{font-size:1.05rem}.jt-header .btn,.customers-controls .btn,.services-controls .btn,.employees-header-right .btn,.materials-header .btn{width:100%;justify-content:center}.customer-detail,.call-log-meta-item,.jt-info-item,.meta-item,.mat-supplier{font-size:.72rem}.customer-avatar,.call-log-icon,.employee-avatar,.mat-card-icon{width:36px;height:36px;font-size:.9rem}}@media(max-width:768px)and (orientation:landscape){.jobs-tab,.customers-tab,.call-logs-tab,.calendar-tab,.insights-tab,.finances-tab,.materials-tab,.services-tab,.reviews-tab,.employees-tab{gap:.5rem}.employees-list{grid-template-columns:repeat(2,1fr)}.jt-cards,.customers-list,.call-logs-list,.reviews-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}.insights-overview,.revenue-grid,.reviews-stats{grid-template-columns:repeat(4,1fr)}.calendar-main{grid-template-columns:1fr 280px}}.glass{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border)}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-md);border:1px solid var(--border-color);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn{padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:600;font-size:.95rem;border:none;cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;gap:.5rem;font-family:inherit}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-glow-blue)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669;box-shadow:0 0 20px #10b9814d}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#dc2626;box-shadow:0 0 20px #ef44444d}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--accent-blue)}.btn-sm{padding:.5rem 1rem;font-size:.85rem}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-weight:600;font-size:.9rem;color:var(--text-primary)}.form-input,.form-select,.form-textarea{padding:.875rem 1rem;border:2px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem;transition:all .2s ease;background:var(--bg-card);color:var(--text-primary)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #0ea5e926}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media(max-width:600px){.form-grid{grid-template-columns:1fr}}input,textarea,select{width:100%;padding:.75rem;border:2px solid var(--border-color);border-radius:var(--radius-md);font-size:.95rem;transition:all var(--transition-base);background:var(--bg-card);color:var(--text-primary);font-family:inherit}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #0ea5e926}.spinner{border:3px solid var(--bg-tertiary);border-top-color:var(--accent-blue);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-secondary)}.empty-state-icon{font-size:4rem;margin-bottom:1rem;opacity:.7}.badge{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-success{background:#10b9811a;color:var(--success)}.badge-warning{background:#f59e0b1a;color:var(--warning)}.badge-error,.badge-danger{background:#ef44441a;color:var(--error)}.badge-info,.badge-primary{background:#0ea5e91a;color:var(--accent-blue)}.badge-secondary{background:#64748b1a;color:var(--text-secondary)}.search-box{display:flex;align-items:center;gap:.75rem;background:var(--bg-card);padding:.75rem 1rem;border-radius:var(--radius-md);border:2px solid var(--border-color);min-width:250px}.search-box input{border:none;outline:none;padding:0;background:transparent;width:100%;font-size:.9rem;color:var(--text-primary)}.search-box input::placeholder{color:var(--text-tertiary)}.search-box i{color:var(--text-tertiary)}@media(max-width:768px){html,body{overflow-x:hidden;max-width:100vw}#root{width:100%;overflow-x:hidden}.container{padding:0 12px;max-width:100%;overflow-x:hidden}.card{padding:.875rem;border-radius:var(--radius-md)}.btn{padding:.625rem 1.25rem;font-size:.9rem}*{max-width:100%}.search-box{min-width:100%;padding:.625rem .875rem}.search-box input{font-size:.9rem}.badge{font-size:.75rem;padding:.2rem .6rem}.empty-state{padding:2.5rem 1.5rem}.empty-state-icon{font-size:2.5rem}}@media all and (display-mode:standalone){body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.header,.employee-header{padding-top:env(safe-area-inset-top,0px)}.mobile-tabs-header{top:calc(48px + env(safe-area-inset-top,0px))}button,.employee-tab,.employee-stat,.employee-header,nav{-webkit-user-select:none;user-select:none}input,textarea,p,span,h1,h2,h3,h4,h5,h6,td,th,li,a,.wjd-value,.wjd-notes{-webkit-user-select:text;user-select:text}body{overscroll-behavior-y:contain}*{-webkit-tap-highlight-color:transparent}.employee-tab-content,.employee-jobs,.employee-main,.dashboard-content,.tab-content{-webkit-overflow-scrolling:touch;overflow-y:auto}.employee-tabs{padding-bottom:env(safe-area-inset-bottom,0px)}.auth-page{padding-top:calc(2rem + env(safe-area-inset-top,0px))}}@media(pointer:coarse){input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=date],textarea,select{font-size:16px!important}}
