.layout{display:flex;min-height:100vh}.sidebar{background:var(--navy);bottom:0;display:flex;flex-direction:column;left:0;position:fixed;top:0;transition:width var(--transition-normal);width:260px;z-index:100}.sidebar.closed{width:72px}.sidebar-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;padding:20px}.logo{gap:12px}.logo,.logo-icon{align-items:center;display:flex}.logo-icon{background:var(--sage);border-radius:var(--radius-md);color:#fff;flex-shrink:0;height:40px;justify-content:center;width:40px}.logo-text{display:flex;flex-direction:column}.logo-title{color:#fff;font-family:var(--font-heading);font-size:1.1rem;font-weight:600;line-height:1.2}.logo-subtitle{color:#ffffff80;font-size:.7rem;letter-spacing:1px;text-transform:uppercase}.sidebar-toggle{align-items:center;border-radius:var(--radius-sm);color:#fff9;display:flex;height:32px;justify-content:center;transition:all var(--transition-fast);width:32px}.sidebar-toggle:hover{background:#ffffff1a;color:#fff}.sidebar.closed .sidebar-toggle{margin:0 auto}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:4px;padding:20px 12px}.nav-link{align-items:center;border-radius:var(--radius-md);color:#fff9;display:flex;font-size:.9rem;font-weight:500;gap:12px;padding:12px 16px;transition:all var(--transition-fast)}.nav-link:hover{background:#ffffff14;color:#fff}.nav-link.active{background:var(--sage);color:#fff}.nav-badge{background:#ef4444;font-size:11px;margin-left:auto;min-width:18px}.nav-badge.orange{background:#f59e0b}.nav-link.active .nav-badge{background:#fff;color:var(--sage)}.nav-link.active .nav-badge.orange{color:#f59e0b}.nav-group{margin-bottom:2px}.nav-group-header{align-items:center;background:none;border:none;color:#ffffff4d;cursor:pointer;display:flex;font-size:.62rem;font-weight:700;justify-content:space-between;letter-spacing:1.2px;margin-top:6px;padding:8px 16px;text-transform:uppercase;transition:color .15s;width:100%}.nav-group-header:hover{color:#ffffff8c}.nav-group-header.active-group{color:#ffffff80}.nav-group-chevron{opacity:.5;transition:transform .2s ease}.nav-group-header.collapsed .nav-group-chevron{transform:rotate(-90deg)}.nav-group-items{max-height:300px;overflow:hidden;transition:max-height .25s ease}.nav-group-items.collapsed{max-height:0}.nav-link.grouped{font-size:.84rem;gap:10px;padding:9px 16px 9px 28px}.nav-link.top-level{font-weight:600}.nav-spacer{flex:1 1;min-height:8px}.sidebar.closed .nav-badge{font-size:10px;margin-left:0;min-width:16px;padding:1px 4px;position:absolute;right:6px;top:6px}.sidebar.closed .nav-link{justify-content:center;padding:12px;position:relative}.sidebar.closed .nav-link span{display:none}.sidebar-footer{border-top:1px solid #ffffff1a;display:flex;flex-direction:column;gap:12px;padding:16px}.user-info{background:#ffffff0d;border-radius:var(--radius-md);padding:8px 12px}.user-email{color:#ffffff80;display:block;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:#fff9;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:12px;padding:12px 16px;transition:all var(--transition-fast);width:100%}.logout-btn:hover{background:#dc262633;color:#fca5a5}.sidebar.closed .logout-btn{justify-content:center;padding:12px}.sidebar.closed .logout-btn span,.sidebar.closed .user-info{display:none}.phase-badge{background:#ffffff1a;border-radius:var(--radius-full);color:#fff9;font-size:.75rem;font-weight:500;padding:8px 16px;text-align:center}.loading-screen{align-items:center;background:var(--cream);display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:100vh}.spinner-large{animation:spin .8s linear infinite;border:4px solid var(--cream-dark);border-radius:50%;border-top-color:var(--sage);height:48px;width:48px}.main-content{flex:1 1;margin-left:260px;padding:32px;transition:margin-left var(--transition-normal)}.sidebar.closed~.main-content{margin-left:72px}@media (max-width:1024px){.sidebar{width:72px}.sidebar .logo-text,.sidebar .nav-link span,.sidebar .phase-badge{display:none}.sidebar .nav-link{justify-content:center;padding:12px}.main-content{margin-left:72px}}@media (max-width:640px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0);width:260px}.main-content{margin-left:0;padding:20px}}.landing-page.gateway{--sage:#2c5f4e;--sage-light:#3a7d66;--sage-dark:#1e4639;--sage-pale:#e8f0ed;--gold:#b8926a;--gold-light:#d4b896;--cream:#f8f7f5;--cream-dark:#e8e6e3;--navy:#1a2634;--text:#1a2634;--text-muted:#6b7280;--white:#fff;--font-display:"Playfair Display",serif;--font-body:"Montserrat",-apple-system,sans-serif;align-items:center;background:linear-gradient(145deg,var(--cream) 0,var(--sage-pale) 100%);display:flex;font-family:var(--font-body);justify-content:center;min-height:100vh;opacity:0;padding:40px 20px;transition:opacity .5s ease}.landing-page.gateway.visible{opacity:1}.gateway-container{align-items:center;animation:fadeIn .6s ease forwards;display:flex;flex-direction:column;max-width:480px;width:100%}.gateway-header{margin-bottom:40px;text-align:center}.gateway-logo{height:60px;margin-bottom:12px;width:auto}.gateway-tagline{color:var(--sage);font-family:var(--font-display);font-size:1.25rem;font-style:italic;letter-spacing:.5px;margin:0}.gateway-cards{flex-direction:column;margin-bottom:32px}.gateway-card,.gateway-cards{display:flex;gap:16px;width:100%}.gateway-card{align-items:center;background:var(--white);border:2px solid #0000;border-radius:16px;box-shadow:0 4px 20px #1a263414;cursor:pointer;padding:20px 24px;text-align:left;transition:all .3s ease}.gateway-card:hover{box-shadow:0 8px 30px #1a26341f;transform:translateY(-2px)}.gateway-card.client:hover{border-color:var(--sage)}.gateway-card.team:hover{border-color:var(--gold)}.gateway-card-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:56px;justify-content:center;width:56px}.gateway-card.client .gateway-card-icon{background:var(--sage-pale);color:var(--sage)}.gateway-card.team .gateway-card-icon{background:#d4a85326;color:var(--gold)}.gateway-card-content{flex:1 1}.gateway-card-content h2{color:var(--navy);font-family:var(--font-body);font-size:1.15rem;font-weight:600;margin:0 0 4px}.gateway-card-content p{color:var(--text-muted);font-size:.9rem;margin:0}.gateway-card-arrow{color:var(--text-muted);flex-shrink:0;transition:transform .2s ease}.gateway-card:hover .gateway-card-arrow{transform:translateX(4px)}.gateway-card.client:hover .gateway-card-arrow{color:var(--sage)}.gateway-card.team:hover .gateway-card-arrow{color:var(--gold)}.gateway-new-customer{align-items:center;background:var(--white);border-radius:12px;box-shadow:0 2px 12px #1a26340f;display:flex;flex-direction:column;gap:12px;margin-bottom:32px;padding:24px;width:100%}.gateway-new-customer span{color:var(--text-muted);font-size:.95rem}.gateway-quote-link{align-items:center;background:linear-gradient(135deg,var(--sage) 0,var(--sage-light) 100%);border-radius:10px;box-shadow:0 4px 15px #2c5f4e40;color:var(--white);display:inline-flex;font-size:.95rem;font-weight:600;gap:8px;padding:12px 24px;text-decoration:none;transition:all .3s ease}.gateway-quote-link:hover{box-shadow:0 6px 20px #2c5f4e59;transform:translateY(-2px)}.gateway-footer{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:20px}.gateway-contact{align-items:center;color:var(--text-muted);display:flex;font-size:.85rem;gap:6px;text-decoration:none;transition:color .2s ease}a.gateway-contact:hover{color:var(--sage)}.gateway-contact svg{color:var(--sage-light);flex-shrink:0}.gateway-copyright{color:var(--text-muted);font-size:.8rem;margin:0;opacity:.7;text-align:center}@media (max-width:520px){.landing-page.gateway{padding:30px 16px}.gateway-logo{height:50px}.gateway-tagline{font-size:1.1rem}.gateway-card{padding:16px 20px}.gateway-card-icon{height:48px;width:48px}.gateway-card-icon svg{height:24px;width:24px}.gateway-card-content h2{font-size:1.05rem}.gateway-card-content p{font-size:.85rem}.gateway-footer{align-items:center;flex-direction:column;gap:12px}}.login-page{align-items:center;background:linear-gradient(135deg,#f8f7f5,#e8e6e3);min-height:100vh;padding:20px}.login-logo,.login-logo .logo-icon,.login-page{display:flex;justify-content:center}.login-logo .logo-icon{align-items:center;background:linear-gradient(135deg,var(--sage) 0,#3a7a65 100%);border-radius:14px;box-shadow:0 4px 12px #2c5f4e4d;color:#fff;height:56px;width:56px}.login-logo .logo-text{display:flex;flex-direction:column;text-align:left}.login-logo .logo-title{color:var(--navy);font-size:1.5rem;font-weight:700}.login-logo .logo-subtitle{color:var(--text-muted);font-size:.85rem}.login-form{background:#fff;border-radius:var(--radius-lg);box-shadow:0 4px 24px #00000014;padding:40px}.login-form h2{color:var(--navy);font-size:1.5rem;margin:0}.login-form>p{color:var(--text-muted);margin:8px 0 24px}.error-message{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md);color:#b91c1c;display:flex;font-size:.9rem;gap:8px;padding:12px 16px}.error-message,.form-group{margin-bottom:20px}.form-group label{margin-bottom:8px}.input-wrapper{align-items:center;display:flex;position:relative}.input-wrapper svg{color:var(--text-muted);left:14px;position:absolute}.input-wrapper input{border:2px solid var(--cream-dark);border-radius:var(--radius-md);font-size:1rem;padding:14px 14px 14px 44px;transition:all var(--transition-fast);width:100%}.input-wrapper input:focus{border-color:var(--sage);box-shadow:0 0 0 3px #2c5f4e1a;outline:none}.input-wrapper input::placeholder{color:#aaa}.toggle-password{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;position:absolute;right:14px}.toggle-password:hover{color:var(--navy)}.login-btn{align-items:center;background:linear-gradient(135deg,var(--sage) 0,#3a7a65 100%);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;margin-top:8px;padding:14px;transition:all var(--transition-fast);width:100%}.login-btn:hover:not(:disabled){box-shadow:0 4px 12px #2c5f4e4d;transform:translateY(-1px)}.login-btn:disabled{cursor:not-allowed;opacity:.7}.login-btn .spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}.login-footer{color:var(--text-muted);font-size:.85rem;margin-top:24px}.login-footer p{margin:4px 0}.form-group-checkbox{margin-bottom:20px}.checkbox-label{-webkit-user-select:none;user-select:none}.checkbox-custom{background:#fff;border:2px solid var(--border);border-radius:4px;height:20px;transition:all .2s ease;width:20px}.checkbox-label input[type=checkbox]:checked+.checkbox-custom{background:var(--sage);border-color:var(--sage)}.checkbox-label input[type=checkbox]:checked+.checkbox-custom:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:10px;margin-bottom:2px;transform:rotate(45deg);width:6px}.checkbox-text{color:var(--text-muted);font-size:.9rem}.checkbox-label:hover .checkbox-custom{border-color:var(--sage)}@media (max-width:480px){.login-form{padding:24px}.login-logo .logo-title{font-size:1.25rem}}.review-section{margin-top:8px}.review-section-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.review-section-header h3{align-items:center;color:#1a2634;color:var(--navy,#1a2634);display:flex;font-size:1rem;font-weight:700;gap:8px;margin:0}.review-flag{align-items:center;border-radius:20px;display:inline-flex;font-size:.75rem;font-weight:600;gap:6px;padding:4px 12px}.review-flag.upcoming{background:#fef3c7;color:#d97706}.review-flag.overdue{background:#fef2f2;color:#dc2626}.review-history{display:flex;flex-direction:column;gap:8px;margin-top:12px}.review-history-card{align-items:center;background:#fff;border:1px solid #e8e4df;border:1px solid var(--cream-dark,#e8e4df);border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;transition:all .12s}.review-history-card:hover{background:#f8f7f5;background:var(--cream,#f8f7f5);border-color:#2c5f4e;border-color:var(--sage,#2c5f4e)}.review-history-type{color:#1a2634;color:var(--navy,#1a2634);display:block;font-size:.88rem;font-weight:600}.review-history-date{color:#6b7280;color:var(--text-muted,#6b7280);font-size:.75rem}.review-status-badge{align-items:center;border-radius:6px;display:inline-flex;font-size:.72rem;font-weight:600;gap:5px;padding:4px 10px}.review-status-badge.pending_employee{background:#fef3c7;color:#d97706}.review-status-badge.pending_admin{background:#dbeafe;color:#2563eb}.review-status-badge.completed{background:#d1fae5;color:#059669}.review-status-badge.draft{background:#f3f4f6;color:#6b7280}.review-info-banner{align-items:center;border-radius:8px;display:flex;font-size:.82rem;gap:10px;margin-bottom:16px;padding:10px 14px}.review-info-banner.waiting{background:#fef3c7;color:#92400e}.review-start-area{margin-top:14px}.btn-review-new{align-items:center;background:#2c5f4e;background:var(--sage,#2c5f4e);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-family:sans-serif;font-family:var(--font-sans,sans-serif);font-size:.85rem;font-weight:600;gap:8px;padding:10px 20px;transition:all .12s}.btn-review-new:hover{background:#234e3f}.review-confirm-box{background:#f8f7f5;background:var(--cream,#f8f7f5);border:1px solid #e8e4df;border:1px solid var(--cream-dark,#e8e4df);border-radius:10px;padding:16px}.review-confirm-box p{color:var(--navy);font-size:.85rem;line-height:1.5;margin:0 0 12px}.review-confirm-actions{display:flex;gap:8px}.btn-review-start{background:var(--sage);border:none;border-radius:8px;color:#fff;font-weight:600}.btn-review-cancel,.btn-review-start{cursor:pointer;font-family:var(--font-sans);font-size:.82rem;padding:8px 16px}.btn-review-cancel{background:none;border:1px solid var(--cream-dark);border-radius:8px;color:var(--text-muted)}.review-active{margin-top:16px}.review-active-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.review-active-header h3{color:var(--navy);font-size:1.05rem;margin:0}.btn-review-close{background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;padding:6px}.btn-review-close:hover{background:var(--cream);color:var(--navy)}.review-waiting{color:var(--text-muted);padding:40px 20px;text-align:center}.review-waiting h4{color:var(--navy);margin:12px 0 6px}.review-waiting p{font-size:.85rem}.review-score-summary{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:20px}.score-summary-card{background:#fff;border:1px solid var(--cream-dark);border-radius:10px;padding:16px;text-align:center}.score-summary-card.employee{border-left:4px solid #d97706}.score-summary-card.admin{border-left:4px solid var(--sage)}.score-summary-label{align-items:center;color:var(--text-muted);display:flex;font-size:.72rem;font-weight:600;gap:6px;justify-content:center;letter-spacing:.04em;text-transform:uppercase}.score-summary-value{color:var(--navy);display:block;font-size:1.8rem;font-weight:700;margin:4px 0}.score-summary-level{display:block;font-size:.78rem;font-weight:600}.review-dual-columns{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:20px}.review-column{background:#fff;border:1px solid var(--cream-dark);border-radius:10px;padding:16px}.review-column h4{align-items:center;display:flex;font-size:.85rem;font-weight:700;gap:8px;margin:0 0 14px}.employee-col{border-top:3px solid #d97706}.employee-col h4{color:#d97706}.admin-col{border-top:3px solid var(--sage)}.admin-col h4{color:var(--sage)}.review-category{border:1px solid var(--cream-dark);border-radius:10px;margin-bottom:10px;overflow:hidden}.review-cat-header{align-items:center;background:var(--cream);cursor:pointer;display:flex;gap:12px;justify-content:space-between;padding:12px 16px}.review-cat-header:hover{background:#f0eee9}.review-cat-header h3{color:var(--navy);font-size:.88rem;margin:0}.review-cat-sub{color:var(--text-muted);font-size:.72rem;font-style:italic;margin:2px 0 0}.review-cat-right{align-items:center;display:flex;flex-shrink:0;gap:10px}.review-cat-score{color:var(--text-muted);font-size:.82rem;font-weight:700;min-width:55px;text-align:right}.review-cat-score.complete{color:var(--sage)}.review-cat-body{padding:8px 16px 16px}.review-score-row{align-items:center;border-bottom:1px solid #f8f7f5;border-bottom:1px solid var(--cream,#f8f7f5);display:flex;gap:12px;justify-content:space-between;padding:8px 0}.review-score-row:last-child{border-bottom:none}.score-label{color:var(--navy);flex:1 1;font-size:.82rem;min-width:0}.score-inputs{align-items:center;display:flex;flex-shrink:0;gap:4px}.score-btn{background:#fff;border:2px solid var(--cream-dark);border-radius:6px;color:var(--text-muted);cursor:pointer;font-family:var(--font-sans);font-size:.78rem;font-weight:700;height:32px;transition:all .12s;width:32px}.score-btn:hover:not(.disabled){border-color:var(--sage);color:var(--sage)}.score-btn.selected{background:var(--sage);border-color:var(--sage);color:#fff}.score-btn.disabled{cursor:default;opacity:.8}.score-compare{align-items:center;background:#fef3c7;border-radius:50%;color:#d97706;display:inline-flex;flex-shrink:0;font-size:.72rem;font-weight:700;height:28px;justify-content:center;margin-left:4px;width:28px}.review-text-sections{margin-top:16px}.review-text-group{margin-bottom:14px}.review-text-group label{align-items:center;color:var(--navy);display:flex;font-size:.78rem;font-weight:700;gap:6px;letter-spacing:.03em;margin-bottom:6px;text-transform:uppercase}.review-text-group textarea{border:2px solid var(--cream-dark);border-radius:8px;box-sizing:border-box;font-family:var(--font-sans);font-size:.85rem;outline:none;padding:10px 12px;resize:vertical;transition:border-color .15s;width:100%}.review-text-group textarea:focus{border-color:var(--sage)}.review-text-group textarea:disabled{background:var(--cream);cursor:default}.review-discussion{background:#fff;border:1px solid var(--cream-dark);border-radius:10px;margin-bottom:16px;padding:16px}.review-discussion h4{align-items:center;color:var(--navy);display:flex;font-size:.88rem;gap:8px;margin:0 0 14px}.discussion-fields{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.discussion-field.full{grid-column:1/-1}.discussion-field label{color:var(--text-muted);display:block;font-size:.75rem;font-weight:600;letter-spacing:.03em;margin-bottom:4px;text-transform:uppercase}.discussion-field input,.discussion-field textarea{border:2px solid var(--cream-dark);border-radius:8px;box-sizing:border-box;font-family:var(--font-sans);font-size:.85rem;outline:none;padding:9px 12px;width:100%}.discussion-field input:focus,.discussion-field textarea:focus{border-color:var(--sage)}.discussion-field textarea{resize:vertical}.review-actions{gap:10px;justify-content:flex-end;padding-top:4px}.btn-review-complete,.btn-review-save,.btn-review-send{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:.85rem;font-weight:600;gap:8px;padding:10px 20px}.btn-review-save{background:var(--cream);border:1px solid var(--cream-dark);color:var(--navy)}.btn-review-save:hover{background:#ede9e3}.btn-review-send{background:#2563eb;color:#fff}.btn-review-send:hover{background:#1d4ed8}.btn-review-complete{background:var(--sage);color:#fff}.btn-review-complete:hover{background:#234e3f}.self-review-container{margin:0 auto;max-width:600px;padding:16px}.self-review-header{margin-bottom:20px;text-align:center}.self-review-header h2{color:#1a2634;color:var(--navy,#1a2634);font-size:1.2rem;margin:0 0 8px}.self-review-header p{color:#6b7280;color:var(--text-muted,#6b7280);font-size:.85rem;margin:0 0 12px}.self-review-total{align-items:center;display:flex;gap:12px;justify-content:center}.self-review-total-score{color:#1a2634;color:var(--navy,#1a2634);font-size:1.6rem;font-weight:700}.self-review-total-level{font-size:.82rem;font-weight:600}.self-review-actions{display:flex;gap:10px;justify-content:center;margin-top:20px;padding-bottom:40px}.btn-self-save,.btn-self-submit{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;font-family:sans-serif;font-family:var(--font-sans,sans-serif);font-size:.9rem;font-weight:600;gap:8px;padding:12px 24px}.btn-self-save{background:#f0f0f0;color:#333}.btn-self-submit{background:#2c5f4e;background:var(--sage,#2c5f4e);color:#fff}.btn-self-submit:disabled{cursor:not-allowed;opacity:.5}.review-alerts-card{background:#fff;border:1px solid #e8e4df;border:1px solid var(--cream-dark,#e8e4df);border-left:4px solid #d97706;border-radius:10px;padding:14px 16px}.review-alerts-card h4{color:var(--navy);font-weight:700;gap:8px;margin:0 0 10px}.review-alert-row,.review-alerts-card h4{align-items:center;display:flex;font-size:.82rem}.review-alert-row{justify-content:space-between;padding:6px 0}.review-alert-row.overdue{color:#dc2626}.review-alert-name{color:var(--navy);font-weight:600}.review-alert-row.overdue .review-alert-name{color:#dc2626}.review-alert-days{align-items:center;display:flex;font-size:.75rem;font-weight:600;gap:4px}@media (max-width:768px){.discussion-fields,.review-dual-columns,.review-score-summary{grid-template-columns:1fr}.review-score-row{align-items:flex-start;flex-direction:column;gap:6px}.score-inputs{align-self:flex-end}}.dash{display:flex;flex-direction:column;gap:20px}.dash-header{margin-bottom:4px}.dash-header-text{align-items:baseline;display:flex;gap:12px;margin-bottom:2px}.dash-header h1{color:var(--navy);font-family:var(--font-heading);font-size:1.65rem;font-weight:600;margin:0}.dash-header-date{font-weight:500}.dash-header-date,.dash-header-summary{color:var(--text-muted);font-size:.85rem}.dash-header-summary{margin:0}.dash-kpi-row{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(6,1fr)}.dash-kpi{background:var(--white);border-radius:var(--radius-lg);border-top:3px solid var(--sage);box-shadow:var(--shadow-sm);padding:18px 16px;position:relative;transition:transform .15s,box-shadow .15s}.dash-kpi:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.dash-kpi-icon{opacity:.5;position:absolute;right:14px;top:14px}.dash-kpi-label{color:var(--text-muted);font-size:.65rem;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.dash-kpi-value{color:var(--navy);font-family:var(--font-heading);font-size:1.5rem;font-weight:700;line-height:1}.dash-kpi-sub{color:var(--text-muted);font-size:.75rem;font-weight:500;margin-top:4px}.dash-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:22px}.dash-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.dash-card-header h2{margin:0}.dash-card-header h2,.dash-card-title{color:var(--navy);font-family:var(--font-heading);font-size:1.1rem;font-weight:600}.dash-card-title{margin:0 0 16px}.dash-card-title.light{color:#fff}.dash-card-subtitle{color:var(--text-muted);font-size:.7rem;font-weight:500}.dash-view-all{align-items:center;color:var(--sage);display:flex;font-size:.7rem;font-weight:600;gap:4px;letter-spacing:.5px;text-decoration:none;text-transform:uppercase;transition:gap .15s}.dash-view-all:hover{gap:8px}.dash-empty{color:var(--text-muted);font-size:.85rem;padding:24px 0;text-align:center}.dash-status-badge{border-radius:6px;flex-shrink:0;font-size:.7rem;font-weight:600;padding:4px 10px;white-space:nowrap}.dash-status-badge.sm{font-size:.62rem;padding:3px 8px}.dash-two-col{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.dash-pipeline-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.dash-pipeline-row{align-items:center;border:1px solid #f1f5f9;border-radius:10px;color:inherit;display:flex;gap:12px;padding:11px 13px;text-decoration:none;transition:background .12s,border-color .12s}.dash-pipeline-row:hover{background:var(--cream);border-color:var(--cream-dark)}.dash-pipeline-row.needs-review{background:#fffbeb;border-color:#fef3c7}.dash-pipeline-info{flex:1 1;min-width:0}.dash-pipeline-name-row{align-items:center;display:flex;gap:8px;margin-bottom:1px}.dash-pipeline-name{color:var(--navy);font-size:.85rem;font-weight:600}.dash-web-lead-tag{background:#b8926a1f;color:var(--gold)}.dash-new-lead-tag,.dash-web-lead-tag{border-radius:3px;font-size:.55rem;font-weight:700;letter-spacing:.5px;padding:1px 6px;text-transform:uppercase}.dash-new-lead-tag{background:#fef3c7;color:#d97706}.dash-pipeline-detail{color:var(--text-muted);font-size:.72rem}.dash-pipeline-amount{color:var(--navy);font-family:var(--font-heading);font-size:.9rem;font-weight:700;white-space:nowrap}.dash-pipeline-summary{background:var(--cream);border-radius:10px;padding:14px}.dash-pipeline-summary-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.dash-pipeline-summary-top span{color:var(--text-muted);font-size:.72rem;font-weight:600}.dash-pipeline-summary-top strong{font-family:var(--font-heading);font-size:.9rem;font-weight:700}.dash-pipeline-bar{border-radius:4px;display:flex;height:6px;margin-bottom:8px;overflow:hidden}.dash-bar-seg{min-width:4px}.dash-bar-seg.review{background:#fbbf24}.dash-bar-seg.sent{background:var(--gold)}.dash-bar-seg.approved{background:var(--green)}.dash-bar-seg.declined{background:var(--red)}.dash-pipeline-legend{display:flex;gap:14px}.dash-pipeline-legend span{align-items:center;color:var(--text-muted);display:flex;font-size:.65rem;gap:4px}i.dot{border-radius:50%;display:inline-block;height:6px;width:6px}i.dot.review{background:#fbbf24}i.dot.sent{background:var(--gold)}i.dot.approved{background:var(--green)}i.dot.declined{background:var(--red)}.dash-todo-header-right{align-items:center;display:flex;gap:14px}.dash-todo-remaining{color:var(--text-muted);font-size:.78rem;font-weight:500}.dash-todo-filters{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}.dash-todo-pill{background:#f1f5f9;border:none;border-radius:6px;color:#64748b;cursor:pointer;font-family:var(--font-sans);font-size:.7rem;font-weight:600;padding:4px 12px;text-transform:capitalize;transition:all .12s}.dash-todo-pill.active{background:var(--sage);color:#fff}.dash-todo-list{display:flex;flex-direction:column;gap:3px;margin-bottom:10px;max-height:320px;overflow-y:auto}.dash-todo-item{align-items:center;border-radius:8px;cursor:pointer;display:flex;gap:10px;padding:9px 11px;transition:all .12s}.dash-todo-item:hover{background:var(--cream)}.dash-todo-item.done{opacity:.5}.dash-todo-check{align-items:center;border:2px solid var(--gold);border-radius:4px;display:flex;flex-shrink:0;height:18px;justify-content:center;transition:all .12s;width:18px}.dash-todo-check.checked{background:var(--green);border:none;color:#fff}.dash-todo-text{color:var(--navy);flex:1 1;font-size:.82rem}.dash-todo-item.done .dash-todo-text{color:var(--text-muted);text-decoration:line-through}.dash-todo-priority{border-radius:4px;flex-shrink:0;font-size:.6rem;font-weight:600;padding:2px 7px;text-transform:uppercase}.dash-todo-add-btn{align-items:center;background:none;border:1px dashed var(--cream-dark);border-radius:8px;color:var(--sage);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:.8rem;font-weight:600;gap:6px;justify-content:center;padding:8px 12px;transition:all .12s;width:100%}.dash-todo-add-btn:hover{background:#2c5f4e0a;border-color:var(--sage)}.dash-todo-add-form{padding:10px 0}.dash-todo-add-form input{border:2px solid var(--cream-dark);border-radius:8px;font-family:var(--font-sans);font-size:.85rem;margin-bottom:8px;outline:none;padding:9px 12px;transition:border-color .15s;width:100%}.dash-todo-add-form input:focus{border-color:var(--sage)}.dash-todo-add-options{align-items:center;display:flex;gap:6px}.dash-todo-add-options select{background:var(--white);border:1px solid var(--cream-dark);border-radius:6px;font-family:var(--font-sans);font-size:.75rem;padding:6px 8px}.dash-todo-add-save{background:var(--sage);border:none;border-radius:6px;color:#fff;font-weight:600;padding:6px 16px}.dash-todo-add-cancel,.dash-todo-add-save{cursor:pointer;font-family:var(--font-sans);font-size:.75rem}.dash-todo-add-cancel{background:none;border:1px solid var(--cream-dark);border-radius:6px;color:var(--text-muted);padding:6px 12px}.dash-todo-action-btn{align-items:center;background:none;border:none;border-radius:4px;color:#c0c7d0;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;opacity:0;padding:4px;transition:all .12s}.dash-todo-item:hover .dash-todo-action-btn{opacity:1}.dash-todo-action-btn:hover{background:#2c5f4e14;color:var(--sage)}.dash-todo-action-btn.delete:hover{background:#dc262614;color:#dc2626}.dash-todo-edit-row{align-items:center;background:var(--cream);border-radius:8px;display:flex;gap:6px;padding:6px 8px}.dash-todo-edit-input{border:2px solid var(--sage);border-radius:6px;flex:1 1;font-family:var(--font-sans);font-size:.82rem;min-width:0;outline:none;padding:6px 10px}.dash-todo-edit-select{background:#fff;border:1px solid var(--cream-dark);border-radius:5px;flex-shrink:0;font-family:var(--font-sans);font-size:.7rem;padding:5px 6px}.dash-todo-edit-save{background:var(--sage);border:none;border-radius:5px;color:#fff;cursor:pointer;flex-shrink:0;font-family:var(--font-sans);font-size:.72rem;font-weight:600;padding:5px 12px}.dash-todo-edit-cancel{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;padding:3px}.dash-todo-edit-cancel:hover{color:#dc2626}.dash-three-col{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr 1fr}.dash-sparkbar{align-items:flex-end;display:flex;gap:6px;width:100%}.dash-sparkbar-col{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:4px}.dash-sparkbar-val{color:var(--text-muted);font-size:.62rem;font-weight:500}.dash-sparkbar-val.active{color:var(--sage);font-weight:700}.dash-sparkbar-bar{background:#e8f0ed;border-radius:4px;transition:height .5s ease;width:100%}.dash-sparkbar-bar.active{background:linear-gradient(180deg,var(--sage) 0,var(--teal) 100%)}.dash-sparkbar-label{color:var(--text-muted);font-size:.58rem;letter-spacing:.5px}.dash-revenue-footer{background:var(--cream);border-radius:8px;display:flex;justify-content:space-between;margin-top:14px;padding:10px 14px}.dash-revenue-footer-right{text-align:right}.dash-revenue-footer-label{color:var(--text-muted);font-size:.62rem;font-weight:600;margin-bottom:2px;text-transform:uppercase}.dash-revenue-footer-value{font-family:var(--font-heading);font-size:1rem;font-weight:700}.dash-revenue-footer-value.sage{color:var(--sage)}.dash-revenue-footer-value.red{color:var(--red)}.dash-proximity-search{display:flex;gap:8px;margin-bottom:12px}.dash-proximity-input-wrap{align-items:center;background:#fff;border:2px solid var(--cream-dark);border-radius:8px;display:flex;flex:1 1;gap:8px;padding:0 12px;transition:border-color .15s}.dash-proximity-input-wrap:focus-within{border-color:var(--sage)}.dash-proximity-input-wrap svg{color:var(--text-muted);flex-shrink:0}.dash-proximity-input-wrap input{background:#0000;border:none;flex:1 1;font-family:var(--font-sans);font-size:.82rem;outline:none;padding:9px 0}.dash-proximity-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;display:flex;padding:2px}.dash-proximity-btn{background:var(--sage);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:var(--font-sans);font-size:.78rem;font-weight:600;padding:0 18px;transition:opacity .12s;white-space:nowrap}.dash-proximity-btn:disabled{cursor:not-allowed;opacity:.5}.dash-proximity-error{color:var(--red);font-size:.78rem;margin-bottom:8px}.dash-proximity-results{display:flex;flex-direction:column;gap:5px}.dash-proximity-row{align-items:center;background:#fff;border:1px solid #f1f5f9;border-radius:8px;display:flex;gap:10px;padding:9px 12px}.dash-proximity-row.closest{background:#2c5f4e0a;border-color:#2c5f4e33}.dash-proximity-dist{align-items:center;background:#e8f0ed;border-radius:50%;color:var(--sage);display:flex;flex-shrink:0;font-size:.65rem;font-weight:700;height:28px;justify-content:center;width:28px}.dash-proximity-dist.closest{background:var(--sage);color:#fff}.dash-proximity-info{flex:1 1;min-width:0}.dash-proximity-name{color:var(--navy);font-size:.82rem;font-weight:600}.dash-proximity-addr{color:var(--text-muted);font-size:.68rem;margin-top:1px}.dash-proximity-type{border-radius:4px;flex-shrink:0;font-size:.6rem;font-weight:600;letter-spacing:.5px;padding:3px 8px;text-transform:uppercase}.dash-proximity-miles{color:#64748b;font-size:.75rem;font-weight:500;white-space:nowrap}.dash-proximity-note{color:var(--text-muted);font-size:.68rem;margin-top:6px;text-align:center}.dash-proximity-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:28px 16px;text-align:center}.dash-proximity-empty-icon{color:var(--cream-dark);margin-bottom:8px}.dash-proximity-empty p{color:var(--text-muted);font-size:.78rem;line-height:1.5;margin:0}.dash-invoice-list{display:flex;flex-direction:column;gap:5px}.dash-invoice-row{align-items:center;border:1px solid #f1f5f9;border-radius:8px;color:inherit;display:flex;gap:10px;padding:9px 11px;text-decoration:none;transition:background .12s}.dash-invoice-row:hover{background:var(--cream)}.dash-invoice-info{flex:1 1;min-width:0}.dash-invoice-name{color:var(--navy);font-size:.82rem;font-weight:600}.dash-invoice-number{color:var(--text-muted);font-size:.68rem}.dash-invoice-amount{color:var(--navy);font-size:.9rem;font-weight:700;white-space:nowrap}.dash-bottom-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 2fr}.dash-mix-item{margin-bottom:14px}.dash-mix-header{display:flex;justify-content:space-between;margin-bottom:4px}.dash-mix-label{color:var(--navy);font-size:.82rem;font-weight:600}.dash-mix-stats{color:#64748b;font-size:.75rem}.dash-mix-bar-track{background:#f1f5f9;border-radius:3px;height:6px;overflow:hidden}.dash-mix-bar-fill{border-radius:3px;height:100%;transition:width .5s ease}.dash-mix-bar-fill.residential{background:var(--sage)}.dash-mix-bar-fill.commercial{background:var(--teal)}.dash-mix-bar-fill.property_manager{background:var(--gold)}.dash-mix-total{background:var(--cream);border-radius:10px;margin-top:18px;padding:14px;text-align:center}.dash-mix-total-label{color:var(--text-muted);font-size:.62rem;font-weight:600;margin-bottom:4px;text-transform:uppercase}.dash-mix-total-value{color:var(--sage);font-family:var(--font-heading);font-size:1.35rem;font-weight:700}.dash-quick-actions{background:linear-gradient(135deg,var(--navy) 0,#2c4a5a 50%,var(--teal) 100%)!important;color:#fff;display:flex;flex-direction:column;justify-content:space-between}.dash-quick-actions-sub{color:#ffffff73;font-size:.8rem;margin:0 0 16px}.dash-quick-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(4,1fr)}.dash-quick-tile{background:#ffffff14;border:1px solid #ffffff0f;border-radius:10px;color:#fff;padding:14px 10px;text-align:center;text-decoration:none;transition:all .15s}.dash-quick-tile:hover{background:#ffffff26;transform:translateY(-2px)}.dash-quick-icon{display:flex;justify-content:center;margin-bottom:6px;opacity:.85}.dash-quick-label{font-size:.75rem;font-weight:600}.dash-quick-desc{color:#fff6;font-size:.62rem;margin-top:2px}@media (max-width:1280px){.dash-kpi-row{grid-template-columns:repeat(3,1fr)}}@media (max-width:1024px){.dash-kpi-row{grid-template-columns:repeat(2,1fr)}.dash-bottom-row,.dash-three-col,.dash-two-col{grid-template-columns:1fr}.dash-quick-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:640px){.dash-kpi-row{grid-template-columns:1fr}.dash-quick-grid{grid-template-columns:repeat(2,1fr)}.dash-header-text{flex-direction:column;gap:2px}}.dash-leaderboard{margin-bottom:20px}.dash-leaderboard .dash-card-header h2{align-items:center;display:flex;gap:6px}.live-badge{animation:pulse-live 2s infinite;background:#f0fdf4;border-radius:10px;color:#16a34a;font-size:.65rem;font-weight:600;margin-left:8px;padding:2px 8px}@keyframes pulse-live{0%,to{opacity:1}50%{opacity:.6}}.dash-lb-controls{align-items:center;display:flex;gap:8px}.dash-lb-toggle{background:#f3f4f6;border-radius:6px;display:flex;padding:2px}.dash-lb-toggle button{background:#0000;border:none;border-radius:5px;color:var(--text-muted);cursor:pointer;font-size:.68rem;font-weight:600;padding:4px 12px;transition:all .15s}.dash-lb-toggle button.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:var(--navy)}.dash-lb-toggle button:hover:not(.active){color:var(--text)}.dash-lb-period-bar{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:center;padding:6px 20px 8px}.dash-lb-period-label{color:var(--text-muted);font-size:.68rem;font-weight:500}.dash-lb-month-nav{align-items:center;display:flex;gap:10px}.dash-lb-month-arrow{align-items:center;background:#fff;border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:24px;justify-content:center;line-height:1;transition:all .15s;width:24px}.dash-lb-month-arrow:hover:not(:disabled){background:var(--cream);border-color:var(--sage)}.dash-lb-month-arrow:disabled{cursor:not-allowed;opacity:.3}.dash-leaderboard-list{padding:4px 0}.dash-lb-row{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;gap:12px;padding:10px 20px;transition:background .1s}.dash-lb-row:last-child{border-bottom:none}.dash-lb-row:hover{background:var(--cream)}.dash-lb-row.top-three{background:#fdfcfb}.dash-lb-row.top-three:first-child{background:#faf7f2}.dash-lb-rank{align-items:center;display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.dash-lb-rank-num{font-size:.78rem;font-weight:700;opacity:.5}.dash-lb-info{flex:1 1;min-width:0}.dash-lb-name-row{align-items:baseline;display:flex;gap:8px;margin-bottom:4px}.dash-lb-name{color:var(--navy);font-size:.85rem;font-weight:600}.dash-lb-stats{color:var(--text-muted);font-size:.65rem}.dash-lb-bar-track{background:#f3f4f6;border-radius:3px;height:6px;overflow:hidden}.dash-lb-bar-fill{background:linear-gradient(90deg,var(--sage) 0,#4a9e80 100%);border-radius:3px;height:100%;min-width:4px;transition:width .6s ease}.dash-lb-bar-fill.negative{background:linear-gradient(90deg,#ef4444,#dc2626)}.dash-lb-profit{flex-shrink:0;min-width:80px;text-align:right}.dash-lb-amount{color:var(--sage);display:block;font-size:.95rem;font-weight:700}.dash-lb-amount.negative{color:#dc2626}.dash-lb-margin{color:var(--text-muted);display:block;font-size:.6rem;margin-top:1px}.dash-leaderboard-footer{border-top:1px solid #f3f4f6;color:var(--text-muted);font-size:.62rem;font-style:italic;padding:8px 20px 12px}.modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a263499;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-container{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;width:100%}.modal-container.small{max-width:400px}.modal-container.medium{max-width:560px}.modal-container.large{max-width:800px}.modal-title{color:var(--navy);font-family:var(--font-heading);font-size:1.3rem}.modal-close{border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition-fast)}.modal-close:hover{background:var(--cream);color:var(--navy)}.form-grid{grid-gap:20px;gap:20px}.form-label{color:var(--navy);font-size:.85rem;font-weight:500}.form-label .required{color:var(--red);margin-left:2px}.form-input,.form-select,.form-textarea{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);color:var(--text-dark);font-size:.9rem;padding:12px 14px;transition:all var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-pale);outline:none}.form-textarea{min-height:100px;resize:vertical}.form-checkbox-group{display:flex;flex-wrap:wrap;gap:16px}.form-checkbox-label{align-items:center;cursor:pointer;display:flex;font-size:.9rem;gap:8px}.form-checkbox-label input[type=checkbox]{accent-color:var(--sage);height:18px;width:18px}.form-error{font-size:.8rem}.form-section-title{border-bottom:1px solid var(--cream-dark);color:var(--text-muted);font-size:.75rem;grid-column:1/-1;letter-spacing:1px;margin:24px 0 16px;padding-bottom:8px}.form-section-title:first-child{margin-top:0}.btn-cancel{background:var(--cream);border-radius:var(--radius-md);color:var(--text-dark);font-weight:500;padding:12px 24px}.btn-cancel:hover{background:var(--cream-dark)}.btn-save{background:var(--sage);border-radius:var(--radius-md);color:var(--white);font-weight:500;padding:12px 24px}.btn-save:hover{background:var(--sage-light)}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.clients-page-v2{display:block}.clients-page-v2>*+*{margin-top:20px}.page-header-v2{align-items:flex-start;display:flex;gap:20px;justify-content:space-between}.header-left h1{color:var(--navy);font-family:var(--font-heading);font-size:2rem;margin-bottom:8px}.header-stats{display:flex;flex-wrap:wrap;gap:8px}.stat-pill{align-items:center;background:var(--cream);border-radius:var(--radius-full);color:var(--text-muted);display:inline-flex;font-size:.75rem;font-weight:500;gap:4px;padding:4px 12px}.stat-pill.active{background:var(--green-light);color:var(--green)}.stat-pill.lead{background:var(--gold-pale);color:var(--gold)}.stat-pill.warning{background:var(--orange-light);color:var(--orange)}.stat-pill.clickable{cursor:pointer;transition:all var(--transition-fast)}.stat-pill.clickable:hover{box-shadow:0 2px 6px #00000026;transform:scale(1.05)}.header-actions{flex-shrink:0}.header-actions .btn{position:relative}.filter-badge{background:var(--red);border:2px solid var(--white);border-radius:50%;height:10px;position:absolute;right:-4px;top:-4px;width:10px}.search-bar-v2{align-items:center;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;gap:16px;padding:12px 20px}.search-input-wrapper{flex:1 1;position:relative}.search-input-wrapper .search-icon{color:var(--text-muted);left:14px;pointer-events:none;position:absolute}.search-input-wrapper input{border:2px solid var(--cream-dark);border-radius:var(--radius-md);padding:12px 40px 12px 48px;transition:all var(--transition-fast);width:100%}.search-input-wrapper input:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-pale);outline:none}.clear-search,.search-input-wrapper input::placeholder{color:var(--text-muted)}.clear-search{align-items:center;border-radius:50%;display:flex;height:24px;justify-content:center;position:absolute;right:12px;transition:all var(--transition-fast);width:24px}.clear-search:hover{background:var(--cream);color:var(--navy)}.search-results-count{color:var(--text-muted);font-size:.85rem;white-space:nowrap}.filters-panel{align-items:flex-end;animation:slideDown .2s ease;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;gap:16px;padding:16px 20px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.filter-group label{font-size:.7rem;font-weight:600}.filter-group select{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);cursor:pointer;font-size:.85rem;min-width:140px;padding:10px 14px}.filter-group select:focus{border-color:var(--sage);outline:none}.clear-filters-btn{align-items:center;border-radius:var(--radius-md);color:var(--red);display:flex;font-size:.85rem;font-weight:500;gap:6px;padding:10px 16px;transition:all var(--transition-fast)}.clear-filters-btn:hover{background:var(--red-light)}.clients-table-container{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.clients-table{border-collapse:collapse;width:100%}.clients-table thead{background:var(--navy);color:#fff}.clients-table th{font-size:.7rem;font-weight:600;letter-spacing:.5px;padding:12px 10px;text-align:left;text-transform:uppercase;-webkit-user-select:none;user-select:none;white-space:nowrap}.clients-table th.sortable{cursor:pointer;transition:background var(--transition-fast)}.clients-table th.sortable:hover{background:#ffffff1a}.clients-table th.center{text-align:center}.clients-table th .sort-icon{margin-left:4px;opacity:.8}.clients-table th.actions-col{text-align:right;width:120px}.clients-table tbody{background:#fff;display:table-row-group}.clients-table tbody tr{border-bottom:1px solid var(--cream-dark);cursor:pointer;display:table-row}.clients-table tbody tr:last-child{border-bottom:none}.clients-table tbody tr:hover{background:var(--sage-pale)}.clients-table tbody tr.inactive{opacity:.6}.clients-table td{display:table-cell;font-size:.8rem;padding:10px;vertical-align:middle}.client-cell{gap:10px}.client-avatar-sm,.client-cell{align-items:center;display:flex}.client-avatar-sm{background:var(--sage-pale);border-radius:var(--radius-md);color:var(--sage);flex-shrink:0;height:32px;justify-content:center;width:32px}.client-name-col{display:flex;flex-direction:column;line-height:1.2;min-width:0}.client-name-text{color:var(--navy);font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-type-text{color:var(--text-muted);font-size:.7rem}.contact-cell{min-width:140px}.contact-lines{display:flex;flex-direction:column;gap:1px;line-height:1.3}.contact-line{align-items:center;color:var(--text-dark);display:flex;font-size:.75rem;gap:5px;white-space:nowrap}.contact-line.email{color:var(--text-muted);font-size:.7rem}.contact-line svg{color:var(--text-muted);flex-shrink:0;height:12px;width:12px}.address-cell{max-width:180px;min-width:130px}.address-content{display:flex;flex-direction:column;gap:0;line-height:1.3}.address-line{color:var(--text-dark);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.address-city{color:var(--text-muted);font-size:.7rem}.no-address{color:var(--text-muted);font-size:.75rem;font-style:italic}.frequency-cell{white-space:nowrap}.frequency-badge{background:var(--cream);border-radius:var(--radius-full);color:var(--text-muted);display:inline-flex;font-size:.7rem;padding:3px 8px}.frequency-badge.freq-weekly{background:var(--sage-pale);color:var(--sage)}.frequency-badge.freq-biweekly{background:var(--gold-pale);color:var(--gold)}.frequency-badge.freq-monthly{background:#3d6b6b1a;color:var(--teal)}.jobs-cell,.jobs-cell.center{text-align:center}.job-count{align-items:center;background:var(--sage-pale);border-radius:4px;color:var(--sage);display:inline-flex;height:22px;justify-content:center;min-width:22px;padding:0 5px}.job-count.past{background:var(--cream);color:var(--text-muted)}.job-count.warning{background:var(--orange-light);color:var(--orange)}.next-job-cell{white-space:nowrap}.next-job-info{display:flex;flex-direction:column;gap:0;line-height:1.2}.next-job-date{color:var(--navy);font-size:.75rem;font-weight:600}.next-job-time{font-size:.65rem}.next-job-time,.no-job{color:var(--text-muted)}.no-job{font-size:.75rem}.no-job.warning{color:var(--orange);font-weight:500}.status-cell{white-space:nowrap}.status-badge-v2{border-radius:var(--radius-full);display:inline-flex;font-size:.6rem;font-weight:600;letter-spacing:.3px;padding:3px 8px;text-transform:uppercase}.status-badge-v2.active{background:var(--green-light);color:var(--green)}.status-badge-v2.lead{background:var(--gold-pale);color:var(--gold)}.status-badge-v2.inactive{background:var(--cream);color:var(--text-muted)}.health-cell{white-space:nowrap}.health-cell.center{text-align:center}.health-score-badge{align-items:center;background:#f8fafc;border-radius:8px;display:inline-flex;gap:7px;padding:3px 8px}.health-bar{background:#e2e8f0;border-radius:3px;flex-shrink:0;height:6px;overflow:hidden;width:36px}.health-fill{border-radius:3px;height:100%;transition:width .3s ease}.health-number{font-size:.75rem;font-weight:700;min-width:20px;text-align:right}.health-score-badge.excellent{background:#f0fdf4}.health-score-badge.excellent .health-fill{background:#16a34a}.health-score-badge.excellent .health-number{color:#16a34a}.health-score-badge.good{background:#eff6ff}.health-score-badge.good .health-fill{background:#3b82f6}.health-score-badge.good .health-number{color:#3b82f6}.health-score-badge.fair{background:#fffbeb}.health-score-badge.fair .health-fill{background:#f59e0b}.health-score-badge.fair .health-number{color:#d97706}.health-score-badge.poor{background:#fef2f2}.health-score-badge.poor .health-fill{background:#dc2626}.health-score-badge.poor .health-number{color:#dc2626}.created-cell{white-space:nowrap}.created-date{color:var(--text-muted);font-size:.75rem}.no-date{color:var(--text-light);font-size:.75rem}.actions-cell{position:relative;text-align:right}.actions-dropdown-container{display:inline-block;position:relative}.actions-trigger{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all var(--transition-fast);width:32px}.actions-trigger:hover{background:var(--cream);color:var(--navy)}.actions-dropdown{background:#fff;border:1px solid var(--cream-dark);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);margin-top:4px;min-width:160px;overflow:hidden;position:absolute;right:0;top:100%;z-index:100}.actions-dropdown a,.actions-dropdown button{align-items:center;background:none;border:none;color:var(--text-dark);cursor:pointer;display:flex;font-size:.8rem;gap:10px;padding:10px 14px;text-decoration:none;transition:background .15s ease;width:100%}.actions-dropdown a:hover,.actions-dropdown button:hover{background:var(--sage-pale)}.actions-dropdown svg{color:var(--text-muted);flex-shrink:0}.empty-row td{padding:0!important}.empty-state-v2{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;justify-content:center;padding:80px 20px;text-align:center}.empty-state-v2 svg{margin-bottom:16px;opacity:.4}.empty-state-v2 h3{color:var(--navy);font-family:var(--font-heading);font-size:1.25rem;margin-bottom:8px}.empty-state-v2 p{margin-bottom:20px}@media (max-width:1400px){.clients-table td,.clients-table th{padding:12px 10px}.address-cell{max-width:180px}}@media (max-width:1200px){.clients-table td:nth-child(6),.clients-table th:nth-child(6){display:none}.address-cell{max-width:150px}}@media (max-width:1024px){.page-header-v2{align-items:stretch;flex-direction:column}.header-actions{justify-content:flex-end}.filters-panel{flex-wrap:wrap}.filter-group{flex:1 1;min-width:120px}.clients-table td:nth-child(3),.clients-table td:nth-child(7),.clients-table td:nth-child(9),.clients-table th:nth-child(3),.clients-table th:nth-child(7),.clients-table th:nth-child(9){display:none}}@media (max-width:768px){.clients-table-container{-webkit-overflow-scrolling:touch;overflow-x:auto}.clients-table{min-width:600px}.search-bar-v2{align-items:stretch;flex-direction:column}.search-results-count{text-align:center}.quick-actions{gap:2px}.action-btn{height:30px;width:30px}}@media (max-width:480px){.header-stats{display:none}.header-actions{flex-direction:column}.header-actions .btn{justify-content:center;width:100%}}.merge-mode-banner{background:linear-gradient(135deg,var(--sage) 0,var(--sage-dark) 100%);border-radius:var(--radius-lg) var(--radius-lg) 0 0;color:#fff;justify-content:space-between;margin:-20px -20px 20px;padding:12px 24px}.merge-info,.merge-mode-banner{align-items:center;display:flex}.merge-info{font-weight:500;gap:12px}.merge-actions{display:flex;gap:8px}.duplicates-warning-banner{align-items:center;background:#fff8e6;border:1px solid var(--gold);border-radius:var(--radius-md);display:flex;justify-content:space-between;margin-bottom:20px;padding:12px 24px}.duplicates-warning-banner .warning-content{align-items:center;color:var(--navy);display:flex;gap:12px}.duplicates-warning-banner .warning-content svg{color:var(--gold)}.checkbox-col{padding:0 8px!important;width:40px}.checkbox-cell{padding:0 8px!important;text-align:center}.checkbox-cell input[type=checkbox]{accent-color:var(--sage);cursor:pointer;height:18px;width:18px}.client-row.selected-for-merge{background:var(--sage-light)!important;border-left:4px solid var(--sage)}.merge-modal-content{padding:8px}.merge-warning{align-items:flex-start;background:#fef3cd;border:1px solid #ffc107;border-radius:var(--radius-md);display:flex;gap:12px;margin-bottom:24px;padding:16px}.merge-warning svg{color:#856404;flex-shrink:0;margin-top:2px}.merge-warning p{color:#856404;font-size:.9rem;margin:0}.merge-selection h4{color:var(--navy);font-family:var(--font-heading);font-size:1rem;margin-bottom:12px}.merge-client-options{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.merge-client-option{align-items:center;border:2px solid var(--gray-200);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:12px;padding:16px;transition:all var(--transition-fast)}.merge-client-option.primary,.merge-client-option:hover{background:var(--sage-light);border-color:var(--sage)}.option-radio{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.option-radio .radio-circle{border:2px solid var(--gray-400);border-radius:50%;height:18px;width:18px}.option-radio .check-icon{color:var(--sage)}.option-info strong{color:var(--navy);display:block;font-size:1rem;margin-bottom:4px}.option-details{color:var(--gray-600);display:flex;flex-wrap:wrap;font-size:.8rem;gap:8px}.option-details span{background:var(--gray-100);border-radius:var(--radius-sm);padding:2px 8px}.primary-badge{background:var(--sage);color:#fff}.merge-summary{background:var(--gray-50);border-radius:var(--radius-md);margin-bottom:20px;padding:16px}.merge-summary p{color:var(--navy);font-size:.9rem;margin:0 0 8px}.merge-summary ul{color:var(--gray-600);font-size:.85rem;margin:0;padding-left:20px}.merge-summary li{margin-bottom:4px}.merge-modal-actions{border-top:1px solid var(--gray-200);display:flex;gap:12px;justify-content:flex-end;padding-top:16px}.detail-page{display:flex;flex-direction:column;gap:24px}.detail-header{flex-direction:column;gap:16px}.back-link{align-items:center;color:var(--text-muted);display:inline-flex;font-size:.9rem;gap:8px;transition:all var(--transition-fast)}.back-link:hover{color:var(--sage)}.detail-header-content{align-items:flex-start;display:flex;gap:24px;justify-content:space-between}.detail-title-section h1{color:var(--navy);font-family:var(--font-heading);font-size:2rem;margin-bottom:8px}.detail-badges{display:flex;gap:8px}.status-badge{padding:4px 12px}.status-badge.inactive{background:var(--cream-dark);color:var(--text-muted)}.type-badge{background:var(--sage-pale);border-radius:var(--radius-full);color:var(--sage);padding:4px 12px}.detail-grid{grid-template-columns:repeat(2,1fr)}.detail-card.full-width{grid-column:1/-1}.detail-card h3{font-family:var(--font-heading);font-size:1.1rem}.info-list{display:flex;flex-direction:column;gap:16px}.info-item{align-items:flex-start;color:var(--sage)}.info-item>div{display:flex;flex-direction:column;gap:2px}.info-label{font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.info-value{font-size:.95rem}.stats-row{gap:20px}.stat-box{background:var(--cream);border-radius:var(--radius-md);flex:1 1;padding:16px;text-align:center}.stat-box .stat-value{color:var(--navy);display:block;font-size:1.5rem;font-weight:700}.stat-box .stat-label{color:var(--text-muted);font-size:.75rem}.properties-list{display:flex;flex-direction:column;gap:12px}.property-item{align-items:center;border:1px solid var(--cream-dark);border-radius:var(--radius-md);display:flex;gap:16px;padding:16px;transition:all var(--transition-fast)}.property-item:hover{background:var(--sage-pale);border-color:var(--sage)}.property-icon{color:var(--sage);height:44px;width:44px}.property-address{color:var(--navy);font-weight:500;margin-bottom:4px}.property-details{color:var(--text-muted);display:flex;font-size:.8rem;gap:12px}.primary-badge{background:var(--gold-pale);border-radius:var(--radius-full);color:var(--gold);font-size:.65rem;font-weight:500}.notes-text{color:var(--text-dark);font-size:.95rem;line-height:1.7}.card-header-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.card-header-row h3{align-items:center;display:flex;gap:8px;margin:0}.btn-text{text-decoration:none}.btn-text.active{background:var(--sage-pale);border-radius:var(--radius-sm);padding:4px 10px}.estimates-list{gap:10px}.estimate-item{align-items:center;background:var(--cream);border-radius:var(--radius-md);cursor:pointer;display:flex;justify-content:space-between;padding:14px 16px;transition:all .2s ease}.estimate-item:hover{background:var(--sage-pale)}.estimate-main{align-items:center;display:flex;flex:1 1;gap:20px}.estimate-info{display:flex;flex-direction:column}.estimate-address{color:var(--navy);font-size:.9rem;font-weight:500}.estimate-date{color:var(--text-muted);font-size:.75rem}.estimate-price{color:var(--sage);font-size:1rem;font-weight:700}.estimate-actions{align-items:center;display:flex;gap:10px}.status-pill{border-radius:var(--radius-full);font-weight:500;text-transform:capitalize}.btn-icon-sm:hover{background:#0000001a;color:var(--navy)}.chevron,.empty-message{color:var(--text-muted)}.empty-message{padding:40px;text-align:center}.not-found{padding:60px}.not-found h2{color:var(--text-muted)}@media (max-width:768px){.detail-grid{grid-template-columns:1fr}.stats-row{flex-wrap:wrap}.stat-box{min-width:calc(50% - 10px)}}.health-score-banner{align-items:center;background:var(--white);border-left:4px solid;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;gap:24px;padding:24px}.health-score-circle{align-items:center;border-radius:50%;display:flex;flex-shrink:0;height:72px;justify-content:center;width:72px}.score-value{color:#fff;font-size:1.75rem;font-weight:700}.health-score-info{flex:1 1}.health-score-info h3{color:var(--navy);font-size:1.1rem;margin:0 0 4px}.health-score-info p{color:var(--text-muted);font-size:.85rem;margin:0}.health-quick-stats{display:flex;gap:32px}.quick-stat{text-align:center}.quick-stat .stat-value{color:var(--navy);display:block;font-size:1.5rem;font-weight:700}.quick-stat .stat-label{color:var(--text-muted);font-size:.75rem}.detail-tabs{background:var(--cream);border-radius:var(--radius-md);display:flex;gap:4px;padding:4px;width:-webkit-fit-content;width:fit-content}.detail-tabs .tab{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:.9rem;font-weight:500;padding:10px 20px;transition:all .2s ease}.detail-tabs .tab:hover{color:var(--navy)}.detail-tabs .tab.active{background:var(--white);box-shadow:var(--shadow-sm);color:var(--sage)}.financial-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}.fin-stat{background:var(--cream);border-radius:var(--radius-md);padding:16px}.fin-stat.highlight{background:var(--sage-pale)}.fin-label{display:block;font-size:.75rem;margin-bottom:4px}.fin-value{font-size:1.25rem;font-weight:700}.fin-value.labor{color:#dc2626}.fin-value.positive{color:#16a34a}.fin-value.negative{color:#dc2626}.fin-value.warning{color:#f59e0b}.payment-speed{align-items:center;border-top:1px dashed var(--cream-dark);color:var(--text-muted);display:flex;font-size:.85rem;gap:8px;margin-top:16px;padding-top:16px}.stats-grid{grid-gap:12px;gap:12px}.stat-item{background:var(--cream);border-radius:var(--radius-md);padding:12px;text-align:center}.stat-number{color:var(--navy);display:block;font-size:1.5rem}.stat-number.green{color:#16a34a}.stat-number.blue{color:#3b82f6}.stat-number.red{color:#dc2626}.stat-desc{color:var(--text-muted);font-size:.7rem}.time-comparison{border-top:1px dashed var(--cream-dark);color:var(--text-muted);font-size:.85rem;margin-top:16px;padding-top:16px}.doc-stats{display:flex;gap:24px}.doc-stat{align-items:center;background:var(--cream);border-radius:var(--radius-md);display:flex;flex:1 1;flex-direction:column;gap:8px;padding:20px}.doc-value{color:var(--navy);font-size:1.5rem;font-weight:700}.doc-label{color:var(--text-muted);font-size:.75rem}.invoices-list-container,.jobs-list-container{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.invoices-table,.jobs-table{width:100%}.table-header{font-size:.75rem;grid-template-columns:120px 100px 1fr 90px 100px 80px 70px 100px}.invoices-table .table-header{grid-template-columns:120px 120px 100px 80px 100px 100px}.table-row{cursor:pointer;grid-template-columns:120px 100px 1fr 90px 100px 80px 70px 100px;padding:16px 20px;transition:background .2s ease}.invoices-table .table-row{grid-template-columns:120px 120px 100px 80px 100px 100px}.job-date{display:flex;flex-direction:column}.job-date small{color:var(--text-muted);font-size:.75rem}.job-service{font-size:.85rem;text-transform:capitalize}.job-team{color:var(--text-muted);font-size:.85rem}.job-revenue{color:var(--sage);font-weight:600}.job-labor{display:flex;flex-direction:column;font-size:.9rem}.job-labor small{color:var(--text-muted);font-size:.7rem}.job-labor.over{color:#dc2626}.job-profit{color:#16a34a;font-weight:600}.job-profit.negative{color:#dc2626}.photo-count{align-items:center;color:var(--text-muted);display:flex;gap:4px}.invoice-number{color:var(--navy);font-weight:600}.invoice-amount{color:var(--sage);font-weight:600}.status-pill.draft{background:#f3f4f6;color:#6b7280}.status-pill.sent{background:#fef3c7;color:#d97706}.status-pill.paid{background:#d1fae5;color:#059669}.status-pill.overdue{background:#fee2e2;color:#dc2626}.estimates-container{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.estimates-header{display:flex;justify-content:flex-end;margin-bottom:16px}@media (max-width:1024px){.health-score-banner{flex-wrap:wrap}.health-quick-stats{border-top:1px solid var(--cream-dark);justify-content:space-around;margin-top:16px;padding-top:16px;width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)}.table-header,.table-row{grid-template-columns:100px 80px 1fr 80px 90px 70px}.table-header span:nth-child(7),.table-header span:nth-child(8),.table-row span:nth-child(7),.table-row span:nth-child(8){display:none}}@media (max-width:768px){.financial-grid{grid-template-columns:1fr}.detail-tabs{overflow-x:auto;width:100%}.detail-tabs .tab{white-space:nowrap}}.communications-container{margin-top:16px}.communications-list{display:flex;flex-direction:column;gap:12px}.comm-item{background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;gap:16px;padding:16px;transition:all var(--transition-fast)}.comm-item:hover{border-color:var(--sage-light);box-shadow:0 2px 8px #0000000a}.comm-item.failed{border-left:3px solid var(--danger)}.comm-item.sent{border-left:3px solid var(--success)}.comm-icon{align-items:center;background:var(--sage-light);border-radius:var(--radius-full);color:var(--sage);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.comm-item.failed .comm-icon{background:#ef44441a;color:var(--danger)}.comm-content{flex:1 1;min-width:0}.comm-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:6px}.comm-subject{color:var(--navy);font-size:.95rem;font-weight:600}.comm-status{border-radius:var(--radius-full);font-size:.75rem;font-weight:500;padding:2px 8px}.comm-status.sent{background:#22c55e1a;color:var(--success)}.comm-status.failed{background:#ef44441a;color:var(--danger)}.comm-meta{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.8rem;gap:8px}.comm-meta span{align-items:center;display:flex;gap:4px}.comm-type{background:var(--background);border-radius:var(--radius-sm);font-weight:500;padding:2px 8px}.comm-error{align-items:center;background:#ef44440d;border-radius:var(--radius-sm);color:var(--danger);gap:6px;padding:8px 12px}.comm-details,.comm-error{display:flex;font-size:.8rem;margin-top:8px}.comm-details{color:var(--text-muted);gap:12px}.comm-details span{background:var(--background);border-radius:var(--radius-sm);padding:2px 8px}.welcome-modal{max-width:480px}.welcome-preview{background:#f8fafc;border-radius:12px;margin-bottom:20px;padding:16px}.welcome-preview .preview-label{color:#64748b;font-size:.85rem;margin:0 0 12px}.welcome-preview .preview-recipient{align-items:center;display:flex;gap:12px}.welcome-preview .preview-recipient svg{color:var(--sage)}.welcome-preview .preview-recipient div{display:flex;flex-direction:column}.welcome-preview .preview-recipient strong{color:var(--navy)}.welcome-preview .preview-recipient span{color:#64748b;font-size:.85rem}.welcome-contents{margin-bottom:20px}.welcome-contents h4{color:var(--navy);font-size:.9rem;margin:0 0 12px}.welcome-contents ul{list-style:none;margin:0;padding:0}.welcome-contents li{align-items:center;color:#4a5568;display:flex;font-size:.9rem;gap:8px;padding:8px 0}.welcome-contents li svg{color:#16a34a}.welcome-warning{background:#fef9c3;color:#92400e}.welcome-error,.welcome-warning{align-items:center;border-radius:8px;display:flex;font-size:.85rem;gap:10px;padding:12px 16px}.welcome-error{background:#fef2f2;color:#dc2626}.modal-actions .spin{animation:spin 1s linear infinite}.property-photo-section{flex-shrink:0}.property-photo{border-radius:8px;height:60px;overflow:hidden;position:relative;width:80px}.property-photo img{height:100%;object-fit:cover;width:100%}.photo-change-btn{align-items:center;background:#0009;border:none;border-radius:50%;bottom:4px;color:#fff;cursor:pointer;display:flex;height:26px;justify-content:center;opacity:0;position:absolute;right:4px;transition:opacity .15s;width:26px}.property-photo:hover .photo-change-btn{opacity:1}.property-photo-upload{align-items:center;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:8px;color:#94a3b8;cursor:pointer;display:flex;flex-direction:column;gap:2px;height:60px;justify-content:center;padding:0;transition:all .15s;width:80px}.property-photo-upload:hover:not(:disabled){background:#f0f9f4;border-color:#2c5f4e;border-color:var(--sage,#2c5f4e);color:#2c5f4e;color:var(--sage,#2c5f4e)}.property-photo-upload:disabled{cursor:not-allowed;opacity:.6}.property-photo-upload span{font-size:.6rem;font-weight:600;text-transform:uppercase}.photo-change-btn .spin,.property-photo-upload .spin{animation:spin 1s linear infinite}.section-header-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.section-header-row h3{margin-bottom:0}.merge-properties-btn{align-items:center;background:#f0f4ff;border:1px solid #c7d2fe;border-radius:8px;color:#4f46e5;cursor:pointer;display:flex;font-size:.8rem;font-weight:600;gap:6px;padding:6px 12px;transition:all .2s}.merge-properties-btn:hover{background:#e0e7ff;border-color:#a5b4fc}.property-item{position:relative}.property-item.editing{background:#fafbff;border:1.5px solid #c7d2fe;border-radius:12px;padding:12px}.property-edit-form{display:flex;flex:1 1;flex-direction:column;gap:10px}.property-edit-form .edit-field{display:flex;flex-direction:column;gap:4px}.property-edit-form .edit-field label{color:#64748b;font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.property-edit-form input,.property-edit-form textarea{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#1e293b;font-size:.9rem;padding:8px 12px;transition:border-color .2s}.property-edit-form input:focus,.property-edit-form textarea:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;outline:none}.property-edit-form textarea{min-height:50px;resize:vertical}.edit-row-3{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 80px 100px}.edit-actions{display:flex;gap:8px;margin-top:4px}.edit-actions .save-btn{align-items:center;background:#2c5f4e;background:var(--sage,#2c5f4e);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:600;gap:6px;padding:7px 16px;transition:background .2s}.edit-actions .save-btn:hover{background:#234d3e}.edit-actions .cancel-btn{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;font-size:.85rem;font-weight:500;padding:7px 16px;transition:background .2s}.edit-actions .cancel-btn:hover{background:#e2e8f0}.property-actions{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:6px;margin-left:auto}.property-edit-btn{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.property-edit-btn:hover{background:#e2e8f0;color:#334155}.property-access-info{color:#64748b;font-size:.8rem;margin-top:4px}.client-job-kpis{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:16px}.job-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;text-align:center}.job-kpi-value{color:#1e293b;display:block;font-size:1.3rem;font-weight:700}.job-kpi-value.over{color:#dc2626}.job-kpi-label{color:#64748b;font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.client-job-log{display:flex;flex-direction:column;gap:8px}.jl-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;transition:box-shadow .2s}.jl-card:hover{box-shadow:0 2px 8px #0000000f}.jl-card.expanded{border-color:#c7d2fe;box-shadow:0 4px 12px #00000014}.jl-card.cancelled{opacity:.6}.jl-header{align-items:center;cursor:pointer;display:flex;gap:12px;padding:14px 16px}.jl-left{flex:1 1;min-width:0}.jl-date-status{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.jl-date{color:#1e293b;font-size:.9rem;font-weight:600}.jl-recurring-badge{font-size:.75rem}.jl-meta{color:#64748b;display:flex;flex-wrap:wrap;font-size:.8rem;gap:12px}.jl-meta span{align-items:center;display:flex;gap:4px}.jl-helpers{color:#94a3b8;font-style:italic}.jl-right{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:4px}.jl-price{color:#1e293b;font-size:1rem;font-weight:700}.jl-duration,.jl-photos-badge{align-items:center;color:#64748b;display:flex;font-size:.75rem;gap:4px}.jl-chevron{color:#94a3b8;flex-shrink:0;transition:transform .2s}.jl-chevron.open{transform:rotate(180deg)}.jl-detail{background:#fafbff;border-top:1px solid #f1f5f9;padding:16px}.jl-timeline{margin-bottom:16px}.jl-timeline h4{color:#64748b;font-size:.8rem;letter-spacing:.03em;margin:0 0 10px;text-transform:uppercase}.jl-timeline-steps{display:flex;flex-wrap:wrap;gap:24px}.jl-step{gap:8px}.jl-step,.jl-step-icon{align-items:center;display:flex}.jl-step-icon{border-radius:50%;flex-shrink:0;height:28px;justify-content:center;width:28px}.jl-step-icon.en-route{background:#dbeafe;color:#2563eb}.jl-step-icon.started{background:#fef3c7;color:#d97706}.jl-step-icon.done{background:#dcfce7;color:#16a34a}.jl-step-label{color:#475569;font-size:.8rem;font-weight:600}.jl-step-time{color:#64748b;font-size:.8rem}.jl-financials-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);margin-bottom:16px}.jl-fin-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px}.jl-fin-label{color:#94a3b8;display:block;font-size:.7rem;font-weight:600;letter-spacing:.03em;margin-bottom:2px;text-transform:uppercase}.jl-fin-value{color:#1e293b;font-size:.9rem;font-weight:600}.jl-fin-value.over{color:#dc2626}.jl-fin-value.positive{color:#16a34a}.jl-fin-value.negative{color:#dc2626}.jl-fin-value small{color:#94a3b8;font-weight:500}.jl-fin-value.over small{color:#dc2626}.fin-value small.over{color:#dc2626;font-weight:600}.fin-value small.good{color:#16a34a;font-weight:600}.jl-photos-section{margin-bottom:12px}.jl-photos-section h4{align-items:center;color:#475569;display:flex;font-size:.85rem;gap:6px;margin:0 0 8px}.jl-photo-grid{display:flex;flex-wrap:wrap;gap:8px}.jl-photo-thumb{border:1px solid #e2e8f0;border-radius:8px;height:72px;overflow:hidden;position:relative;width:72px}.jl-photo-thumb img{height:100%;object-fit:cover;width:100%}.jl-photo-type{background:#0009;border-radius:4px;bottom:2px;color:#fff;font-size:.6rem;left:2px;padding:1px 4px;position:absolute;text-transform:capitalize}.jl-photo-more{align-items:center;background:#f1f5f9;border-radius:8px;color:#64748b;display:flex;font-size:.8rem;font-weight:600;height:72px;justify-content:center;width:72px}.jl-notes{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#475569;font-size:.85rem;line-height:1.4;margin-bottom:12px;padding:10px 12px}.jl-notes strong{color:#334155}.payment-status-badge{align-items:center;border-radius:6px;display:inline-flex;font-size:.65rem;font-weight:600;letter-spacing:.3px;padding:2px 8px;text-transform:uppercase}.payment-status-badge.large{font-size:.75rem;padding:4px 12px}.payment-status-badge.draft,.payment-status-badge.unbilled{background:#f3f4f6;color:#6b7280}.payment-status-badge.billed{background:#eff6ff;color:#3b82f6}.payment-status-badge.pastdue{background:#fef2f2;color:#dc2626}.payment-status-badge.paid{background:#f0fdf4;color:#16a34a}.jl-billing-section{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:12px;padding:12px}.jl-billing-section h4{align-items:center;color:#475569;display:flex;font-size:.85rem;gap:6px;margin:0 0 10px}.jl-billing-content{gap:12px}.jl-billing-content,.jl-invoice-info{align-items:center;display:flex;flex-wrap:wrap}.jl-invoice-info{gap:10px}.jl-invoice-number{color:#1e293b;font-size:.85rem;font-weight:600}.jl-invoice-paid,.jl-invoice-sent{color:#64748b;font-size:.8rem}.jl-invoice-paid{color:#16a34a}.jl-view-invoice{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:.8rem;font-weight:600;margin-left:auto;padding:0}.jl-view-invoice:hover{text-decoration:underline}.jl-no-invoice{color:#94a3b8;font-size:.85rem;font-style:italic}.jl-view-dispatch{background:none;border:none;color:#2c5f4e;color:var(--sage,#2c5f4e);cursor:pointer;font-size:.85rem;font-weight:600;padding:0;transition:color .2s}.jl-view-dispatch:hover{color:#1a3d31;text-decoration:underline}@media (max-width:640px){.client-job-kpis,.jl-financials-grid{grid-template-columns:repeat(2,1fr)}.jl-header{align-items:flex-start;flex-direction:column}.jl-right{align-items:center;flex-direction:row;gap:12px}.jl-timeline-steps{flex-direction:column;gap:10px}}.series-management-section{background:#fefce8;border:1px solid #fde68a;border-radius:12px;margin-bottom:20px;padding:16px}.series-section-title{color:#92400e;font-size:.95rem;font-weight:600;margin:0 0 12px}.series-cards{display:flex;flex-direction:column;gap:10px}.series-card{align-items:center;background:#fff;border:1px solid #fde68a;border-radius:10px;display:flex;gap:12px;justify-content:space-between;padding:12px 16px}.series-info{flex:1 1;min-width:0}.series-name{color:#1e293b;font-size:.9rem;font-weight:600;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.series-stats{display:flex;flex-wrap:wrap;gap:8px}.series-stat{border-radius:6px;font-size:.75rem;font-weight:500;padding:2px 8px}.series-stat.scheduled{background:#eff6ff;color:#2563eb}.series-stat.completed{background:#f0fdf4;color:#16a34a}.series-stat.cancelled{background:#fef2f2;color:#dc2626}.series-stat.total{background:#f1f5f9;color:#475569}.delete-series-btn{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;cursor:pointer;display:flex;flex-shrink:0;font-size:.8rem;font-weight:600;gap:6px;padding:7px 14px;transition:all .2s;white-space:nowrap}.delete-series-btn:hover{background:#fee2e2;border-color:#f87171}.series-indicator{font-size:.75rem;margin-left:4px}.cd-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000040;max-width:520px;overflow:hidden;width:90%}.cd-modal-header{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:16px 20px}.cd-modal-header h3{align-items:center;color:#1e293b;display:flex;font-size:1.1rem;gap:8px;margin:0}.cd-modal-header .close-btn{background:#f1f5f9;border:none;border-radius:8px;color:#64748b;cursor:pointer;display:flex;padding:6px;transition:all .2s}.cd-modal-header .close-btn:hover{background:#e2e8f0;color:#1e293b}.cd-modal-body{padding:20px}.cd-modal-actions{border-top:1px solid #f1f5f9;display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:16px}.cd-modal-actions .cancel-btn{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;color:#475569;cursor:pointer;font-size:.9rem;font-weight:500;padding:9px 20px;transition:all .2s}.cd-modal-actions .cancel-btn:hover{background:#e2e8f0}.series-delete-warning{align-items:flex-start;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;display:flex;gap:12px;margin-bottom:16px;padding:14px 16px}.series-delete-warning p{color:#991b1b;font-size:.9rem;line-height:1.5;margin:0}.series-delete-warning svg{flex-shrink:0;margin-top:2px}.series-delete-options{display:flex;flex-direction:column;gap:10px}.radio-option{align-items:flex-start;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:all .2s}.radio-option:hover{background:#f1f5f9}.radio-option.selected{background:#fef2f2;border-color:#f87171}.radio-option input[type=radio]{accent-color:#dc2626;flex-shrink:0;margin-top:3px}.radio-option div{display:flex;flex-direction:column;gap:2px}.radio-option strong{color:#1e293b;font-size:.9rem}.radio-option span{color:#64748b;font-size:.8rem;line-height:1.4}.delete-confirm-btn{align-items:center;background:#dc2626;border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:6px;padding:9px 20px;transition:all .2s}.delete-confirm-btn:hover:not(:disabled){background:#b91c1c}.delete-confirm-btn:disabled{cursor:not-allowed;opacity:.6}.merge-description{color:#475569;font-size:.9rem;line-height:1.5;margin:0 0 16px}.merge-select-group{margin-bottom:8px}.merge-select-group label{color:#64748b;display:block;font-size:.8rem;font-weight:600;letter-spacing:.03em;margin-bottom:6px;text-transform:uppercase}.merge-select-group select{background:#fff;border:1px solid #d1d5db;border-radius:10px;color:#1e293b;cursor:pointer;font-size:.9rem;padding:10px 12px;transition:border-color .2s;width:100%}.merge-select-group select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;outline:none}.merge-arrow{color:#94a3b8;font-size:.85rem;font-weight:500;padding:4px 0;text-align:center}.merge-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:16px;padding:14px 16px}.merge-preview h4{color:#475569;font-size:.85rem;letter-spacing:.03em;margin:0 0 10px;text-transform:uppercase}.merge-preview-row{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;font-size:.85rem;justify-content:space-between;padding:6px 0}.merge-preview-row:last-child{border-bottom:none}.merge-label{color:#64748b;font-weight:500}.merge-preview-row .strikethrough{color:#dc2626;opacity:.7;text-decoration:line-through}.merge-confirm-btn{align-items:center;background:#4f46e5;border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:6px;padding:9px 20px;transition:all .2s}.merge-confirm-btn:hover:not(:disabled){background:#4338ca}.merge-confirm-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.series-card{align-items:flex-start;flex-direction:column}.delete-series-btn{justify-content:center;width:100%}.edit-row-3{grid-template-columns:1fr 1fr 1fr}.section-header-row{gap:8px}.merge-preview-row,.section-header-row{align-items:flex-start;flex-direction:column}.merge-preview-row{gap:2px}}.btn-view-lead{align-items:center;background:#f0fdf4;border:1px solid var(--sage);border-radius:6px;color:var(--sage);cursor:pointer;display:inline-flex;height:32px;justify-content:center;transition:all .15s ease;width:32px}.btn-view-lead:hover{background:var(--sage);color:#fff}.source-badge{background:#eff6ff;border-radius:4px;color:#3b82f6;display:inline-block;font-size:.65rem;margin-left:8px;padding:2px 8px;text-transform:uppercase}.time-off-manager{min-height:500px}.time-off-manager .stats-row{display:flex;gap:12px;margin-bottom:20px}.time-off-manager .stat-card{background:var(--gray-50);border:2px solid #0000;border-radius:var(--radius-md);cursor:pointer;flex:1 1;padding:16px;text-align:center;transition:all .15s}.time-off-manager .stat-card:hover{background:var(--gray-100)}.time-off-manager .stat-card.active{background:var(--sage-light);border-color:var(--sage)}.time-off-manager .stat-value{color:var(--navy);display:block;font-size:1.5rem;font-weight:700}.time-off-manager .stat-label{color:var(--gray-500);font-size:.8rem}.manager-layout{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 300px}.requests-panel h3{align-items:center;color:var(--gray-600);display:flex;font-size:.95rem;gap:8px;margin-bottom:12px}.requests-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.request-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);cursor:pointer;padding:16px;transition:all .15s}.request-card:hover{border-color:var(--sage);box-shadow:var(--shadow-sm)}.request-card.selected{background:var(--sage-light);border-color:var(--sage)}.request-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.employee-info{gap:10px}.employee-info .avatar{align-items:center;background:var(--sage-light);border-radius:50%;color:var(--sage);display:flex;font-size:.85rem;font-weight:600;height:36px;justify-content:center;width:36px}.employee-info strong{color:var(--navy);display:block;font-size:.95rem}.type-badge{border-radius:10px;display:inline-block;font-weight:500;padding:2px 8px}.type-badge.pto{background:var(--blue-light);color:var(--blue)}.type-badge.sick{background:var(--red-light);color:var(--red)}.type-badge.personal{background:var(--purple-light);color:var(--purple)}.type-badge.unpaid{background:var(--gray-100);color:var(--gray-600)}.status-badge{border-radius:var(--radius-sm);text-transform:capitalize}.status-pending{background:var(--gold-light);color:var(--gold)}.status-approved{background:var(--green-light);color:var(--green)}.status-denied{background:var(--red-light);color:var(--red)}.request-dates{color:var(--gray-600);display:flex;font-size:.85rem;gap:6px}.conflict-badge,.request-dates{align-items:center;margin-bottom:6px}.conflict-badge{background:var(--gold-light);border-radius:var(--radius-sm);color:var(--gold);display:inline-flex;font-size:.75rem;font-weight:500;gap:4px;padding:4px 8px}.request-reason{color:var(--gray-500);font-size:.85rem;font-style:italic}.empty-state{color:var(--gray-400)}.calendar-panel{background:var(--gray-50);border-radius:var(--radius-md);padding:16px}.calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.calendar-header h3{color:var(--navy);font-size:1rem;margin:0}.calendar-header button{align-items:center;background:var(--white);border:none;border-radius:var(--radius-sm);color:var(--gray-600);cursor:pointer;display:flex;height:32px;justify-content:center;width:32px}.calendar-header button:hover{background:var(--sage-light);color:var(--sage)}.calendar-weekdays{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.weekday{color:var(--gray-500);font-size:.7rem;font-weight:600;padding:4px;text-align:center}.calendar-days{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr)}.calendar-day{aspect-ratio:1;background:var(--white);border-radius:var(--radius-sm);font-size:.8rem;padding:4px}.calendar-day.empty{background:#0000}.calendar-day.today{background:var(--sage-light)}.calendar-day.today .day-number{color:var(--sage);font-weight:700}.calendar-day.has-time-off{background:var(--gold-light)}.day-number{color:var(--navy)}.time-off-dots{display:flex;gap:2px;margin-top:2px}.time-off-dot{background:var(--sage);font-size:.6rem;font-weight:600}.more-dot,.time-off-dot{align-items:center;border-radius:50%;color:#fff;display:flex;height:16px;justify-content:center;width:16px}.more-dot{background:var(--gray-400);font-size:.55rem}.action-panel{background:var(--gray-50);border-radius:var(--radius-md);border-top:3px solid var(--sage);margin-top:20px;padding:16px}.action-panel h4{color:var(--navy);font-size:.95rem;margin:0 0 12px}.action-panel .form-group{margin-bottom:12px}.action-panel label{color:var(--gray-600);display:block;font-size:.85rem;margin-bottom:6px}.action-panel textarea{border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;padding:10px;resize:none;width:100%}.btn-success{background:var(--green);border-radius:var(--radius-sm);display:flex;gap:6px;padding:10px 20px}.btn-success:hover{background:var(--green-dark)}.btn-danger:hover{background:var(--red-dark)}@media (max-width:768px){.manager-layout{grid-template-columns:1fr}.calendar-panel{order:-1}}.manager-add-section{margin-bottom:16px}.add-for-employee-btn{align-items:center;display:flex;font-size:13px;gap:6px;padding:8px 14px}.manager-add-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;display:flex;flex-direction:column;gap:12px;margin-top:12px;padding:16px}.manager-add-form .form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.manager-add-form .form-group{display:flex;flex-direction:column;gap:4px}.manager-add-form .form-group label{align-items:center;color:#475569;display:flex;font-size:12px;font-weight:600;gap:4px}.manager-add-form .form-group input,.manager-add-form .form-group select{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:13px;padding:8px 10px}.manager-add-form .form-hint{color:#94a3b8;font-size:11px}.days-count-badge{align-items:center;background:#e0f2fe;border-radius:20px;color:#0369a1;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:4px 10px;width:-webkit-fit-content;width:fit-content}.auto-approve-row{align-items:center;display:flex!important;justify-content:space-between}.checkbox-label{color:#334155;font-size:13px}.checkbox-label input[type=checkbox]{accent-color:#2c5f4e;height:16px;width:16px}.employees-page{display:flex;flex-direction:column;gap:24px}.employees-page .header-actions{display:flex;gap:12px}.employees-page .header-actions .badge{background:var(--gold);border-radius:10px;color:#fff;font-size:.75rem;font-weight:600;margin-left:6px;padding:2px 8px}.employees-list{display:flex;flex-direction:column;gap:12px}.employee-card{background:var(--white);border:1px solid #0000;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);gap:20px;padding:20px;transition:all var(--transition-fast)}.employee-card:hover{border-color:var(--sage);box-shadow:var(--shadow-md)}.employee-avatar{color:var(--white);flex-shrink:0;height:56px;width:56px}.employee-info{min-width:0}.employee-name{align-items:center;display:flex;font-size:1.05rem;font-weight:600;gap:8px;margin-bottom:4px}.lead-star{fill:var(--gold);color:var(--gold)}.employee-status{border-radius:var(--radius-full);font-size:.65rem;font-weight:500;padding:3px 10px;text-transform:uppercase}.employee-status.active{background:var(--green-light);color:var(--green)}.employee-status.inactive{background:var(--cream-dark);color:var(--text-muted)}.employee-role{color:var(--text-muted);font-size:.85rem;margin-bottom:8px}.employee-contact{display:flex;flex-wrap:wrap;gap:16px}.employee-pay{align-items:center;background:var(--sage-pale);border-radius:var(--radius-md);color:var(--sage);display:flex;font-weight:600;gap:4px;padding:8px 16px;white-space:nowrap}.employee-actions{align-items:center;display:flex;gap:12px}@media (max-width:768px){.employee-card{flex-wrap:wrap}.employee-pay{justify-content:center;margin-top:12px;width:100%}.employee-contact{flex-direction:column;gap:6px}}.availability-grid{display:flex;flex-direction:column;gap:8px}.availability-day{align-items:center;background:var(--gray-50);border-radius:var(--radius-md);display:flex;gap:16px;padding:12px 16px;transition:all .15s}.availability-day.unavailable{background:var(--gray-100);opacity:.6}.availability-day .day-toggle{align-items:center;cursor:pointer;display:flex;gap:10px;min-width:130px}.availability-day .day-toggle input[type=checkbox]{accent-color:var(--sage);cursor:pointer;height:18px;width:18px}.availability-day .day-toggle span{color:var(--navy);font-weight:500}.availability-day .time-inputs{align-items:center;display:flex;flex:1 1;gap:8px}.availability-day .time-inputs input[type=time]{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.9rem;padding:8px 12px}.availability-day .time-inputs input[type=time]:disabled{background:var(--gray-100);color:var(--gray-400);cursor:not-allowed}.availability-day .time-inputs span,.form-help-text{color:var(--gray-500)}.form-help-text{font-size:.85rem}.lead-star-large{fill:var(--gold);color:var(--gold);margin-left:8px;vertical-align:middle}.skills-list{display:flex;flex-wrap:wrap;gap:8px}.skill-tag{background:var(--sage-pale);border-radius:var(--radius-full);color:var(--sage);font-size:.85rem;font-weight:500;padding:8px 16px;text-transform:capitalize}.empty-timeoff{color:#94a3b8;font-size:.9rem;padding:24px;text-align:center}.timeoff-history-list{display:flex;flex-direction:column;gap:2px}.timeoff-row{align-items:center;border-radius:8px;display:flex;justify-content:space-between;padding:12px 14px;transition:background .15s}.timeoff-row:hover{background:#f8fafc}.timeoff-row.past{opacity:.55}.timeoff-row-left{align-items:center;display:flex;gap:12px}.timeoff-status-dot{align-items:center;border-radius:50%;display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.timeoff-status-dot.approved{background:#dcfce7;color:#16a34a}.timeoff-status-dot.denied{background:#fee2e2;color:#dc2626}.timeoff-status-dot.pending{background:#fef3c7;color:#f59e0b}.timeoff-row-info{display:flex;flex-direction:column}.timeoff-date-range{color:#1a2634;font-size:.9rem;font-weight:600}.timeoff-meta{color:#94a3b8;font-size:.8rem;margin-top:2px}.timeoff-status-badge{border-radius:20px;font-size:.7rem;font-weight:600;padding:4px 10px;text-transform:uppercase}.timeoff-status-badge.approved{background:#dcfce7;color:#166534}.timeoff-status-badge.denied{background:#fee2e2;color:#dc2626}.timeoff-status-badge.pending{background:#fef3c7;color:#92400e}.timeoff-header{align-items:center;display:flex!important;justify-content:space-between;margin-bottom:12px}.timeoff-header h3{align-items:center;display:flex;gap:8px;margin:0!important}.timeoff-header .btn-sm{align-items:center;border-radius:8px;display:inline-flex!important;flex-shrink:0;font-size:13px;font-weight:600;gap:5px;padding:8px 14px;white-space:nowrap}.manager-timeoff-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding:16px}.mtf-row{display:flex;gap:12px}.mtf-group{display:flex;flex:1 1;flex-direction:column;gap:4px}.mtf-group.mtf-grow{flex:1 1}.mtf-group label{color:#475569;font-size:12px;font-weight:600}.mtf-group input,.mtf-group select{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:13px;padding:8px 10px}.mtf-hint{color:#94a3b8;font-size:11px}.mtf-footer{justify-content:space-between}.mtf-footer,.mtf-left{align-items:center;display:flex}.mtf-left{gap:16px}.mtf-day-count{align-items:center;background:#e0f2fe;border-radius:20px;color:#0369a1;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:4px 10px}.mtf-checkbox{align-items:center;color:#334155;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px}.mtf-checkbox input[type=checkbox]{accent-color:#2c5f4e;height:15px;width:15px}.estimates-page{padding:0}.est-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.est-header-left h1{color:var(--navy);font-family:var(--font-heading);font-size:1.75rem;margin:0}.est-header-sub{color:var(--text-muted);font-size:.85rem;margin-top:2px}.est-header-right{align-items:center;display:flex;gap:10px}.view-toggle{background:#f0ebe4;background:var(--cream-dark,#f0ebe4);border-radius:8px;gap:2px;padding:3px}.view-toggle-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;font-size:.82rem;font-weight:500;gap:5px;padding:6px 14px;transition:all .15s}.view-toggle-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a}.view-toggle-btn.active,.view-toggle-btn:hover:not(.active){color:var(--navy);color:var(--text-primary,var(--navy))}.header-content h1{color:var(--navy);font-family:var(--font-heading);font-size:1.75rem;margin-bottom:4px}.header-subtitle{color:var(--text-muted);font-size:.9rem}.estimate-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.estimate-stats .stat-card{align-items:center;background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;gap:16px;padding:20px;transition:all var(--transition-fast)}.estimate-stats .stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.estimate-stats .stat-icon{align-items:center;border-radius:var(--radius-md);display:flex;height:48px;justify-content:center;width:48px}.estimate-stats .stat-icon.draft{background:var(--cream-dark);color:var(--text-muted)}.estimate-stats .stat-icon.pending-review{background:#fef3c7;color:#d97706}.estimate-stats .stat-icon.sent{background:var(--gold-pale);color:var(--gold)}.estimate-stats .stat-icon.approved{background:var(--green-light);color:var(--green)}.estimate-stats .stat-icon.review{background:var(--orange-light);color:var(--orange)}.estimate-stats .stat-info{display:flex;flex-direction:column}.estimate-stats .stat-value{color:var(--navy);font-size:1.5rem;font-weight:600;line-height:1.2}.estimate-stats .stat-label{color:var(--text-muted);font-size:.8rem}.search-box svg{left:14px}.search-box input{background:var(--white);padding:12px 12px 12px 44px;transition:all var(--transition-fast)}.search-box input:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-pale)}.filter-tabs{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.filter-tab{align-items:center;border-radius:var(--radius-sm);display:flex;font-size:.85rem;gap:6px;padding:8px 16px;transition:all var(--transition-fast)}.filter-tab:hover{background:var(--cream);color:var(--navy)}.filter-tab.active{background:var(--sage);color:var(--white)}.filter-tab .count{background:#0000001a;border-radius:10px;font-size:.75rem;padding:2px 6px}.filter-tab.active .count{background:#fff3}.estimates-list{display:flex;flex-direction:column;gap:12px}.estimate-card{background:var(--white);border:2px solid #0000;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;transition:all var(--transition-fast)}.estimate-card:hover{border-color:var(--sage-pale);box-shadow:var(--shadow-md);transform:translateY(-2px)}.estimate-card.needs-review{border-left:4px solid var(--orange)}.estimate-card-header{align-items:center;border-bottom:1px solid var(--cream);display:flex;justify-content:space-between;padding:16px 20px}.client-info{align-items:center;gap:12px}.client-avatar{border-radius:var(--radius-full);color:var(--white)}.client-details h3{color:var(--navy);font-family:var(--font-body);font-size:1rem;font-weight:600;margin-bottom:2px}.property-address{color:var(--text-muted);font-size:.85rem}.status-badge{border-radius:var(--radius-full);display:flex;font-size:.8rem;padding:6px 12px}.estimate-card-body{padding:16px 20px}.estimate-details{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(4,1fr)}.detail-item{gap:4px}.detail-label{color:var(--text-muted);font-size:.75rem;letter-spacing:.5px}.detail-value{color:var(--navy);font-size:.95rem;font-weight:500}.detail-value.price{color:var(--sage);font-weight:600}.review-banner{background:var(--orange-light);border-radius:var(--radius-sm);color:var(--orange);font-weight:500;gap:8px;margin-top:12px;padding:10px 14px}.estimate-card-footer{align-items:center;background:var(--cream);border-top:1px solid var(--cream-dark);display:flex;justify-content:space-between;padding:12px 20px}.footer-meta{display:flex;gap:16px}.meta-item{color:var(--text-muted);font-size:.8rem}.btn-action{align-items:center;background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-sm);color:var(--navy);display:flex;font-size:.85rem;font-weight:500;gap:6px;padding:8px 14px;transition:all var(--transition-fast)}.btn-action:hover{border-color:var(--sage);color:var(--sage)}.btn-action.primary{background:var(--sage);border-color:var(--sage);color:var(--white)}.btn-action.primary:hover{background:var(--sage-light);border-color:var(--sage-light)}.btn-icon{background:#0000}.btn-icon:hover,.empty-state{background:var(--white)}.empty-state{border-radius:var(--radius-lg)}.empty-state svg{color:var(--cream-dark)}.empty-state h3{font-family:var(--font-body)}@media (max-width:1024px){.estimate-details,.estimate-stats{grid-template-columns:repeat(2,1fr)}.filter-tabs{display:none}}@media (max-width:640px){.page-header{flex-direction:column;gap:16px}.page-header .btn{justify-content:center;width:100%}.estimate-stats{grid-template-columns:1fr 1fr}.filters-bar{align-items:stretch;flex-direction:column}.search-box{max-width:none}.estimate-card-header{align-items:flex-start;flex-direction:column;gap:12px}.estimate-details{grid-template-columns:1fr 1fr}.estimate-card-footer{flex-direction:column;gap:12px}.footer-actions,.footer-meta{justify-content:center;width:100%}}.btn-action.danger{background:#0000;color:var(--red)}.btn-action.danger:hover{background:#ef44441a}.footer-actions{align-items:center;display:flex;gap:8px}.leads-page{max-width:1100px}.leads-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.leads-header h1{color:var(--navy);font-size:1.4rem;font-weight:700;margin:0}.leads-subtitle{color:var(--text-muted);font-size:.78rem;margin-top:2px}.leads-add-btn{align-items:center;background:var(--sage);border-radius:var(--radius-md);color:#fff;display:inline-flex;font-size:.82rem;font-weight:600;gap:6px;padding:10px 18px;text-decoration:none;transition:background .15s}.leads-add-btn:hover{background:#3a7a65}.leads-tabs{border-bottom:2px solid var(--border);gap:0;margin-bottom:0;overflow-x:auto}.leads-tab,.leads-tabs{align-items:center;display:flex}.leads-tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--text-muted);cursor:pointer;font-size:.78rem;font-weight:600;gap:6px;margin-bottom:-2px;padding:10px 16px;transition:all .15s;white-space:nowrap}.leads-tab:hover{color:var(--text)}.leads-tab.active{border-bottom-color:var(--sage);color:var(--sage)}.leads-tab-count{background:var(--cream-dark);border-radius:10px;color:var(--text-muted);font-size:.62rem;font-weight:700;padding:1px 7px}.leads-tab.active .leads-tab-count{background:#e8f0ed;background:var(--sage-pale,#e8f0ed);color:var(--sage)}.leads-tab.has-new .leads-tab-count{background:#fef3c7;color:#d97706}.leads-search{align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--radius-full);display:flex;flex-shrink:0;gap:6px;margin-left:auto;padding:6px 12px}.leads-search svg{color:var(--text-muted);flex-shrink:0}.leads-search input{background:#0000;border:none;font-family:inherit;font-size:.78rem;outline:none;width:140px}.leads-list{background:#fff;border:1px solid var(--border);border-radius:0 0 var(--radius-md) var(--radius-md);border-top:none}.leads-empty{color:var(--text-muted);font-size:.88rem;padding:48px 20px;text-align:center}.leads-row{align-items:center;border-bottom:1px solid #f3f4f6;cursor:pointer;display:flex;gap:12px;padding:14px 18px;transition:background .1s}.leads-row:last-child{border-bottom:none}.leads-row:hover{background:var(--cream)}.leads-row.new-lead{background:#fffbf5;border-left:3px solid #d97706}.leads-row.new-lead:hover{background:#fff5e6}.leads-row-avatar{align-items:center;border-radius:8px;color:#fff;display:flex;flex-shrink:0;font-size:.72rem;font-weight:700;height:38px;justify-content:center;letter-spacing:.5px;width:38px}.leads-row-info{flex:1 1;min-width:0}.leads-row-name{align-items:center;color:var(--navy);display:flex;font-size:.85rem;font-weight:600;gap:6px}.leads-web-tag{background:#eff6ff;color:#2563eb}.leads-new-tag,.leads-web-tag{border-radius:3px;display:inline-flex;font-size:.58rem;font-weight:700;padding:1px 6px}.leads-new-tag{background:#fef3c7;color:#d97706}.leads-row-detail{color:var(--text-muted);font-size:.72rem;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leads-row-meta{flex-shrink:0;margin-right:8px;text-align:right}.leads-row-amount{color:var(--navy);font-size:.85rem;font-weight:700}.leads-row-date{color:var(--text-muted);font-size:.62rem}.leads-row-status{border-radius:6px;flex-shrink:0;font-size:.6rem;font-weight:700;letter-spacing:.5px;padding:3px 10px;text-transform:uppercase;white-space:nowrap}.leads-row-arrow{color:var(--border);flex-shrink:0}.lm-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.lead-modal{animation:lmSlideUp .2s ease-out;background:#fff;border-radius:14px;box-shadow:0 25px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:540px;overflow:hidden;width:100%}@keyframes lmSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.lm-header{background:var(--cream);border-bottom:1px solid var(--border);gap:12px;padding:16px 20px}.lm-avatar,.lm-header{align-items:center;display:flex;flex-shrink:0}.lm-avatar{border-radius:10px;color:#fff;font-size:.85rem;font-weight:700;height:44px;justify-content:center;letter-spacing:.5px;width:44px}.lm-header-info{flex:1 1;min-width:0}.lm-header-info h3{color:var(--navy);font-size:1.05rem;font-weight:700;margin:0 0 2px}.lm-header-sub{color:var(--text-muted);font-size:.75rem}.lm-close{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;height:30px;justify-content:center;width:30px}.lm-close:hover{background:#0000000f;color:var(--navy)}.lm-status-flow{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:0;overflow-x:auto;padding:10px 20px}.flow-step{align-items:center;background:none;border:none;border-radius:20px;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:.65rem;font-weight:600;gap:4px;padding:4px 10px;transition:all .15s;white-space:nowrap}.flow-step:hover:not(:disabled){background:#f3f4f6}.flow-step.current{background:var(--sage);color:#fff}.flow-step.done{background:#e8f0ed;background:var(--sage-pale,#e8f0ed);color:var(--sage)}.flow-step.lost{color:#dc2626}.flow-step.lost.current{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.flow-step:disabled{cursor:default;opacity:.5}.flow-arrow{color:var(--border);flex-shrink:0;font-size:.65rem;margin:0 3px}.lm-body{flex:1 1;overflow-y:auto;padding:0}.lm-body::-webkit-scrollbar{width:5px}.lm-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:10px}.lm-section{border-bottom:1px solid var(--border);padding:14px 20px}.lm-section:last-child{border-bottom:none}.lm-section-label{align-items:center;color:var(--text-muted);display:flex;font-size:.6rem;font-weight:700;justify-content:space-between;letter-spacing:.8px;margin-bottom:8px;text-transform:uppercase}.lm-section-action{align-items:center;color:var(--sage);display:flex;font-size:.68rem;font-weight:600;gap:3px;text-decoration:none}.lm-section-action:hover{text-decoration:underline}.lm-info-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.lm-field{display:flex;flex-direction:column}.lm-field-label{color:var(--text-muted);font-size:.58rem;font-weight:600;letter-spacing:.5px;margin-bottom:2px;text-transform:uppercase}.lm-field-value{color:var(--navy);font-size:.82rem;font-weight:500}.lm-contact-bar{display:flex;gap:8px;margin-top:10px}.lm-contact-pill{align-items:center;border:1px solid var(--border);border-radius:6px;color:var(--text);display:flex;flex:1 1;font-size:.72rem;font-weight:600;gap:5px;justify-content:center;padding:7px;text-decoration:none;transition:all .15s}.lm-contact-pill:hover{background:#e8f0ed;background:var(--sage-pale,#e8f0ed);border-color:var(--sage);color:var(--sage)}.lm-estimate-card{align-items:center;background:var(--cream);border:1px solid var(--border);border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:12px 14px;transition:border-color .15s}.lm-estimate-card:hover{border-color:var(--sage)}.lm-est-info{display:flex;flex-direction:column;gap:2px}.lm-est-label{color:var(--text-muted);font-size:.68rem;font-weight:600}.lm-est-amount{color:var(--sage);font-size:1.1rem;font-weight:700}.lm-est-status{border-radius:6px;font-size:.6rem;font-weight:700;letter-spacing:.5px;padding:3px 10px;text-transform:uppercase}.lm-timeline{display:flex;flex-direction:column;gap:0}.lm-tl-item{display:flex;font-size:.78rem;gap:10px;line-height:1.4;padding:8px 0}.lm-tl-item+.lm-tl-item{border-top:1px solid #f3f4f6}.lm-tl-dot{border-radius:50%;flex-shrink:0;height:8px;margin-top:5px;width:8px}.lm-tl-dot.note{background:#2563eb}.lm-tl-dot.status{background:var(--sage)}.lm-tl-dot.email{background:#b8926a}.lm-tl-dot.system{background:var(--border)}.lm-tl-content{flex:1 1}.lm-tl-text{color:var(--text)}.lm-tl-meta{color:var(--text-muted);font-size:.62rem;margin-top:1px}.lm-add-note{display:flex;gap:8px;margin-top:10px}.lm-note-input{border:1.5px solid var(--border);border-radius:8px;flex:1 1;font-family:inherit;font-size:.78rem;outline:none;padding:8px 12px;transition:border-color .15s}.lm-note-input:focus{border-color:var(--sage)}.lm-note-input::placeholder{color:#c4c4c4}.lm-note-btn{background:var(--sage);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.75rem;font-weight:600;padding:8px 14px;white-space:nowrap}.lm-note-btn:hover{background:#3a7a65}.lm-note-btn:disabled{cursor:not-allowed;opacity:.5}.lm-lost-banner{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;display:flex;font-size:.78rem;gap:8px;padding:10px 14px}.lm-lost-banner strong{color:#dc2626}.lm-footer{background:var(--cream);border-top:1px solid var(--border);display:flex;flex-shrink:0;gap:8px;padding:12px 20px}.lm-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:.78rem;font-weight:600;gap:6px;justify-content:center;padding:10px;transition:all .15s}.lm-btn:disabled{cursor:not-allowed;opacity:.5}.lm-btn.primary{background:var(--sage);color:#fff}.lm-btn.primary:hover:not(:disabled){background:#3a7a65}.lm-btn.secondary{background:#fff;border:1px solid var(--border);color:var(--text)}.lm-btn.secondary:hover{background:var(--cream-dark)}.lm-btn.danger{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.lm-btn.danger:hover:not(:disabled){background:#fecaca}.close-lost-modal{animation:lmSlideUp .2s ease-out;background:#fff;border-radius:14px;box-shadow:0 25px 60px #0000004d;max-width:420px;overflow:hidden;width:100%}.cl-body{padding:20px}.cl-label{color:var(--navy);display:block;font-size:.82rem;font-weight:600;margin-bottom:12px}.cl-reasons{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:12px}.cl-reason{background:#fff;border:1.5px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;font-size:.78rem;font-weight:600;padding:10px 12px;text-align:left;transition:all .15s}.cl-reason.active,.cl-reason:hover{border-color:#dc2626;color:#dc2626}.cl-reason.active{background:#fef2f2}.cl-note-input{border:1.5px solid var(--border);border-radius:8px;font-family:inherit;font-size:.78rem;outline:none;padding:10px 12px;width:100%}.cl-note-input:focus{border-color:#dc2626}@media (max-width:640px){.leads-tabs{padding:0}.leads-tab{font-size:.72rem;padding:8px 10px}.leads-search{display:none}.lead-modal{border-radius:14px 14px 0 0;max-height:95vh;max-width:100%}.lm-info-grid{grid-template-columns:1fr}.lm-footer{flex-wrap:wrap}.leads-row-status{display:none}}.estimate-builder{--forest:#2c5f4e;--forest-dark:#234a3d;--forest-light:#3d7a66;--sage:#2c5f4e;--sage-light:#e8f0ed;--sage-pale:#f0f5f3;--gold:#b8926a;--gold-dark:#9a7854;--gold-light:#d4b896;--gold-pale:#f5f0e8;--cream:#f8f7f5;--cream-dark:#e8e6e3;--white:#fff;--charcoal:#1a2634;--text-dark:#1a2634;--text-muted:#6b7280;--text-light:#9ca3af;--success:#22c55e;--success-light:#dcfce7;--warning:#f59e0b;--warning-light:#fef3c7;--error:#dc2626;--error-light:#fecaca;--blue:#3b82f6;--blue-light:#dbeafe;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001f;background:var(--cream);font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif;min-height:100vh;padding:24px}.builder-header{align-items:center;display:flex;gap:16px;margin-bottom:24px}.back-btn{background:var(--white);border-radius:var(--radius-sm);color:var(--text-dark)}.back-btn:hover{border-color:var(--forest);color:var(--forest)}.header-title p{margin:4px 0 0}.type-selector{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:24px}.type-card{background:var(--white);border:2px solid var(--cream-dark);border-radius:var(--radius-lg);cursor:pointer;padding:20px;position:relative;transition:all .2s ease}.type-card:hover{border-color:var(--sage);box-shadow:var(--shadow-md);transform:translateY(-2px)}.type-card.selected{background:var(--sage-pale);border-color:var(--forest)}.type-card.selected:before{background:var(--forest);border-radius:var(--radius-lg) var(--radius-lg) 0 0;content:"";height:4px;left:0;position:absolute;right:0;top:0}.type-icon{align-items:center;border-radius:var(--radius-md);display:flex;height:48px;justify-content:center;margin-bottom:12px;width:48px}.type-card.residential .type-icon{background:var(--sage-light);color:var(--forest)}.type-card.custom .type-icon{background:var(--blue-light);color:var(--blue)}.type-card h3{color:var(--charcoal);font-family:Playfair Display,serif;font-size:1.1rem;font-weight:600;margin:0 0 4px}.type-card p{color:var(--text-muted);font-size:.85rem;margin:0}.type-badge{background:var(--forest);border-radius:20px;color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.5px;padding:4px 8px;position:absolute;right:12px;text-transform:uppercase;top:12px}.builder-layout{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:1fr 340px}.builder-main{display:flex;flex-direction:column;gap:20px;min-width:0}.builder-card{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-header h2{color:var(--charcoal);font-family:Playfair Display,serif;gap:8px}.card-header h2 svg{color:var(--forest)}.card-header .header-hint{color:var(--text-muted);font-size:.8rem}.card-body{padding:20px}.btn{border-radius:var(--radius-sm);font-family:inherit;gap:6px;justify-content:center;padding:10px 16px}.btn-primary{box-shadow:0 2px 8px #2c5f4e40}.btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #2c5f4e59}.btn-sm{font-size:.8rem}.btn-clear{align-items:center;background:var(--cream);border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.btn-clear:hover{background:var(--error-light);color:var(--error)}.client-selector{margin-bottom:16px}.search-input{align-items:center;background:var(--cream);border:1px solid var(--cream-dark);border-radius:var(--radius-sm);display:flex;gap:10px;padding:10px 14px}.search-input svg{color:var(--text-muted);flex-shrink:0}.search-input input{background:#0000;border:none;font-family:inherit;font-size:.9rem;outline:none;width:100%}.selected-client{border:2px solid var(--forest);border-radius:var(--radius-md);gap:12px;margin-top:12px;padding:12px 16px}.client-avatar{background:var(--forest);flex-shrink:0;font-size:.9rem;height:44px;width:44px}.client-avatar.sm{font-size:.8rem;height:36px;width:36px}.client-info{flex:1 1;min-width:0}.client-name{color:var(--charcoal);display:block;font-size:.95rem}.client-meta{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.8rem;gap:4px 12px}.client-meta span:not(:last-child):after{content:" • ";opacity:.5}.client-list{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto}.client-option{background:var(--cream);border:2px solid #0000;border-radius:var(--radius-md);gap:12px;padding:10px 12px;transition:all .2s ease}.client-option:hover{border-color:var(--sage)}.client-option svg{color:var(--text-muted);flex-shrink:0}.property-list{display:flex;flex-direction:column;gap:8px}.property-option{align-items:center;background:var(--cream);border:2px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:12px;padding:12px 16px;text-align:left;transition:all .2s ease;width:100%}.property-option:hover{background:var(--sage-pale);border-color:var(--sage)}.property-option.selected{background:var(--sage-light);border-color:var(--forest)}.property-icon{align-items:center;background:var(--sage-pale);border-radius:var(--radius-sm);color:var(--forest);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.property-info{flex:1 1;min-width:0}.property-address{display:block}.property-meta{color:var(--text-muted);font-size:.8rem}.check-icon{color:var(--forest)}.empty-state-sm{padding:20px;text-align:center}.empty-state-sm p{color:var(--text-muted);margin-bottom:12px}.form-row{margin-bottom:16px}.form-row.three-col{grid-template-columns:repeat(3,1fr)}.form-group label .required{color:var(--error)}.form-group textarea{min-height:100px}.input-with-unit{position:relative}.input-with-unit input{padding-right:50px;width:100%}.input-with-unit .unit{color:var(--text-muted);font-size:.85rem;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.checkbox-label{display:inline-flex}.checkbox-label input[type=checkbox]{accent-color:var(--forest)}.condition-grid{grid-gap:8px;gap:8px;margin-top:8px}.condition-option{align-items:center;border:2px solid var(--cream-dark);border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:12px 8px;text-align:center;transition:all .2s ease}.condition-option:hover{background:var(--sage-pale);border-color:var(--sage)}.condition-option.selected{background:var(--sage-light);border-color:var(--forest)}.condition-emoji{font-size:1.5rem}.condition-label{color:var(--charcoal);font-size:.75rem}.frequency-option{padding:16px 12px}.freq-name{color:var(--charcoal);font-size:.9rem;font-weight:600;margin-bottom:4px}.freq-price{color:var(--forest);font-family:Playfair Display,serif;font-size:1.1rem;font-weight:600}.freq-multiplier{color:var(--text-muted);font-size:.7rem;margin-top:2px}.section-note{margin-bottom:12px}.addons-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.addon-option{border:2px solid var(--cream-dark);border-radius:var(--radius-md);gap:10px;padding:12px 14px}.addon-option:hover{background:var(--sage-pale);border-color:var(--sage)}.addon-option.selected{background:var(--sage-light);border-color:var(--forest)}.addon-checkbox{height:20px;width:20px}.addon-option.selected .addon-checkbox{background:var(--forest);border-color:var(--forest);color:#fff}.addon-price{flex-shrink:0;font-size:.85rem}.line-items-header{grid-gap:10px;border-bottom:1px solid var(--cream-dark);color:var(--text-muted);display:grid;font-size:.75rem;font-weight:600;gap:10px;grid-template-columns:1fr 70px 90px 90px 40px;letter-spacing:.5px;margin-bottom:12px;padding:0 0 10px;text-transform:uppercase}.line-items-container{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.line-item-row{grid-gap:10px;align-items:start;gap:10px;grid-template-columns:1fr 70px 90px 90px 40px}.line-item-desc-cell{display:flex;flex-direction:column;gap:6px}.line-item-desc-cell input{padding:10px 12px;width:100%}.line-item-desc-cell input,.line-item-row>input{border:1px solid var(--cream-dark);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem}.line-item-row>input,.line-item-total{padding:10px 8px;text-align:center}.line-item-total{border-radius:var(--radius-sm);color:var(--charcoal);font-size:.9rem}.line-item-optional-toggle{align-items:center;cursor:pointer;display:inline-flex;gap:6px}.toggle-switch{height:18px;position:relative;width:32px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:var(--cream-dark);border-radius:18px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.2s}.toggle-slider:before{background-color:#fff;bottom:2px;height:14px;transition:.2s;width:14px}.toggle-switch input:checked+.toggle-slider{background-color:var(--gold)}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(14px)}.toggle-label{color:var(--text-muted);font-size:.75rem}.remove-line-btn{align-items:center;background:var(--cream);border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.remove-line-btn:hover:not(:disabled){background:var(--error-light);color:var(--error)}.remove-line-btn:disabled{cursor:not-allowed;opacity:.3}.add-line-btn{align-items:center;background:#0000;border:2px dashed var(--cream-dark);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.85rem;font-weight:600;gap:6px;padding:10px 16px;transition:all .2s ease}.add-line-btn:hover{background:var(--sage-pale);border-color:var(--forest);color:var(--forest)}.discount-section{border-top:1px solid var(--cream-dark);padding-top:20px}.discount-header{color:var(--text-dark);font-size:.85rem;font-weight:600;margin-bottom:10px}.discount-inputs{display:flex;gap:10px}.discount-inputs select{width:60px}.discount-inputs input[type=number],.discount-inputs select{border:1px solid var(--cream-dark);border-radius:var(--radius-sm);font-family:inherit;padding:10px}.discount-inputs input[type=number]{width:80px}.discount-inputs input[type=text]{border:1px solid var(--cream-dark);border-radius:var(--radius-sm);font-family:inherit;padding:10px 12px}.notes-tabs{background:var(--cream);border-radius:var(--radius-sm);display:flex;gap:4px;margin-bottom:12px;padding:4px}.notes-tab{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;flex:1 1;font-family:inherit;font-size:.85rem;font-weight:600;padding:8px 16px;transition:all .2s ease}.notes-tab.active{background:var(--white);box-shadow:var(--shadow-sm);color:var(--forest)}.notes-tab:hover:not(.active){color:var(--text-dark)}.card-body textarea{border:1px solid var(--cream-dark);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;min-height:100px;padding:12px;resize:vertical;width:100%}.builder-sidebar{max-width:340px;min-width:320px;position:-webkit-sticky;position:sticky;top:20px}.summary-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.summary-header{background:linear-gradient(135deg,var(--charcoal) 0,#2d3e4f 100%);color:#fff;padding:16px}.summary-header h3{font-family:Playfair Display,serif;font-size:1rem;font-weight:600;margin:0 0 2px}.summary-header p{font-size:.85rem;margin:0;opacity:.8}.summary-body{padding:16px}.summary-section{border-bottom:1px solid var(--cream-dark);margin-bottom:16px;padding-bottom:16px}.summary-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.summary-label{font-size:.7rem;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.summary-value{color:var(--charcoal)}.summary-value-sm{color:var(--text-muted);font-size:.85rem;margin-top:2px}.summary-row{align-items:center;padding:6px 0}.summary-row.optional{opacity:.6}.summary-row.discount{color:var(--success)}.summary-deep-clean{background:var(--gold-pale);border-bottom:1px solid var(--gold-light);margin:-16px -16px 12px;padding:12px 16px}.dc-label{align-items:center;display:flex;font-size:.8rem;gap:6px;margin-bottom:4px}.dc-label,.dc-price{color:var(--gold-dark);font-weight:600}.dc-price{font-family:Playfair Display,serif;font-size:1.25rem}.dc-addons{color:var(--gold);font-size:.75rem;margin-top:4px}.summary-total{align-items:center;border-top:2px solid var(--forest);display:flex;font-weight:700;justify-content:space-between;margin-top:16px;padding:16px 0 0}.summary-total span:last-child{color:var(--forest);font-family:Playfair Display,serif;font-size:1.5rem}.summary-empty{color:var(--text-muted);padding:20px 16px;text-align:center}.summary-empty svg{margin-bottom:8px;opacity:.3}.summary-empty p{font-size:.85rem}.action-footer{background:var(--white);border-top:1px solid var(--cream-dark);bottom:0;box-shadow:0 -4px 12px #00000014;left:200px;padding:16px 24px;position:fixed;right:0;z-index:100}.action-footer-content{align-items:center;display:flex;justify-content:space-between;max-width:1200px}.action-footer-summary{align-items:center;display:flex;gap:8px}.footer-label{color:var(--text-muted);font-size:.85rem}.footer-price{color:var(--forest);font-family:Playfair Display,serif;font-size:1.25rem;font-weight:600}.action-footer-buttons{display:flex;gap:12px}.estimate-builder{padding-bottom:100px}@media (max-width:768px){.action-footer{left:0;padding:12px 16px}.action-footer-summary{display:none}.action-footer-buttons{width:100%}.action-footer-buttons .btn{flex:1 1}}.modal-form{display:flex;flex-direction:column;gap:16px}.modal-form .form-row{margin-bottom:0}.modal-form .form-actions{border-top:1px solid var(--cream-dark);gap:10px;margin-top:8px}@media (max-width:1100px){.builder-layout{grid-template-columns:1fr}.builder-sidebar{max-width:100%;min-width:0;order:-1;position:relative;top:0}}@media (max-width:768px){.estimate-builder{padding:16px}.type-selector{grid-template-columns:1fr}.condition-grid{grid-template-columns:repeat(3,1fr)}.frequency-grid{grid-template-columns:repeat(2,1fr)}.addons-grid,.form-row,.form-row.three-col{grid-template-columns:1fr}.line-items-header{display:none}.line-item-row{background:var(--cream);border-radius:var(--radius-md);gap:8px;grid-template-columns:1fr;margin-bottom:8px;padding:12px}.line-item-row>input{text-align:left}}@media (max-width:480px){.condition-grid{grid-template-columns:repeat(2,1fr)}.frequency-grid{grid-template-columns:1fr}}.required-toggle{align-items:center;background:var(--cream);border:1px solid var(--cream-dark);border-radius:6px;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:4px;padding:4px 10px;transition:all .15s ease;white-space:nowrap}.required-toggle:hover{border-color:var(--gold-light)}.required-toggle.active{background:var(--gold-pale);border-color:var(--gold);color:var(--gold-dark)}.required-toggle.sm{font-size:11px;gap:3px;padding:2px 6px}.estimate-detail-page{padding:0}.detail-header{gap:20px}.header-left{align-items:flex-start}.header-title-row{align-items:center;display:flex;gap:12px;margin-bottom:4px}.header-title-row h1{color:var(--navy);font-family:var(--font-heading);font-size:1.5rem}.header-actions{align-items:center;gap:8px}.btn-icon{border-radius:var(--radius-md);transition:all var(--transition-fast)}.btn-icon.btn-delete:hover,.btn-icon:hover{background:var(--red-light);border-color:var(--red);color:var(--red)}.btn-delete{color:var(--text-muted)}.review-warning{background:var(--orange-light);border:1px solid var(--orange);border-radius:var(--radius-lg);padding:20px}.review-warning svg{color:var(--orange);flex-shrink:0;margin-top:2px}.review-warning strong{color:var(--orange);display:block;margin-bottom:4px}.review-warning p{color:var(--text-dark);font-size:.9rem;margin-bottom:8px}.review-warning ul{color:var(--text-muted);font-size:.85rem;margin:0;padding-left:20px}.review-warning .btn{align-self:center;margin-left:auto}.detail-layout{grid-gap:24px;align-items:start;display:grid;gap:24px;grid-template-columns:1fr 360px}.detail-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:24px}.detail-card h3{border-bottom:1px solid var(--cream);color:var(--navy);font-family:var(--font-body);font-size:1rem;font-weight:600;margin-bottom:20px;padding-bottom:12px}.info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}.info-item{display:flex;gap:12px}.info-item .condition-icon,.info-item svg{color:var(--sage);flex-shrink:0;margin-top:2px}.info-item .condition-icon{font-size:1.2rem}.info-item label{color:var(--text-muted);display:block;font-size:.75rem;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.info-item p{color:var(--navy);font-weight:500}.info-item p a{color:var(--sage)}.info-item p a:hover{text-decoration:underline}.info-item .meta{color:var(--text-muted);display:block;font-size:.8rem;font-weight:400}.property-stats{grid-gap:16px;gap:16px;grid-template-columns:repeat(6,1fr)}.property-stats .stat{background:var(--cream);border-radius:var(--radius-md);padding:16px 8px;text-align:center}.property-stats .stat-value{font-size:1.5rem;font-weight:700;margin-bottom:4px}.property-stats .stat-label{font-size:.75rem}.line-items-table{display:flex;flex-direction:column;gap:8px}.line-item-row{grid-gap:16px;gap:16px;grid-template-columns:1fr auto auto;padding:14px 16px}.line-item-row.addon{background:var(--sage-pale)}.line-item-row.total{background:var(--navy);color:var(--white);margin-top:8px}.item-info{display:flex;flex-direction:column;gap:2px}.item-label{color:var(--navy)}.line-item-row.total .item-label{color:var(--white)}.item-desc{color:var(--text-muted)}.item-status .approved{color:var(--green)}.item-status .approved,.item-status .declined{align-items:center;display:flex;font-size:.8rem;gap:4px}.item-status .declined{color:var(--red)}.item-price{color:var(--sage)}.line-item-row.total .item-price{color:var(--gold);font-size:1.25rem}.detail-sidebar>div{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:16px;padding:20px}.detail-sidebar h3{color:var(--navy);font-family:var(--font-body);font-size:.9rem;font-weight:600;margin-bottom:16px}.summary-card .price-row{align-items:center;border-bottom:1px solid var(--cream);display:flex;justify-content:space-between;padding:12px 0}.summary-card .price-row:last-child{border-bottom:none}.summary-card .price-row span:first-child{color:var(--text-muted);font-size:.9rem}.summary-card .price-row .price{color:var(--navy);font-size:1.1rem;font-weight:600}.summary-card .price-row.recurring{background:var(--sage-pale);margin:0 -20px;padding:16px 20px}.summary-card .price-row.recurring .price{color:var(--sage);font-size:1.5rem}.summary-card .price-row.approved .price{color:var(--green)}.timeline-item{padding-bottom:20px}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{background:var(--cream-dark);bottom:0;content:"";left:7px;position:absolute;top:20px;width:2px}.timeline-item:last-child:before{display:none}.timeline-dot{background:var(--cream-dark);border-radius:var(--radius-full);flex-shrink:0;height:16px;position:relative;width:16px;z-index:1}.timeline-item.completed .timeline-dot{background:var(--sage)}.timeline-item.declined .timeline-dot{background:var(--red)}.timeline-item.pending .timeline-dot{background:var(--gold)}.timeline-content{flex:1 1}.timeline-label{color:var(--navy);font-size:.9rem;font-weight:500}.timeline-date,.timeline-note{color:var(--text-muted);font-size:.8rem}.timeline-note{display:block;font-style:italic;margin-top:4px}.portal-link-card p{color:var(--text-muted);font-size:.85rem;margin-bottom:12px}.link-box{align-items:center;background:var(--cream);border-radius:var(--radius-md);display:flex;gap:8px;padding:10px 12px}.link-box code{color:var(--text-muted);flex:1 1;font-size:.8rem;overflow:hidden;text-overflow:ellipsis}.link-box button{border-radius:var(--radius-sm);color:var(--sage);padding:6px}.link-box button:hover{background:var(--white)}.open-portal-link{align-items:center;display:inline-flex;font-size:.85rem;gap:8px;margin-top:12px}.note-section{margin-bottom:16px}.note-section:last-child{margin-bottom:0}.note-section label{color:var(--text-muted);display:block;font-size:.75rem;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.note-section p{color:var(--navy);font-size:.9rem;line-height:1.5}.send-modal p{color:var(--text-dark);margin-bottom:20px}.send-options{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr);margin-bottom:24px}.send-option{align-items:center;border:2px solid var(--cream-dark);border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:20px;transition:all var(--transition-fast)}.send-option.selected,.send-option:hover{border-color:var(--sage)}.send-option.selected{background:var(--sage-pale)}.send-option input{display:none}.send-option svg{color:var(--sage)}.send-option span:first-of-type{color:var(--navy);font-weight:600}.send-option .contact{color:var(--text-muted);font-size:.8rem}.delete-modal p{color:var(--text-dark);margin-bottom:24px}.btn-danger{background:var(--red);color:var(--white)}.btn-danger:hover{background:#c0392b}@media (max-width:1024px){.detail-layout{grid-template-columns:1fr}.property-stats{grid-template-columns:repeat(3,1fr)}.info-grid{grid-template-columns:1fr}}@media (max-width:640px){.detail-header{flex-direction:column}.header-actions{justify-content:flex-end;width:100%}.property-stats{grid-template-columns:repeat(2,1fr)}.line-item-row{grid-template-columns:1fr auto}.item-status{display:none}.send-options{grid-template-columns:1fr}}.send-error{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-sm);color:var(--red);display:flex;font-size:.9rem;gap:8px;margin-bottom:16px;padding:12px}.requested-addons{display:flex;flex-direction:column;gap:12px}.addon-item{padding:12px 16px}.addon-label{color:var(--navy);flex:1 1;font-weight:500}.addon-qty{font-size:.85rem;padding:4px 10px}.addon-note{background:#fef3c7;border-radius:var(--radius-full);color:#d97706;font-size:.8rem;padding:4px 10px}.client-note{background:var(--cream);border-radius:var(--radius-sm);margin-bottom:16px;padding:16px}.client-note.warning{background:#fef3c7;border-left:4px solid #d97706}.client-note strong{color:var(--navy);display:block;margin-bottom:8px}.client-note p{color:var(--text-dark);line-height:1.6;margin:0}.intake-photos-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.intake-photo{background:var(--cream);border-radius:var(--radius-sm);overflow:hidden;position:relative}.intake-photo img{display:block;height:150px;object-fit:cover;width:100%}.intake-photo .photo-label{background:var(--white);border-top:1px solid var(--cream-dark);color:var(--text-dark);display:block;font-size:.8rem;padding:8px 12px}.review-warning{align-items:flex-start;background:#fef3c7;border-left:4px solid #d97706;border-radius:0 var(--radius) var(--radius) 0;display:flex;gap:16px;margin-bottom:24px;padding:20px 24px}.review-warning>svg{color:#d97706;flex-shrink:0;margin-top:2px}.review-content{flex:1 1}.review-content strong{color:#92400e;display:block;font-size:1rem;margin-bottom:4px}.review-content>p{color:#92400e;font-size:.9rem;margin:0 0 12px}.review-checklist{display:flex;flex-direction:column;gap:8px;margin-top:12px}.checklist-item{align-items:center;background:#fff9;border-radius:var(--radius-sm);display:flex;font-size:.9rem;gap:10px;padding:8px 12px}.checklist-item.complete{color:#166534}.checklist-item.complete svg{color:#16a34a}.checklist-item.incomplete{color:#991b1b;font-weight:500}.checklist-item.incomplete svg{color:#dc2626}.checklist-item.neutral{color:#92400e}.checklist-item .dash{color:#92400e;text-align:center;width:16px}.review-actions{display:flex;flex-direction:column;flex-shrink:0;gap:8px}.review-actions .btn{white-space:nowrap}.review-actions .btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.review-warning{flex-direction:column}.review-actions{flex-direction:row;width:100%}.review-actions .btn{flex:1 1}}.delete-modal{padding:8px 0}.lead-submission-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-top:16px;padding:20px}.lead-submission-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.lead-submission-header h3{align-items:center;color:var(--navy);display:flex;font-size:1rem;gap:8px;margin:0}.btn-download-pdf{align-items:center;background:var(--sage);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:500;gap:6px;padding:8px 14px;transition:all .15s ease}.btn-download-pdf:hover{background:var(--sage-dark)}.lead-submission-content{display:flex;flex-direction:column;gap:20px}.lead-section h4{color:var(--sage);font-size:.85rem;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.lead-fields{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.lead-field{display:flex;flex-direction:column;gap:2px}.lead-field.full-width{grid-column:1/-1}.lead-label{color:#94a3b8;font-size:.7rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.lead-value{color:var(--navy);font-size:.9rem}.lead-notes{display:flex;flex-direction:column;gap:12px}.lead-note-item{background:#f8fafc;border-left:3px solid var(--sage);border-radius:8px;padding:12px}.lead-note-label{color:var(--sage);display:block;font-size:.75rem;font-weight:600;letter-spacing:.3px;margin-bottom:4px;text-transform:uppercase}.lead-note-item p{color:var(--navy);font-size:.9rem;margin:0;white-space:pre-wrap}.lead-meta{border-top:1px solid #e2e8f0;color:#94a3b8;display:flex;font-size:.75rem;gap:20px;padding-top:12px}@media (max-width:768px){.lead-submission-header{align-items:flex-start;flex-direction:column;gap:12px}.lead-fields{grid-template-columns:1fr 1fr}.lead-meta{flex-direction:column;gap:4px}}.estimate-calculator{display:flex;flex-direction:column;gap:24px}.calc-section{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.section-header{align-items:flex-start;gap:16px;margin-bottom:24px}.step-number{background:var(--sage);border-radius:var(--radius-full);color:var(--white);flex-shrink:0}.section-header h3{font-family:var(--font-body);font-size:1.1rem;margin-bottom:4px}.section-header p{color:var(--text-muted);font-size:.85rem}.form-grid{grid-template-columns:repeat(4,1fr)}.form-group label{align-items:center;display:flex;gap:6px}.form-group label svg{color:var(--sage)}.form-group input{border:1px solid var(--cream-dark);border-radius:var(--radius-md);font-size:1rem;padding:12px 14px;transition:all var(--transition-fast)}.form-group input:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-pale);outline:none}.sqft-input{grid-column:span 1}.input-hint{color:var(--text-muted);font-size:.75rem}.number-input-group{display:flex;flex-direction:column;gap:8px}.number-input-group label{align-items:center;color:var(--navy);display:flex;gap:6px}.number-input-group label svg{color:var(--sage)}.number-controls{border:1px solid var(--cream-dark);border-radius:var(--radius-md);gap:0}.number-controls button{background:var(--cream);color:var(--navy);transition:all var(--transition-fast);width:40px}.number-controls button:hover:not(:disabled){background:var(--sage-pale);color:var(--sage)}.number-controls button:disabled{opacity:.4}.number-value{background:var(--white);color:var(--navy);font-size:1rem;padding:10px}.room-exclusions{border-top:1px solid var(--cream);margin-top:20px;padding-top:16px}.exclusion-toggle{align-items:center;background:var(--cream);border-radius:var(--radius-md);color:var(--navy);display:flex;font-size:.9rem;font-weight:500;justify-content:space-between;padding:12px 16px;transition:all var(--transition-fast);width:100%}.exclusion-toggle:hover{background:var(--cream-dark)}.exclusion-toggle svg{transition:transform var(--transition-fast)}.exclusion-toggle svg.rotated{transform:rotate(90deg)}.exclusion-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(4,1fr);margin-top:16px}.exclusion-item{align-items:center;background:var(--cream);border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:10px;padding:10px 12px;transition:all var(--transition-fast)}.exclusion-item:hover{background:var(--cream-dark)}.exclusion-item input{accent-color:var(--sage);height:18px;width:18px}.room-name{color:var(--navy);flex:1 1;font-size:.85rem}.room-sqft{color:var(--text-muted);font-size:.75rem}.condition-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(5,1fr)}.condition-card{align-items:center;background:var(--cream);border:2px solid #0000;border-radius:var(--radius-md);display:flex;flex-direction:column;gap:8px;padding:20px 12px;position:relative;transition:all var(--transition-fast)}.condition-card:hover{background:var(--cream-dark);transform:translateY(-2px)}.condition-card.selected{background:var(--sage-pale);border-color:var(--sage)}.condition-card.warning.selected{background:var(--orange-light);border-color:var(--orange)}.condition-emoji{font-size:2.5rem;line-height:1}.condition-label{color:var(--navy);font-size:.85rem}.condition-desc{color:var(--text-muted);font-size:.7rem;line-height:1.3}.check-badge{align-items:center;background:var(--sage);border-radius:var(--radius-full);color:var(--white);display:flex;height:24px;justify-content:center;position:absolute;right:8px;top:8px;width:24px}.condition-card.warning .check-badge{background:var(--orange)}.frequency-grid{grid-gap:12px;gap:12px;grid-template-columns:repeat(4,1fr)}.frequency-card{align-items:center;background:var(--cream);border:2px solid #0000;border-radius:var(--radius-md);display:flex;flex-direction:column;gap:8px;padding:20px 16px;transition:all var(--transition-fast)}.frequency-card:hover{background:var(--cream-dark);transform:translateY(-2px)}.frequency-card.selected{background:var(--sage-pale);border-color:var(--sage)}.frequency-card.custom-quote{opacity:.7}.frequency-label{color:var(--navy);font-size:.9rem}.frequency-price{align-items:baseline;color:var(--sage);display:flex;font-weight:700;gap:4px}.frequency-price.custom{color:var(--text-muted);font-size:.85rem;font-weight:500}.min-badge{background:var(--gold-pale);border-radius:4px;color:var(--gold);font-size:.65rem;font-weight:500;padding:2px 6px}.info-banner,.warning-banner{align-items:center;border-radius:var(--radius-md);display:flex;font-size:.9rem;font-weight:500;gap:12px;margin-top:16px;padding:14px 18px}.warning-banner{background:var(--orange-light);color:var(--orange)}.info-banner{background:var(--sage-pale);color:var(--sage)}.addon-tabs{border-bottom:1px solid var(--cream);display:flex;gap:8px;margin-bottom:16px;padding-bottom:12px}.addon-tab{align-items:center;background:#0000;border-radius:var(--radius-sm);color:var(--text-muted);display:flex;font-size:.85rem;font-weight:500;gap:6px;padding:8px 16px;transition:all var(--transition-fast)}.addon-tab:hover{background:var(--cream);color:var(--navy)}.addon-tab.active{background:var(--sage);color:var(--white)}.addon-count{background:#ffffff4d;border-radius:10px;font-size:.7rem;padding:2px 6px}.addon-item{border:1px solid var(--cream-dark);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-fast)}.addon-item.selected,.addon-item:hover{border-color:var(--sage)}.addon-item.selected{background:var(--sage-pale)}.addon-item.requires-review{border-left:3px solid var(--orange)}.addon-main{cursor:pointer;gap:12px;padding:14px 16px}.addon-checkbox{height:22px;transition:all var(--transition-fast);width:22px}.addon-item.selected .addon-checkbox{background:var(--sage);border-color:var(--sage);color:var(--white)}.addon-name{font-size:.9rem}.addon-note{color:var(--orange)}.addon-price{align-items:baseline;color:var(--sage);display:flex;font-size:.95rem;gap:2px}.price-unit{color:var(--text-muted);font-size:.75rem;font-weight:400}.custom-quote{color:var(--orange)}.custom-quote,.external-link{font-size:.85rem;font-weight:500}.external-link{align-items:center;color:var(--sage);display:flex;gap:4px}.external-link:hover{text-decoration:underline}.addon-quantity{align-items:center;background:var(--cream);border-top:1px solid var(--cream-dark);color:var(--text-muted);display:flex;font-size:.85rem;gap:12px;padding:10px 16px}.quantity-controls{align-items:center;background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-sm);display:flex;overflow:hidden}.quantity-controls button{align-items:center;color:var(--navy);display:flex;height:32px;justify-content:center;width:32px}.quantity-controls button:hover{background:var(--cream)}.quantity-controls input{border:none;font-size:.9rem;font-weight:600;padding:6px;text-align:center;width:50px}.quantity-controls input:focus{outline:none}.quantity-total{color:var(--sage);font-weight:600}.summary-section{background:linear-gradient(135deg,var(--navy) 0,#2a3f4f 100%);color:var(--white)}.summary-section .step-number{background:var(--gold)}.summary-section .section-header h3{color:var(--white)}.summary-section .section-header p{color:#ffffffb3}.summary-card{background:#ffffff1a;border-radius:var(--radius-md)}.summary-block{border-bottom:1px solid #ffffff26;margin-bottom:20px;padding-bottom:20px}.summary-block:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.summary-block h4{color:var(--gold);font-family:var(--font-body);font-size:.9rem;font-weight:600;margin-bottom:12px}.line-items{display:flex;flex-direction:column;gap:10px}.line-item{grid-gap:8px;background:#ffffff0d;border-radius:var(--radius-sm);display:grid;gap:8px;grid-template-columns:1fr auto;padding:10px 12px}.item-label{font-size:.9rem;font-weight:500}.item-desc{color:#fff9;font-size:.8rem;grid-column:1}.item-price{align-self:center;color:var(--gold);font-size:1rem;font-weight:600;grid-row:span 2}.subtotal{align-items:center;border-top:1px dashed #fff3;display:flex;justify-content:space-between;margin-top:12px;padding-top:12px}.subtotal span:first-child{color:#fffc;font-size:.9rem}.subtotal .price{color:var(--gold);font-size:1.25rem;font-weight:700}.recurring-total .price{font-size:1.5rem}.summary-warnings{background:#f9731633;border-radius:var(--radius-md);color:var(--orange);display:flex;gap:12px;margin-top:16px;padding:16px}.summary-warnings strong{display:block;margin-bottom:6px}.summary-warnings ul{font-size:.85rem;margin:0;padding-left:18px}.summary-warnings li{margin-bottom:4px}.summary-actions{display:flex;gap:12px;margin-top:20px}.summary-actions .btn{flex:1 1;justify-content:center;padding:14px 24px}.summary-actions .btn-secondary{background:#ffffff1a;border-color:#fff3;color:var(--white)}.summary-actions .btn-secondary:hover{background:#fff3}.summary-actions .btn-primary{background:var(--gold);border-color:var(--gold)}.summary-actions .btn-primary:hover{background:var(--gold-light)}.custom-quote-message{padding:40px 20px;text-align:center}.custom-quote-message svg{color:var(--orange);margin-bottom:16px}.custom-quote-message h4{color:var(--navy);font-family:var(--font-body);font-size:1.1rem;margin-bottom:8px}.custom-quote-message p{color:var(--text-muted);margin:0 auto;max-width:400px}.frequency-grid.multi-select .frequency-card{flex-direction:row;gap:12px;justify-content:flex-start;padding:16px}.freq-checkbox{align-items:center;background:var(--white);border:2px solid var(--cream-dark);border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:22px;justify-content:center;transition:all var(--transition-fast);width:22px}.frequency-card.selected .freq-checkbox{background:var(--sage);border-color:var(--sage);color:var(--white)}.frequency-grid.multi-select .frequency-label{flex:1 1;text-align:left}.frequency-grid.multi-select .frequency-price{font-size:1rem}.selected-frequencies{background:var(--sage-pale);border-radius:var(--radius-md);color:var(--sage);font-size:.9rem;margin-top:16px;padding:12px 16px}.selected-frequencies strong{color:var(--navy)}.preferences-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.preferences-grid .form-group{display:flex;flex-direction:column;gap:8px}.preferences-grid label{align-items:center;color:var(--navy);display:flex;font-size:.85rem;font-weight:500;gap:6px}.preferences-grid label svg{color:var(--sage)}.preferences-grid input,.preferences-grid select{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);font-size:.95rem;padding:12px 14px}.preferences-grid input:focus,.preferences-grid select:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-pale);outline:none}.notes-textarea{border:1px solid var(--cream-dark);border-radius:var(--radius-md);font-family:var(--font-body);font-size:.95rem;min-height:100px;padding:14px 16px;resize:vertical;width:100%}.notes-textarea:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-pale);outline:none}.calculator-actions{background:var(--white);border-radius:var(--radius-lg);bottom:20px;box-shadow:var(--shadow-sm);display:flex;gap:12px;margin-top:24px;padding:24px;position:-webkit-sticky;position:sticky}.calculator-actions .btn{flex:1 1;font-size:1rem;justify-content:center;padding:16px 24px}.calculator-actions .btn:disabled{cursor:not-allowed;opacity:.5}.custom-quote-block{background:#ffffff0d;border-radius:var(--radius-md);padding:16px;text-align:center}.custom-quote-block h4{margin-bottom:8px}.custom-quote-block p{color:var(--gold);font-style:italic}@media (max-width:1024px){.form-grid{grid-template-columns:repeat(2,1fr)}.condition-grid{grid-template-columns:repeat(3,1fr)}.exclusion-grid,.frequency-grid{grid-template-columns:repeat(2,1fr)}.preferences-grid{grid-template-columns:1fr}.calculator-actions{flex-direction:column;position:static}}@media (max-width:640px){.calc-section{padding:16px}.form-grid{grid-template-columns:1fr}.condition-grid{grid-template-columns:repeat(2,1fr)}.condition-emoji{font-size:2rem}.frequency-grid{grid-template-columns:1fr 1fr}.exclusion-grid{grid-template-columns:1fr}.addon-tabs{flex-wrap:wrap}.summary-actions{flex-direction:column}}.pricing-section .section-header{align-items:center;display:flex;justify-content:space-between}.pricing-section .section-header>div{flex:1 1}.pricing-controls{background:var(--cream);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:20px;padding:20px}.pricing-option{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);padding:16px}.skip-deep-clean .checkbox-label{align-items:flex-start;cursor:pointer;display:flex;gap:12px}.skip-deep-clean .checkbox-label input{display:none}.checkbox-custom{align-items:center;background:var(--white);border:2px solid var(--cream-dark);border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:22px;justify-content:center;transition:all var(--transition-fast);width:22px}.skip-deep-clean .checkbox-label input:checked+.checkbox-custom{background:var(--sage);border-color:var(--sage);color:var(--white)}.option-text strong{color:var(--navy);display:block;font-size:.95rem;margin-bottom:4px}.option-text span{color:var(--text-muted);font-size:.85rem}.pricing-row{background:var(--white);border:1px solid var(--cream-dark)}.pricing-label{align-items:center;display:flex;gap:8px;margin-bottom:12px}.pricing-label svg{color:var(--sage)}.pricing-inputs{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}.input-group{display:flex;flex-direction:column;gap:8px}.input-group label{color:var(--text-muted);font-size:.8rem;font-weight:500}.currency-input,.percent-input{align-items:center;background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);display:flex;gap:4px;padding:10px 12px;transition:all var(--transition-fast)}.currency-input:focus-within,.percent-input:focus-within{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-pale)}.currency-input svg,.percent-input svg{color:var(--text-muted);flex-shrink:0}.currency-input input,.percent-input input{border:none;flex:1 1;font-size:.95rem;min-width:0;outline:none;padding:0}.currency-input.small{padding:6px 10px}.currency-input.small input{font-size:.85rem}.override-per-frequency{display:flex;flex-direction:column;gap:8px}.frequency-override{align-items:center;display:flex;gap:8px}.frequency-override .freq-label{color:var(--text-muted);font-size:.8rem;min-width:80px}.pricing-actions{display:flex;justify-content:flex-end}.price-with-discount{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.original-price{color:#ffffff80;font-size:.85rem;text-decoration:line-through}.discount-badge{background:var(--green);border-radius:10px;color:var(--white);font-size:.7rem;font-weight:500;padding:2px 8px}.override-badge{background:var(--gold);border-radius:4px;color:var(--navy);font-size:.65rem;font-weight:600;margin-left:8px;padding:2px 6px}.deep-clean-block h4,.summary-block h4{align-items:center;display:flex;gap:8px}.skipped-block{background:#ffffff0d;border-radius:var(--radius-md);padding:16px}.skipped-notice{align-items:center;color:var(--gold);display:flex;gap:12px}.skipped-notice strong{display:block;margin-bottom:4px}.skipped-notice p{color:#ffffffb3;font-size:.85rem;margin:0}@media (max-width:768px){.pricing-inputs{grid-template-columns:1fr}.override-per-frequency{flex-direction:row;flex-wrap:wrap;gap:12px}.frequency-override{flex:1 1;min-width:140px}}.estimate-edit-page{margin:0 auto;max-width:1600px;padding:24px}.estimate-edit-page .page-header{align-items:center;display:flex;gap:16px;margin-bottom:24px}.estimate-edit-page .page-header h1{color:var(--navy);font-size:1.5rem;margin:0}.estimate-edit-page .header-subtitle{color:var(--text-muted);font-size:.9rem;margin:4px 0 0}.edit-layout{align-items:flex-start;display:flex;gap:24px}.reference-sidebar{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);flex-shrink:0;max-height:calc(100vh - 120px);overflow-y:auto;position:-webkit-sticky;position:sticky;top:24px;width:320px}.sidebar-header{align-items:center;background:linear-gradient(135deg,#d97706,#f59e0b);border-radius:var(--radius) var(--radius) 0 0;color:#fff;display:flex;font-size:.95rem;font-weight:600;gap:10px}.sidebar-section{border-bottom:1px solid var(--cream-dark)}.sidebar-section:last-child{border-bottom:none}.section-header{cursor:pointer;font-size:.9rem;font-weight:500;padding:14px 20px;transition:background .2s ease}.section-header:hover{background:var(--cream)}.section-header svg:last-child{color:var(--text-muted);margin-left:auto}.section-content{padding:0 20px 16px}.info-row{align-items:flex-start;border-bottom:1px solid var(--cream);font-size:.85rem;padding:8px 0}.info-row.highlight{background:#fef3c7;border-bottom:none;margin:8px -20px;padding:12px 20px}.info-label{color:var(--text-muted);flex-shrink:0}.info-value{color:var(--navy);font-weight:500;text-align:right;word-break:break-word}.info-value.link{color:var(--sage);text-decoration:none}.info-value.link:hover{text-decoration:underline}.info-value.condition{align-items:center;display:flex;gap:6px}.needs-input{animation:pulse 2s infinite;color:#dc2626;font-weight:600}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.property-stats{grid-gap:8px;background:var(--cream);border-radius:var(--radius-sm);display:grid;gap:8px;grid-template-columns:repeat(4,1fr);margin:12px 0;padding:12px}.property-stats .stat-item{text-align:center}.property-stats .stat-value{color:var(--navy);display:block;font-size:1.1rem;font-weight:600}.property-stats .stat-label{color:var(--text-muted);font-size:.7rem;letter-spacing:.5px;text-transform:uppercase}.addon-item{background:var(--cream);padding:10px 12px}.addon-item:last-child{margin-bottom:0}.addon-main{align-items:center;display:flex;gap:8px}.addon-check{color:var(--green)}.addon-name{color:var(--navy);font-size:.85rem}.addon-qty{background:var(--white);border-radius:var(--radius-full);color:var(--text-muted);display:inline-block;font-size:.75rem;margin-left:8px;padding:2px 8px}.addon-warning{align-items:center;background:#fef3c7;border-radius:var(--radius-sm);color:#92400e;display:flex;gap:6px;padding:6px 10px}.addon-note,.addon-warning{font-size:.75rem;margin-top:6px}.addon-note{color:var(--text-muted);font-style:italic}.concern-box{background:#fef2f2;border-left:3px solid #dc2626;border-radius:var(--radius-sm);margin-bottom:12px;padding:12px}.concern-header{align-items:center;color:#991b1b;display:flex;font-size:.85rem;font-weight:600;gap:8px;margin-bottom:8px}.concern-box p{color:#991b1b;font-size:.85rem;line-height:1.5;margin:0}.approved-box{align-items:center;background:var(--green-light);color:var(--green);display:flex;font-size:.85rem;font-weight:500;gap:8px;margin-bottom:12px;padding:10px 12px}.approved-box,.notes-box{border-radius:var(--radius-sm)}.notes-box{background:var(--cream)}.notes-header{color:var(--navy);font-size:.85rem;font-weight:600;margin-bottom:8px}.notes-box p{color:var(--text-dark);font-size:.85rem;line-height:1.5;margin:0}.photos-grid{grid-template-columns:repeat(2,1fr)}.photo-thumb{border-radius:var(--radius-sm)}.photo-thumb img{transition:transform .2s ease}.photo-thumb:hover img{transform:scale(1.05)}.photo-thumb .photo-label{background:#000000b3;bottom:0;color:#fff;font-size:.7rem;left:0;overflow:hidden;padding:4px 8px;position:absolute;right:0;text-overflow:ellipsis;white-space:nowrap}.calculator-area{flex:1 1;min-width:0}.calculator-area.with-sidebar{max-width:calc(100% - 344px)}.photo-modal{align-items:center;background:#000000e6;bottom:0;display:flex;justify-content:center;left:0;padding:40px;position:fixed;right:0;top:0;z-index:1000}.photo-modal-content{max-height:90vh;max-width:90vw;position:relative}.photo-modal-content img{border-radius:var(--radius);max-height:80vh;max-width:100%;object-fit:contain}.close-modal{background:none;border:none;color:#fff;cursor:pointer;padding:8px;position:absolute;right:0;top:-40px}.close-modal:hover{color:var(--cream)}.photo-modal-label{color:#fff;font-size:.9rem;margin-top:16px;text-align:center}@media (max-width:1200px){.reference-sidebar{width:280px}.calculator-area.with-sidebar{max-width:calc(100% - 304px)}}@media (max-width:900px){.edit-layout{flex-direction:column}.reference-sidebar{max-height:none;position:relative;top:0;width:100%}.calculator-area.with-sidebar{max-width:100%}.photos-grid,.property-stats{grid-template-columns:repeat(4,1fr)}}.schedule-page{padding:0}.schedule-page .page-header{align-items:center;display:flex;gap:16px;margin-bottom:24px}.schedule-layout{grid-gap:24px;align-items:start;display:grid;gap:24px;grid-template-columns:1fr 360px}.schedule-form{display:flex;flex-direction:column;gap:20px}.schedule-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.schedule-card h3{align-items:center;color:var(--navy);display:flex;font-family:var(--font-body);font-size:1rem;font-weight:600;gap:10px;margin-bottom:16px}.schedule-card h3 svg{color:var(--sage)}.card-description{color:var(--text-muted);font-size:.9rem;margin-bottom:16px;margin-top:-8px}.summary-card{background:var(--sage-pale);border:2px solid var(--sage)}.summary-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.summary-row+.summary-row{border-top:1px solid #2c5f4e33;margin-top:16px;padding-top:16px}.summary-item{gap:12px}.summary-item svg{flex-shrink:0;margin-top:2px}.summary-item label{color:var(--text-muted);display:block;font-size:.75rem;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.summary-item p{color:var(--navy);font-weight:600}.summary-item .meta{color:var(--text-muted);font-size:.8rem;font-weight:400}.summary-item.price p{color:var(--sage);font-size:1.25rem}.schedule-card .form-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}.schedule-card .form-group{display:flex;flex-direction:column;gap:8px}.schedule-card .form-group label{color:var(--navy);font-size:.85rem;font-weight:500}.schedule-card input,.schedule-card select,.schedule-card textarea{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);font-family:var(--font-body);font-size:.95rem;padding:12px 14px}.schedule-card input:focus,.schedule-card select:focus,.schedule-card textarea:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-pale);outline:none}.schedule-card textarea{min-height:100px;resize:vertical}.recurring-option{border-top:1px solid var(--cream);margin-top:20px;padding-top:20px}.checkbox-label{font-weight:500}.checkbox-label input{accent-color:var(--sage);height:20px;width:20px}.recurring-note{background:var(--sage-pale);border-radius:var(--radius-sm);color:var(--sage);font-size:.85rem;margin-top:8px;padding:12px}.team-grid{grid-gap:12px;gap:12px}.team-member{cursor:pointer;gap:12px;padding:14px;text-align:left}.team-member:hover{background:var(--sage-pale)}.member-avatar{flex-shrink:0}.member-role{color:var(--text-muted);font-size:.8rem}.member-check{border-radius:var(--radius-full);color:var(--white);height:28px;width:28px}.validation-message{align-items:center;color:var(--orange);display:flex;font-size:.85rem;gap:6px;margin-top:12px}.schedule-sidebar{position:-webkit-sticky;position:sticky;top:24px}.preview-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:16px;padding:24px}.preview-card h3{color:var(--navy);font-family:var(--font-body);font-size:1rem;font-weight:600;margin-bottom:20px}.preview-item{border-bottom:1px solid var(--cream);color:var(--navy);display:flex;font-size:.9rem;padding:12px 0}.preview-item:last-of-type{border-bottom:none}.preview-item svg{color:var(--sage);flex-shrink:0}.preview-item.recurring{color:var(--sage);font-weight:500}.preview-total{border-top:2px solid var(--cream);justify-content:space-between;margin-top:16px;padding-top:16px}.preview-total span:first-child{color:var(--text-muted);font-weight:500}.total-amount{font-size:1.5rem;font-weight:700}.action-buttons{margin-bottom:16px}.action-buttons .btn{flex:1 1;justify-content:center}.action-buttons .btn:disabled{cursor:not-allowed;opacity:.5}.deep-clean-note{background:var(--gold-pale);border-radius:var(--radius-md);display:flex;gap:12px;padding:16px}.deep-clean-note svg{color:var(--gold);flex-shrink:0;margin-top:2px}.deep-clean-note strong{color:var(--gold);display:block;margin-bottom:4px}.deep-clean-note p{color:var(--text-dark);font-size:.85rem}.pricing-card{background:var(--white)}.pricing-row{align-items:center;background:var(--cream);border-radius:var(--radius-md);display:flex;gap:14px;margin-bottom:10px;padding:16px}.pricing-row:last-child{margin-bottom:0}.pricing-row.first-clean{background:linear-gradient(135deg,var(--gold-pale) 0,#f5efe5 100%);border:1px solid var(--gold-light)}.pricing-row.recurring-clean{background:linear-gradient(135deg,var(--sage-pale) 0,#e0ebe7 100%);border:1px solid var(--sage)}.pricing-icon{align-items:center;background:var(--white);border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.pricing-row.first-clean .pricing-icon{color:var(--gold)}.pricing-icon.recurring,.pricing-row.recurring-clean .pricing-icon{color:var(--sage)}.pricing-info{flex:1 1}.pricing-label{color:var(--navy);display:block;font-size:.95rem;font-weight:600}.pricing-desc{color:var(--text-muted);display:block;font-size:.8rem;margin-top:2px}.pricing-amount{color:var(--navy);font-size:1.25rem;font-weight:700}.pricing-row.first-clean .pricing-amount{color:var(--gold)}.pricing-row.recurring-clean .pricing-amount{color:var(--sage)}.recurring-note.success{background:var(--green-light);color:var(--green);display:flex;gap:12px;margin-top:12px;padding:14px}.recurring-note.success svg{flex-shrink:0;margin-top:2px}.recurring-note.success strong{display:block;margin-bottom:4px}.recurring-note.success p{color:var(--text-dark);font-size:.85rem;margin:0}.preview-pricing{border-top:1px solid var(--cream);margin-top:16px;padding-top:16px}.preview-price-row{align-items:center;display:flex;justify-content:space-between;padding:10px 0}.preview-price-row span:first-child{color:var(--text-muted);font-size:.9rem}.preview-price-row span:last-child{color:var(--navy);font-weight:600}.preview-price-row.recurring span:last-child{color:var(--sage)}.what-happens{background:var(--sage-pale);border-radius:var(--radius-md);margin-top:16px;padding:16px}.what-happens h4{color:var(--sage);font-size:.85rem;font-weight:600;margin-bottom:12px}.what-happens ul{list-style:none;margin:0;padding:0}.what-happens li{align-items:center;color:var(--navy);display:flex;font-size:.85rem;gap:10px;padding:8px 0}.what-happens li svg{color:var(--sage);flex-shrink:0}.not-found{background:var(--white);border-radius:var(--radius-lg);padding:60px 20px}.not-found svg{color:var(--orange)}.not-found h2{margin-bottom:8px}.not-found p{color:var(--text-muted);margin-bottom:20px}@media (max-width:1024px){.schedule-layout{grid-template-columns:1fr}.schedule-sidebar{position:static}.team-grid{grid-template-columns:1fr}}@media (max-width:640px){.schedule-card .form-grid,.summary-row{grid-template-columns:1fr}.summary-row{gap:16px}.action-buttons{flex-direction:column}}.custom-estimate-summary{margin-bottom:12px}.custom-estimate-summary .estimate-title{color:var(--navy);font-size:.95rem;font-weight:600;margin-bottom:8px}.line-item-row-small{border-bottom:1px solid var(--gray-100);display:flex;font-size:.85rem;justify-content:space-between;padding:6px 0}.line-item-row-small:last-child{border-bottom:none}.line-item-row-small .item-desc{color:var(--gray-600)}.line-item-row-small .item-price{color:var(--gray-700);font-weight:500}.line-item-row-small.discount .item-price{color:var(--red)}.pricing-row.total-row{border-top:2px solid var(--gray-200);margin-top:8px;padding-top:12px}.frequency-select{border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.95rem;margin-top:8px;padding:10px 12px;width:100%}.route-map-view{display:flex;flex-direction:column;height:calc(100vh - 200px);min-height:600px}.mobile-map-toggle{background:var(--white);border-bottom:1px solid var(--border-color);display:none;padding:12px 16px}.mobile-map-toggle .toggle-btn{align-items:center;background:var(--sage-light);border:1px solid var(--sage);border-radius:var(--radius-lg);color:var(--sage);cursor:pointer;display:flex;font-weight:500;gap:8px;justify-content:center;padding:10px 16px;width:100%}.mobile-map-toggle .toggle-btn.active{background:var(--sage);color:#fff}.map-section{background:#f0f0f0;height:320px;min-height:320px;position:relative}.map-section:after{background:linear-gradient(90deg,var(--sage) 0,var(--gold) 50%,var(--sage) 100%);bottom:0;content:"";height:4px;left:0;position:absolute;right:0}.map-section.hidden-mobile{display:block}.map-legend{align-items:center;background:#fff;border-radius:var(--radius-lg);bottom:16px;box-shadow:0 2px 10px #00000026;display:flex;flex-wrap:wrap;gap:12px;left:16px;padding:10px 16px;z-index:10}.legend-item{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;gap:6px;padding:4px 8px;transition:all .2s ease}.legend-item.highlighted,.legend-item:hover{background:var(--background)}.legend-dot{align-items:center;border:2px solid #fff;box-shadow:0 1px 3px #0003;color:#fff;display:flex;font-size:9px;font-weight:700;height:18px;justify-content:center;width:18px}.map-info-window{min-width:200px;padding:8px}.map-info-window h4{color:var(--navy);font-size:1rem;font-weight:600;margin:0 0 6px}.map-info-window .info-time{color:var(--text-secondary);font-size:.9rem;margin:0 0 4px}.map-info-window .info-notes{background:var(--background);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.85rem;font-style:italic;margin:8px 0 0;padding:6px 10px}.mobile-route-tabs{background:var(--white);border-bottom:1px solid var(--border-color);display:none;gap:8px;overflow-x:auto;padding:8px 12px}.route-tab{align-items:center;background:var(--background);border:2px solid #0000;border-radius:var(--radius-lg);cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:6px;padding:8px 14px;white-space:nowrap}.route-tab.active{background:#fff;box-shadow:0 2px 4px #0000001a}.route-tab .tab-dot{border-radius:50%;height:10px;width:10px}.route-tab.add-tab{background:#0000;border:2px dashed var(--border-color);color:var(--text-muted)}.routes-section{background:var(--background);flex:1 1;overflow:hidden}.route-columns{align-items:flex-start;gap:12px;overflow-x:auto;padding:16px}.route-column{background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000000f;flex:0 0 320px;overflow:hidden}.route-column.unassigned{background:#fafafa;flex:0 0 260px;width:260px}.route-header{background:#fff;border-top:4px solid var(--sage);flex-direction:column;flex-shrink:0;gap:10px;padding:12px}.route-header.unassigned-header{background:#fafafa;border-top-color:#94a3b8}.route-row{width:100%}.route-name-row{align-items:center;display:flex;gap:10px}.route-letter{border-radius:8px;font-size:.9rem}.route-name{border:1px dashed #0000;border-radius:4px;color:var(--navy);cursor:pointer;font-size:1rem;font-weight:700;padding:2px 6px}.route-name:hover{background:#f8fafc;border-color:#cbd5e1}.route-name-input{border:1px solid var(--sage);border-radius:4px;width:120px}.route-team-row{margin-top:2px}.team-assign-btn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:8px 10px;transition:all .2s ease}.team-assign-btn:hover{background:var(--sage-light)}.team-assign-btn svg{color:var(--sage)}.team-assign-btn .team-names{font-weight:600}.team-assign-btn .no-team{color:#94a3b8;font-style:italic}.route-summary-row{background:#f8fafc;border-radius:8px;display:flex;justify-content:space-between;padding:10px}.summary-stat{align-items:center;display:flex;flex-direction:column;text-align:center}.summary-stat .stat-value{color:var(--navy);font-size:1rem;font-weight:700}.summary-stat .stat-label{color:#94a3b8;font-size:.65rem;letter-spacing:.5px;text-transform:uppercase}.summary-stat.revenue .stat-value{color:var(--sage)}.route-notes-row{margin-top:4px}.route-notes-display{align-items:flex-start;border:1px dashed #e2e8f0;border-radius:8px;display:flex;font-size:.8rem;gap:6px;min-height:50px;padding:10px 12px;transition:all .2s}.route-notes-display:hover{background:#f0fdf4;border-color:var(--sage)}.route-notes-display.has-notes{border:1px solid #fbbf24;color:#92400e;font-weight:500}.route-notes-input{border:2px solid var(--sage);border-radius:8px;font-size:.85rem;min-height:60px;padding:10px 12px;resize:vertical}.route-title{gap:8px;margin-bottom:8px}.route-icon,.route-title{align-items:center;display:flex}.route-icon{border-radius:6px;color:#fff;flex-shrink:0;height:24px;justify-content:center;width:24px}.route-icon svg{height:14px;width:14px}.job-count{background:#f1f5f9;color:#64748b;font-size:.7rem;font-weight:500;margin-left:auto}.team-assign-btn .team-names{color:var(--navy);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-stats{color:#94a3b8;display:flex;flex-wrap:wrap;font-size:.7rem;gap:6px}.route-stats span{white-space:nowrap}.route-stats .route-revenue{color:var(--sage);font-weight:700}.route-notes{border-top:1px dashed #e2e8f0;margin-top:8px;padding-top:8px}.route-notes-display{background:#f8fafc;border-radius:6px;color:#94a3b8;cursor:pointer;font-size:11px;min-height:28px;padding:6px 8px;transition:all .2s ease}.route-notes-display:hover{background:#f1f5f9;color:#64748b}.route-notes-display.has-notes{background:#fef9c3;border-left:3px solid #eab308;color:#475569}.route-notes-input{background:#fffef5;border:1px solid var(--sage);border-radius:6px;font-family:inherit;font-size:11px;outline:none;padding:6px 8px;resize:none;width:100%}.route-jobs{flex:1 1;overflow-y:auto;padding:8px}.empty-route{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;justify-content:center;padding:30px 16px;text-align:center}.empty-route svg{color:var(--sage);margin-bottom:8px}.empty-route p{font-size:.85rem;margin:0}.route-actions{align-items:center;background:#fafafa;border-top:1px solid #e2e8f0;display:flex;flex-shrink:0;justify-content:space-between;padding:8px 12px}.route-action-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;cursor:pointer;display:flex;font-size:11px;gap:4px;padding:6px 10px}.route-action-btn:hover{background:#f1f5f9}.route-action-btn.edit:hover{border-color:var(--sage);color:var(--sage)}.route-action-btn.delete{color:#94a3b8}.route-action-btn.delete:hover{background:#fef2f2;border-color:#fecaca;color:#dc2626}.add-route-column{align-items:center;background:#0000;border:2px dashed var(--border-color);border-radius:var(--radius-lg);display:flex;flex:0 0 160px;justify-content:center;min-height:200px;width:160px}.add-route-btn{border:none;font-size:.85rem;gap:6px;padding:16px}.new-route-form{padding:12px;text-align:center}.new-route-form input{border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9rem;margin-bottom:10px;padding:8px 12px;width:100%}.new-route-form input:focus{border-color:var(--sage);outline:none}.new-route-actions{gap:6px;justify-content:center}.new-route-actions button{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;height:36px;justify-content:center;width:36px}.new-route-actions .cancel-btn{background:var(--background);color:var(--text-muted)}.new-route-actions .confirm-btn{background:var(--sage);color:#fff}.route-job-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;margin-bottom:12px;overflow:hidden;position:relative;transition:box-shadow .2s}.route-job-card:hover{box-shadow:0 4px 12px #0000001a}.route-job-card:before{background:var(--sage);background:var(--card-color,var(--sage));bottom:0;content:"";left:0;position:absolute;top:0;width:5px}.route-job-card .driving-time{align-items:center;background:#1e293b;border-radius:0 0 8px 0;color:#fff;display:inline-flex;font-size:11px;font-weight:600;gap:4px;margin-bottom:8px;padding:4px 10px}.route-job-card .job-card-content{padding:12px 12px 12px 16px}.route-job-card .job-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:10px}.route-job-card .job-time-block{display:flex;flex-direction:column}.route-job-card .job-time-main{color:#1e293b;font-size:18px;font-weight:700;line-height:1}.route-job-card .job-time-details{color:#64748b;font-size:12px;margin-top:2px}.route-job-card .job-stop-badge{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:28px;justify-content:center;width:28px}.route-job-card .job-client-section{margin-bottom:10px}.route-job-card .job-client-name{color:#1e293b;font-size:15px;font-weight:600;margin:0 0 4px}.route-job-card .job-address-text{align-items:center;color:#64748b;display:flex;font-size:12px;gap:4px;margin:0}.route-job-card .job-address-text svg{flex-shrink:0;height:12px;width:12px}.route-job-card .job-tags-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.route-job-card .job-tag{border-radius:4px;font-size:10px;font-weight:600;padding:3px 8px;text-transform:uppercase}.route-job-card .job-tag.service{color:#fff}.route-job-card .job-tag.status{background:#dbeafe;color:#1e40af}.route-job-card .job-tag.rebook{background:#fef3c7;color:#b45309}.route-job-card .job-card-footer{align-items:center;border-top:1px solid #f1f5f9;display:flex;justify-content:space-between;padding-top:10px}.route-job-card .job-price-section{align-items:center;display:flex;gap:8px}.route-job-card .job-sqft{color:#94a3b8;font-size:12px}.route-job-card .job-billing-icon{align-items:center;display:flex}.route-job-card .job-price{color:var(--sage);font-size:16px;font-weight:700}.route-job-card .job-move-buttons{align-items:center;display:flex;gap:4px}.route-job-card .job-move-btn{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;cursor:pointer;display:flex;height:32px;justify-content:center;padding:0;transition:all .15s;width:32px}.route-job-card .job-move-btn:hover{background:var(--sage);border-color:var(--sage);color:#fff}.route-job-card .job-move-btn:active{transform:scale(.95)}.team-modal{max-width:450px}.team-list{padding:16px 0}.team-member-row{background:var(--background);border-radius:var(--radius-lg);justify-content:space-between;margin-bottom:8px;padding:12px 16px}.team-member-row.assigned{background:var(--sage-light)}.team-checkbox{align-items:center;cursor:pointer;display:flex;gap:12px}.team-checkbox input{cursor:pointer;height:18px;width:18px}.member-name{font-weight:500}.primary-btn{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-size:.8rem;padding:6px 12px}.primary-btn.is-primary{background:var(--gold);border-color:var(--gold);color:#fff}.map-error,.map-loading{background:var(--background);color:var(--text-muted);font-size:1rem;height:350px}@media (max-width:768px){.route-map-view{height:auto;min-height:calc(100vh - 140px)}.mobile-map-toggle{display:block}.map-section{height:250px;min-height:250px}.map-section.hidden-mobile{display:none}.map-legend{bottom:8px;font-size:.75rem;gap:8px;justify-content:center;left:8px;padding:8px 12px;right:8px}.mobile-route-tabs{display:flex}.routes-section{flex:1 1}.route-columns{gap:0;padding:12px}.route-column{display:none;flex:1 1 100%;width:100%}.route-column.mobile-active{display:flex}.add-route-column{display:none}}@media (max-width:480px){.job-card-actions{flex-wrap:wrap}.job-card-actions .action-btn.rebook{justify-content:center;margin-left:0;margin-top:8px;width:100%}}.job-detail-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.job-detail-modal.enhanced{animation:jmSlideUp .2s ease-out;background:#fff;border-radius:16px;box-shadow:0 25px 60px #0000004d;display:flex;flex-direction:column;max-height:88vh;max-width:420px;overflow:hidden;width:100%}@keyframes jmSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.jm-header{background:#faf8f5;background:var(--cream,#faf8f5);border-bottom:1px solid #e5e2dd;border-bottom:1px solid var(--border,#e5e2dd);gap:12px;padding:14px 18px}.jm-avatar,.jm-header{align-items:center;display:flex}.jm-avatar{background:#2c5f4e;background:var(--sage,#2c5f4e);border-radius:10px;color:#fff;flex-shrink:0;font-size:.82rem;font-weight:700;height:42px;justify-content:center;letter-spacing:.5px;width:42px}.jm-header-info{flex:1 1;min-width:0}.jm-header-info h3{color:#1a2634;color:var(--navy,#1a2634);font-size:1rem;font-weight:700;margin:0 0 2px}.jm-type-chip{align-items:center;background:#e8f0ed;border-radius:4px;color:#2c5f4e;color:var(--sage,#2c5f4e);cursor:pointer;display:inline-flex;font-size:.72rem;font-weight:600;gap:4px;padding:2px 8px;transition:all .15s}.jm-type-chip:hover{background:#d5e8df}.jm-type-arrow{font-size:.65rem;margin-left:1px;opacity:.5;transition:opacity .15s}.jm-type-chip:hover .jm-type-arrow{opacity:1}.jm-type-select{background:#fff;border:1.5px solid #2c5f4e;border:1.5px solid var(--sage,#2c5f4e);border-radius:4px;font-size:.78rem;font-weight:600;outline:none;padding:3px 6px}.jm-header-right{align-items:center;display:flex;flex-shrink:0;gap:8px}.jm-status{border-radius:6px;font-size:.62rem;font-weight:700;letter-spacing:.5px;padding:3px 9px;text-transform:uppercase}.jm-close{align-items:center;background:#0000;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .15s;width:28px}.jm-close:hover{background:#0000000f;color:#1a2634;color:var(--navy,#1a2634)}.jm-body{flex:1 1;overflow-y:auto;padding:0}.jm-body::-webkit-scrollbar{width:5px}.jm-body::-webkit-scrollbar-track{background:#0000}.jm-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:10px}.jm-contact-bar{border-bottom:1px solid #e5e2dd;border-bottom:1px solid var(--border,#e5e2dd);display:flex;gap:8px;padding:10px 18px}.jm-contact-pill{align-items:center;background:#fff;border:1px solid #e5e2dd;border:1px solid var(--border,#e5e2dd);border-radius:8px;color:#374151;cursor:pointer;display:flex;flex:1 1;font-size:.78rem;font-weight:600;gap:6px;justify-content:center;padding:8px;text-decoration:none;transition:all .15s}.jm-contact-pill:hover{background:#e8f0ed;border-color:#2c5f4e;border-color:var(--sage,#2c5f4e);color:#2c5f4e;color:var(--sage,#2c5f4e)}.jm-section{border-bottom:1px solid #e5e2dd;border-bottom:1px solid var(--border,#e5e2dd);padding:12px 18px}.jm-section:last-child{border-bottom:none}.jm-section-label{align-items:center;color:#9ca3af;display:flex;font-size:.62rem;font-weight:700;justify-content:space-between;letter-spacing:.8px;margin-bottom:8px;text-transform:uppercase}.jm-section-action{align-items:center;background:none;border:none;border-radius:4px;color:#2c5f4e;color:var(--sage,#2c5f4e);cursor:pointer;display:flex;font-size:.7rem;font-weight:600;gap:3px;padding:2px 6px;transition:background .15s}.jm-section-action:hover{background:#e8f0ed}.jm-info-row{align-items:flex-start;color:#374151;display:flex;font-size:.82rem;gap:10px;line-height:1.4;margin-bottom:5px}.jm-info-row svg{color:#9ca3af;flex-shrink:0;margin-top:2px}.jm-info-row div{display:flex;flex-direction:column}.jm-muted{color:#9ca3af;font-size:.75rem}.jm-directions-btn{align-items:center;background:#2c5f4e;background:var(--sage,#2c5f4e);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.78rem;font-weight:600;gap:6px;justify-content:center;margin-top:8px;padding:8px;text-decoration:none;transition:background .15s;width:100%}.jm-directions-btn:hover{background:#3a7a65}.jm-route-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.jm-route-pill{align-items:center;background:#fff;border:1.5px solid #e5e2dd;border:1.5px solid var(--border,#e5e2dd);border-radius:20px;color:#374151;cursor:pointer;display:inline-flex;font-size:.72rem;font-weight:600;gap:5px;padding:5px 12px;transition:all .15s}.jm-route-pill:hover{background:#e8f0ed;border-color:#2c5f4e;border-color:var(--sage,#2c5f4e)}.jm-route-pill.active{background:#2c5f4e;background:var(--pill-color,var(--sage,#2c5f4e));border-color:#2c5f4e;border-color:var(--pill-color,var(--sage,#2c5f4e));color:#fff}.jm-route-dot{border-radius:50%;display:inline-block;height:8px;width:8px}.jm-route-pill.active .jm-route-dot{background:#fff!important}.jm-team-badges{display:flex;flex-wrap:wrap;gap:6px}.jm-team-badge{align-items:center;background:#faf8f5;background:var(--cream,#faf8f5);border-left:3px solid #b8926a;border-radius:6px;color:#1a2634;color:var(--navy,#1a2634);display:inline-flex;font-size:.75rem;font-weight:600;gap:4px;padding:4px 10px}.jm-no-team{align-items:center;background:#fef2f2;border-radius:8px;color:#dc2626;display:flex;font-size:.78rem;font-weight:500;gap:6px;padding:8px 12px}.jm-stats-section{padding-bottom:8px;padding-top:8px}.jm-stats-row{background:#faf8f5;background:var(--cream,#faf8f5);border-radius:8px;display:flex;gap:0;overflow:hidden}.jm-stat{border-right:1px solid #e5e2dd;border-right:1px solid var(--border,#e5e2dd);flex:1 1;padding:10px 6px;text-align:center}.jm-stat:last-child{border-right:none}.jm-stat-val{color:#1a2634;color:var(--navy,#1a2634);display:block;font-size:1rem;font-weight:700}.jm-price{color:#2c5f4e!important;color:var(--sage,#2c5f4e)!important;cursor:pointer}.jm-price:hover{text-decoration:underline}.jm-stat-lbl{color:#9ca3af;display:block;font-size:.6rem;font-weight:600;letter-spacing:.5px;margin-top:2px;text-transform:uppercase}.jm-price-input{border:1.5px solid #2c5f4e;border:1.5px solid var(--sage,#2c5f4e);border-radius:4px;color:#2c5f4e;color:var(--sage,#2c5f4e);font-size:.95rem;font-weight:700;outline:none;padding:2px 4px;text-align:center;width:72px}.jm-detail-tag{background:#faf8f5;background:var(--cream,#faf8f5);border-bottom:1px solid #e5e2dd;border-bottom:1px solid var(--border,#e5e2dd);color:#374151;font-size:.78rem;padding:8px 18px}.jm-note{border-radius:8px;color:#374151;font-size:.8rem;line-height:1.5;margin-bottom:6px;padding:10px 12px}.jm-note:last-child{margin-bottom:0}.jm-note-label{color:#9ca3af;font-size:.62rem;font-weight:700;letter-spacing:.5px;margin-bottom:3px;text-transform:uppercase}.jm-note.access{background:#fff7ed;border-left:3px solid #f59e0b}.jm-note.client{background:#eff6ff;border-left:3px solid #2563eb}.jm-note.job{background:#faf8f5;background:var(--cream,#faf8f5);border-left:3px solid #2c5f4e;border-left:3px solid var(--sage,#2c5f4e);cursor:pointer}.jm-note.job:hover{background:#f0ede8}.jm-note.special{background:#fef2f2;border-left:3px solid #dc2626}.jm-note.empty{background:#faf8f5;background:var(--cream,#faf8f5);border-left:3px solid #e5e2dd;border-left:3px solid var(--border,#e5e2dd);color:#9ca3af;cursor:pointer;font-style:italic}.jm-note.empty:hover{background:#f0ede8}.jm-edit-area{display:flex;flex-direction:column;gap:8px}.jm-edit-textarea{border:1.5px solid #2c5f4e;border:1.5px solid var(--sage,#2c5f4e);border-radius:8px;font-family:inherit;font-size:.82rem;min-height:70px;outline:none;padding:10px;resize:vertical;width:100%}.jm-edit-btns{display:flex;gap:6px;justify-content:flex-end}.jm-save-btn{background:#2c5f4e;background:var(--sage,#2c5f4e);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.75rem;font-weight:600;padding:5px 14px}.jm-save-btn:disabled{opacity:.5}.jm-cancel-btn{background:#f3f4f6;border:none;border-radius:6px;color:#374151;cursor:pointer;font-size:.75rem;font-weight:600;padding:5px 14px}.jm-footer{background:#faf8f5;background:var(--cream,#faf8f5);border-top:1px solid #e5e2dd;border-top:1px solid var(--border,#e5e2dd);flex-shrink:0;padding:12px 18px 14px}.jm-primary-actions{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:10px}.jm-btn,.jm-btn-sm{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-weight:600;gap:6px;justify-content:center;transition:all .15s;white-space:nowrap}.jm-btn{font-size:.78rem;padding:10px 12px}.jm-btn-sm{font-size:.7rem;padding:8px 10px}.jm-btn:disabled{cursor:not-allowed;opacity:.5}.jm-btn.invoice{background:#2c5f4e;background:var(--sage,#2c5f4e);color:#fff}.jm-btn.invoice:hover:not(:disabled){background:#3a7a65}.jm-btn.recurring{background:#e8f0ed;border:1px solid #c7ddd4;color:#2c5f4e;color:var(--sage,#2c5f4e)}.jm-btn.recurring:hover{background:#d5e8df}.jm-comm-group{margin-bottom:10px}.jm-comm-label{color:#9ca3af;font-size:.58rem;font-weight:700;letter-spacing:.8px;margin-bottom:6px;text-transform:uppercase}.jm-comm-row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.jm-btn.reminder{background:#eff6ff;border:1px solid #bfdbfe;color:#2563eb}.jm-btn.reminder:hover{background:#dbeafe}.jm-btn.notify{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.jm-btn.notify:hover{background:#dcfce7}.jm-danger-zone{grid-gap:8px;border-top:1px solid #e5e2dd;border-top:1px solid var(--border,#e5e2dd);display:grid;gap:8px;grid-template-columns:1fr 1fr 1fr;padding-top:10px}.jm-btn-sm.running-behind{background:#fff7ed;border:1px solid #fed7aa;color:#c2410c}.jm-btn-sm.running-behind:hover{background:#fed7aa}.jm-btn-sm.reschedule{background:#f0f4ff;border:1px solid #c7d2fe;color:#4338ca}.jm-btn-sm.reschedule:hover{background:#e0e7ff}.jm-btn-sm.delete{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.jm-btn-sm.delete:hover{background:#fecaca}.jm-btn .spin,.jm-btn-sm .spin{animation:jmSpin 1s linear infinite}@keyframes jmSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.notify-client-modal,.series-prompt-modal{max-width:380px}@media (max-width:480px){.job-detail-modal.enhanced{border-radius:14px 14px 0 0;max-height:95vh;max-width:100%}.jm-danger-zone{grid-template-columns:1fr 1fr}}.jm-helpers-section{border-top:1px dashed #e5e7eb;margin-top:10px;padding-top:10px}.jm-helpers-label{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.jm-helpers-label>span{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.jm-add-helper-btn{align-items:center;background:#0000;border:1px dashed #3d8b6e;border:1px dashed var(--sage,#3d8b6e);border-radius:6px;color:#3d8b6e;color:var(--sage,#3d8b6e);cursor:pointer;display:flex;font-size:.68rem;font-weight:600;gap:4px;padding:4px 10px;transition:all .15s}.jm-add-helper-btn:hover{background:#f0fdf4;border-style:solid}.jm-helper-badges{display:flex;flex-wrap:wrap;gap:6px}.jm-helper-badge{align-items:center;background:#fefbf3;border:1px dashed #f59e0b;border-radius:6px;color:#92400e;display:inline-flex;font-size:.72rem;font-weight:500;gap:5px;padding:4px 8px 4px 4px}.jm-helper-tag{background:#f59e0b;border-radius:3px;color:#fff;font-size:.55rem;font-weight:700;letter-spacing:.04em;padding:1px 5px;text-transform:uppercase}.jm-helper-remove{align-items:center;background:#00000014;border:none;border-radius:50%;color:#92400e;cursor:pointer;display:flex;height:16px;justify-content:center;margin-left:2px;padding:0;transition:background .15s;width:16px}.jm-helper-remove:hover{background:#ef444433;color:#dc2626}.jm-no-helpers{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.7rem;font-style:italic;padding:2px 0}.jm-helper-picker{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 4px 16px #00000014;margin-top:6px;overflow:hidden}.jm-helper-picker-title{border-bottom:1px solid #f3f4f6;color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.68rem;font-weight:700;letter-spacing:.04em;padding:8px 12px;text-transform:uppercase}.jm-helper-list{max-height:200px;overflow-y:auto}.jm-helper-option{align-items:center;background:#fff;border:none;cursor:pointer;display:flex;gap:10px;padding:8px 12px;text-align:left;transition:background .1s;width:100%}.jm-helper-option:hover{background:#f8f7f5;background:var(--cream,#f8f7f5)}.jm-helper-option-avatar{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.6rem;font-weight:700;height:30px;justify-content:center;width:30px}.jm-helper-option-info{display:flex;flex-direction:column}.jm-helper-option-name{color:#1a2b3c;color:var(--navy,#1a2b3c);font-size:.78rem;font-weight:600}.jm-helper-option-route{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.62rem}.jm-helper-picker-close{background:#fafafa;border:none;border-top:1px solid #f3f4f6;color:var(--text-muted);cursor:pointer;font-size:.72rem;font-weight:600;padding:8px;transition:background .1s;width:100%}.jm-helper-picker-close:hover{background:#f0f0ee}.dispatch-date-nav{align-items:center;background:var(--cream);border-radius:var(--radius-lg);display:flex;gap:8px;justify-content:center;padding:12px 16px;position:relative}.nav-btn{border-radius:var(--radius-md);font-size:.8rem;font-weight:500;gap:4px;padding:8px 12px;transition:all var(--transition-fast)}.nav-btn:hover{background:var(--sage-pale)}.nav-btn.day-btn{padding:8px 10px}.nav-btn.week-btn span{display:inline}@media (max-width:768px){.nav-btn.week-btn span{display:none}.nav-btn.week-btn{padding:8px 10px}}.date-display{align-items:center;background:var(--white);border:2px solid var(--sage);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:12px;min-width:280px;padding:10px 20px;transition:all var(--transition-fast)}.date-display.active,.date-display:hover{background:var(--sage-pale);box-shadow:0 4px 12px #2c5f4e26}.date-display svg:first-child{color:var(--sage);flex-shrink:0}.date-text{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;text-align:left}.date-main{color:var(--navy);font-size:.95rem;font-weight:600;line-height:1.2}.date-year{color:var(--text-muted);font-size:.75rem}.today-badge{background:var(--sage);border-radius:var(--radius-full);font-size:.65rem;letter-spacing:.5px;padding:3px 8px;text-transform:uppercase}.date-display .chevron{color:var(--text-muted);transition:transform var(--transition-fast)}.date-display .chevron.rotated{transform:rotate(180deg)}.date-picker-dropdown{animation:dropdownFadeIn .2s ease;background:var(--white);border-radius:var(--radius-lg);box-shadow:0 10px 40px #0000002e;left:50%;overflow:hidden;position:absolute;top:calc(100% + 8px);transform:translateX(-50%);width:340px;z-index:1000}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateX(-50%) translateY(-8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.picker-header{align-items:center;background:var(--navy);color:#fff;display:flex;justify-content:space-between;padding:16px}.picker-month{font-family:var(--font-heading);font-size:1.1rem;font-weight:600}.picker-nav-btn{align-items:center;border-radius:50%;color:#fff;display:flex;height:32px;justify-content:center;opacity:.8;transition:all var(--transition-fast);width:32px}.picker-nav-btn:hover{background:#ffffff26;opacity:1}.picker-close-btn{align-items:center;border-radius:50%;color:#fff;display:flex;height:28px;justify-content:center;margin-left:8px;opacity:.6;transition:all var(--transition-fast);width:28px}.picker-close-btn:hover{background:#ffffff26;opacity:1}.picker-weekdays{border-bottom:1px solid var(--cream-dark);display:grid;grid-template-columns:repeat(7,1fr);padding:12px 16px 8px}.picker-weekdays span{color:var(--text-muted);font-size:.7rem;font-weight:600;letter-spacing:.5px;text-align:center;text-transform:uppercase}.picker-days{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,1fr);padding:8px 16px 16px}.picker-day{align-items:center;aspect-ratio:1;border-radius:50%;color:var(--text-dark);display:flex;font-size:.85rem;font-weight:500;justify-content:center;position:relative;transition:all var(--transition-fast)}.picker-day:hover{background:var(--sage-pale);color:var(--sage)}.picker-day.other-month{color:var(--cream-dark)}.picker-day.other-month:hover{color:var(--text-muted)}.picker-day.today{color:var(--sage);font-weight:700}.picker-day.today:after{background:var(--sage);border-radius:50%;bottom:4px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:4px}.picker-day.selected{background:var(--sage);color:#fff;font-weight:600}.picker-day.selected:after{display:none}.picker-day.selected:hover{background:var(--sage-light);color:#fff}.picker-quick-dates{background:var(--cream);border-top:1px solid var(--cream-dark);display:flex;gap:8px;padding:12px 16px}.quick-date-btn{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);color:var(--text-muted);flex:1 1;font-size:.8rem;padding:8px 12px}.quick-date-btn:hover{border-color:var(--sage);color:var(--sage)}.quick-date-btn.active{background:var(--sage);border-color:var(--sage);color:#fff}.picker-footer{background:var(--navy);padding:10px 16px;text-align:center}.keyboard-hint{color:#fff9;font-size:.7rem}@media (max-width:600px){.dispatch-date-nav{flex-wrap:wrap;gap:6px;padding:10px}.date-display{justify-content:center;margin-bottom:4px;min-width:0;min-width:auto;order:-1;width:100%}.nav-btn.week-btn{flex:1 1}.nav-btn.day-btn{flex:none}.date-picker-dropdown{max-width:340px;width:calc(100vw - 32px)}.picker-quick-dates{flex-wrap:wrap}.quick-date-btn{flex:1 1 45%}.picker-footer{display:none}}.recurring-modal-wrapper{align-items:center;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:9999}.recurring-modal-wrapper .modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;left:0;position:fixed;right:0;top:0;z-index:9998}.recurring-modal{animation:modalSlideIn .25s ease;background:#fff;background:var(--white,#fff);border-radius:12px;border-radius:var(--radius-xl,12px);box-shadow:0 25px 50px #00000059;display:flex;flex-direction:column;max-height:90vh;max-width:720px;overflow:hidden;position:relative;width:100%;z-index:9999}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.recurring-modal .modal-header{align-items:center;background:linear-gradient(135deg,var(--sage) 0,var(--sage-light) 100%);color:#fff;display:flex;justify-content:space-between;padding:20px 24px}.recurring-modal .header-content h2{font-family:var(--font-heading);font-size:1.35rem;margin-bottom:4px}.recurring-modal .header-content p{font-size:.85rem;opacity:.9}.recurring-modal .close-btn{align-items:center;border-radius:50%;color:#fff;display:flex;height:36px;justify-content:center;opacity:.8;transition:all var(--transition-fast);width:36px}.recurring-modal .close-btn:hover{background:#fff3;opacity:1}.recurring-modal .modal-body{flex:1 1;overflow-y:auto;padding:24px}.form-section{margin-bottom:28px}.form-section:last-child{margin-bottom:0}.form-section h3{border-bottom:2px solid var(--cream);color:var(--navy);font-family:var(--font-body);font-size:.9rem;gap:10px;margin-bottom:16px;padding-bottom:10px}.form-section h3 svg{color:var(--sage)}.form-row.three-col{grid-template-columns:2fr 1fr 1fr}.form-group label{color:var(--text-muted)}.form-group input,.form-group select,.form-group textarea{border:2px solid var(--cream-dark);transition:all var(--transition-fast)}.form-group textarea{min-height:60px}.client-search-group,.client-search-wrapper{position:relative}.client-dropdown{border:2px solid var(--sage);border-radius:0 0 var(--radius-md) var(--radius-md);border-top:none;box-shadow:0 4px 12px #0000001a;max-height:200px;z-index:10}.client-option{align-items:center;border-bottom:1px solid var(--cream);display:flex;justify-content:space-between;padding:12px 14px;transition:all var(--transition-fast)}.client-option:hover{background:var(--sage-pale)}.client-option-name{color:var(--navy);font-weight:600}.client-option-phone{color:var(--text-muted);font-size:.8rem}.frequency-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.frequency-option{background:#f8f7f5;border:2px solid #e5e5dc;border-radius:8px;flex-direction:column;padding:14px 12px;text-align:center;transition:all .15s ease}.frequency-option.selected,.frequency-option:hover{background:#e8f0ec;border-color:#2c5f4e}.freq-label{color:#1a2b3c;font-size:.9rem;font-weight:600;margin-bottom:2px}.freq-desc{color:#6b7280;font-size:.7rem}.frequency-option.selected .freq-label{color:#2c5f4e}.days-grid{display:flex;flex-wrap:wrap;gap:8px}.day-btn{background:var(--cream);border:2px solid #0000;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-size:.8rem;font-weight:600;height:48px;transition:all var(--transition-fast);width:48px}.day-btn:hover{background:var(--sage-pale);color:var(--sage)}.day-btn.selected{background:var(--sage);border-color:var(--sage);color:#fff}.duration-select{width:100%}.end-date-input{margin-top:12px}.count-input-wrapper{align-items:center;display:flex;gap:10px;margin-top:12px}.count-input-wrapper input{text-align:center;width:100px}.count-input-wrapper span{color:var(--text-muted);font-size:.9rem}.indefinite-note{align-items:flex-start;background:var(--gold-pale);border-radius:var(--radius-md);color:var(--gold);display:flex;font-size:.85rem;gap:10px;margin-top:12px;padding:12px 14px}.indefinite-note svg{flex-shrink:0;margin-top:2px}.preview-section{background:var(--cream);border-radius:var(--radius-lg);margin-top:20px;padding:20px}.preview-header{margin-bottom:16px}.preview-header h3{align-items:center;border:none;color:var(--navy);display:flex;font-size:.95rem;font-weight:600;gap:8px;margin:0;padding:0}.preview-header h3 svg{color:var(--sage)}.preview-total{align-items:center;background:var(--sage);border-radius:var(--radius-full);color:#fff;display:flex;font-size:.9rem;font-weight:600;gap:6px;padding:8px 14px}.preview-list{display:flex;flex-direction:column;gap:6px}.preview-item{grid-gap:12px;align-items:center;background:var(--white);border-radius:var(--radius-md);display:grid;gap:12px;grid-template-columns:32px 1fr auto auto;padding:10px 14px}.preview-num{align-items:center;background:var(--sage-pale);border-radius:50%;color:var(--sage);display:flex;font-size:.75rem;font-weight:600;height:24px;justify-content:center;width:24px}.preview-date{color:var(--navy);font-size:.9rem;font-weight:500}.preview-time{color:var(--text-muted);font-size:.85rem}.preview-price{color:var(--sage);font-size:.9rem;font-weight:600}.preview-more{color:var(--text-muted);font-size:.85rem;font-style:italic;padding:12px;text-align:center}.preview-note{align-items:center;border-top:1px dashed var(--cream-dark);color:var(--text-muted);display:flex;font-size:.8rem;gap:8px;margin-top:12px;padding-top:12px}.recurring-modal .modal-footer{align-items:center;background:var(--cream);border-top:1px solid var(--cream-dark);display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.recurring-modal .modal-footer .btn{justify-content:center;min-width:140px}@media (max-width:640px){.recurring-modal-wrapper{align-items:flex-end;padding:10px}.recurring-modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:95vh}.form-row,.form-row.three-col{grid-template-columns:1fr}.frequency-grid{grid-template-columns:repeat(2,1fr)}.days-grid{justify-content:center}.preview-header{align-items:flex-start;flex-direction:column;gap:12px}.preview-item{grid-template-columns:28px 1fr auto}.preview-time{display:none}.recurring-modal .modal-footer{flex-direction:column}.recurring-modal .modal-footer .btn{width:100%}}.property-select{background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;font-size:1rem;padding:12px 16px;width:100%}.property-select:focus{border-color:var(--sage);outline:none}.selected-property-info{align-items:center;background:var(--sage-light);border-radius:var(--radius-md);color:var(--sage);display:flex;font-size:.9rem;gap:8px;margin-top:8px;padding:10px 14px}.selected-property-info svg{flex-shrink:0}.announcement-form{padding:8px}.form-error{align-items:center;background:var(--red-light);border-radius:var(--radius-sm);color:var(--red);display:flex;font-size:.9rem;gap:8px;margin-bottom:16px;padding:12px}.announcement-form .form-group{margin-bottom:20px}.announcement-form label{color:var(--navy);display:block;font-size:.9rem;font-weight:500;margin-bottom:8px}.announcement-form input,.announcement-form select,.announcement-form textarea{border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;padding:12px;width:100%}.announcement-form input:focus,.announcement-form select:focus,.announcement-form textarea:focus{border-color:var(--sage);outline:none}.announcement-form textarea{min-height:120px;resize:vertical}.form-hint,.help-text{color:var(--gray-500)}.help-text{font-size:.8rem;margin-top:6px}.send-to-option,.send-to-options{display:flex;gap:12px}.send-to-option{align-items:center;background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-md);cursor:pointer;flex:1 1;padding:16px;transition:all .15s}.send-to-option.selected,.send-to-option:hover{background:var(--sage-light);border-color:var(--sage)}.send-to-option input[type=radio]{display:none}.send-to-option svg{color:var(--sage);flex-shrink:0}.send-to-option div{flex:1 1}.send-to-option strong{color:var(--navy);display:block;font-size:.9rem;margin-bottom:2px}.send-to-option span{color:var(--gray-500);font-size:.8rem}.send-to-btn{align-items:center;background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-md);color:var(--gray-600);cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:500;gap:8px;justify-content:center;padding:12px 16px;transition:all .15s}.send-to-btn:hover{border-color:var(--sage);color:var(--sage)}.send-to-btn.active{background:var(--sage-light);border-color:var(--sage);color:var(--sage-dark)}.checkbox-options{display:flex;flex-direction:column;gap:12px}.checkbox-option{align-items:flex-start;border:1px solid var(--gray-200);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:12px;padding:12px;transition:all .15s}.checkbox-option:hover{background:var(--gray-50)}.checkbox-option input[type=checkbox]{flex-shrink:0;height:18px;margin-top:2px;width:18px}.checkbox-option .option-content{align-items:flex-start;display:flex;flex:1 1;gap:10px}.checkbox-option .option-content svg{color:var(--gray-400);flex-shrink:0;margin-top:2px}.checkbox-option .option-content strong{color:var(--navy);display:block;font-size:.9rem;margin-bottom:2px}.checkbox-option .option-content span{color:var(--gray-500);display:block;font-size:.8rem}.form-actions{border-top:1px solid var(--gray-100);padding-top:16px}.shift-scheduler{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.scheduler-header{align-items:flex-start;border-bottom:1px solid var(--gray-100);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:24px}.scheduler-header h2{align-items:center;color:var(--navy);display:flex;font-family:var(--font-heading);font-size:1.5rem;gap:10px;margin-bottom:4px}.scheduler-header .subtitle{color:var(--gray-500);font-size:.9rem}.header-actions{flex-wrap:wrap}.week-navigation{align-items:center;background:var(--gray-50);border-bottom:1px solid var(--gray-100);display:flex;gap:16px;justify-content:center;padding:16px 24px}.nav-btn{border:1px solid var(--gray-200);color:var(--gray-600);transition:all .15s}.week-label{color:var(--navy);font-size:1.1rem;font-weight:600;min-width:300px;text-align:center}.stats-bar{background:var(--sage-light);border-bottom:1px solid var(--gray-100);display:flex;gap:24px;padding:16px 24px}.stats-bar .stat{align-items:center;display:flex;gap:8px}.stats-bar .stat-value{color:var(--sage-dark);font-size:1.25rem;font-weight:700}.stats-bar .stat-label{color:var(--sage-dark);font-size:.85rem}.stats-bar .stat.warning,.stats-bar .stat.warning .stat-value{color:var(--gold)}.schedule-grid{overflow-x:auto}.schedule-table{border-collapse:collapse;min-width:900px;width:100%}.schedule-table td,.schedule-table th{border-bottom:1px solid var(--gray-100);border-right:1px solid var(--gray-100);padding:12px;text-align:center}.schedule-table td:last-child,.schedule-table th:last-child{border-right:none}.schedule-table th{background:var(--gray-50);color:var(--gray-600);font-size:.8rem;font-weight:600}.employee-header{min-width:180px;text-align:left!important}.day-header{min-width:120px}.day-header.weekend{background:var(--gray-100)}.day-header .day-name{color:var(--navy);display:block;font-size:.85rem;text-transform:none}.day-header .day-date{color:var(--gray-500);display:block;font-size:.75rem;font-weight:400}.employee-cell{background:var(--white);text-align:left!important}.employee-info{align-items:center;display:flex;gap:12px}.employee-avatar{background:var(--sage-light);border-radius:50%;color:var(--sage);font-size:.85rem;font-weight:600;height:36px;width:36px}.employee-details{display:flex;flex-direction:column}.employee-name{font-size:.9rem}.employee-role{color:var(--gray-500);font-size:.75rem;text-transform:capitalize}.shift-cell{height:80px;padding:8px!important;vertical-align:middle}.shift-cell.weekend{background:var(--gray-50)}.shift-block{background:var(--sage-light);border:2px solid var(--sage);border-radius:var(--radius-sm);cursor:pointer;padding:8px;text-align:center;transition:all .15s}.shift-block:hover{background:var(--sage);color:#fff}.shift-block:hover .shift-time{color:#fff}.shift-block:hover .shift-route{color:#fffc}.shift-block:hover .availability-warning{color:#ffffffe6}.shift-block.warning{background:var(--gold-light);border-color:var(--gold)}.shift-time{color:var(--navy);font-size:.85rem;font-weight:600}.shift-route{color:var(--sage-dark);font-size:.7rem;margin-top:2px}.shift-block.warning .shift-route{color:var(--gold)}.availability-warning{align-items:center;color:var(--gold);display:flex;font-size:.65rem;gap:4px;justify-content:center;margin-top:4px}.shift-off{background:var(--gold-light);border:2px solid var(--gold);color:var(--gold);font-size:.8rem;font-weight:500}.shift-off,.shift-unavailable{border-radius:var(--radius-sm);padding:8px}.shift-unavailable{background:var(--gray-100);color:var(--gray-400);font-size:.75rem}.shift-empty{border:2px dashed var(--gray-200);border-radius:var(--radius-sm);color:var(--gray-400);cursor:pointer;font-size:.8rem;padding:8px;transition:all .15s}.shift-empty:hover{background:var(--sage-light);border-color:var(--sage);color:var(--sage)}.shift-form{padding:8px}.shift-form .form-group{margin-bottom:16px}.shift-form label{color:var(--navy);display:block;font-size:.9rem;font-weight:500;margin-bottom:6px}.shift-form input,.shift-form select,.shift-form textarea{border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;padding:10px 12px;width:100%}.shift-form input:focus,.shift-form select:focus,.shift-form textarea:focus{border-color:var(--sage);outline:none}.shift-form .form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.shift-form .form-actions{border-top:1px solid var(--gray-100);display:flex;gap:12px;margin-top:24px;padding-top:16px}.shift-form .form-actions .spacer{flex:1 1}.export-content{padding:8px}.export-options{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.export-option{align-items:center;border:2px solid var(--gray-200);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:16px;padding:16px;transition:all .15s}.export-option.selected,.export-option:hover{background:var(--sage-light);border-color:var(--sage)}.export-option .option-icon{font-size:2rem}.export-option .option-details h4{color:var(--navy);font-weight:600;margin-bottom:4px}.export-option .option-details p{color:var(--gray-500);font-size:.85rem}.preview-section{margin-bottom:24px}.preview-section h4{color:var(--navy);font-weight:600;margin-bottom:12px}.schedule-preview{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);color:var(--navy);font-family:monospace;font-size:.8rem;max-height:250px;overflow-y:auto;padding:16px;white-space:pre-wrap}.export-actions{display:flex;gap:12px;justify-content:flex-end}.success-state{padding:40px 20px;text-align:center}.success-state .success-icon{align-items:center;background:var(--green-light);border-radius:50%;color:var(--green);display:flex;font-size:2rem;height:64px;justify-content:center;margin:0 auto 16px;width:64px}.success-state h3{color:var(--navy);font-family:var(--font-heading);font-size:1.25rem;margin-bottom:8px}.success-state p{color:var(--gray-500)}@media (max-width:1024px){.scheduler-header{align-items:stretch;flex-direction:column}.header-actions{justify-content:flex-start}.week-navigation{flex-wrap:wrap}.week-label{margin-bottom:8px;min-width:auto;order:-1;width:100%}}@media (max-width:640px){.stats-bar{flex-wrap:wrap;gap:16px}.shift-form .form-row{grid-template-columns:1fr}}.dlog-overlay{background:#0000004d;inset:0;position:fixed;z-index:900}.dlog-panel{animation:dlogSlideIn .2s ease-out;background:#fff;box-shadow:-4px 0 24px #0000001f;display:flex;flex-direction:column;height:100vh;max-width:100vw;position:fixed;right:0;top:0;width:420px;z-index:901}@keyframes dlogSlideIn{0%{transform:translateX(100%)}to{transform:translateX(0)}}.dlog-header{border-bottom:1px solid #e2e8f0;flex-shrink:0;padding:20px 20px 0}.dlog-header-top{align-items:center;display:flex;justify-content:space-between}.dlog-header h2{color:#1a2634;font-size:1.2rem;font-weight:700;margin:0}.dlog-close{align-items:center;background:#f1f5f9;border:none;border-radius:8px;color:#64748b;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .15s;width:32px}.dlog-close:hover{background:#e2e8f0;color:#1a2634}.dlog-subtitle{color:#94a3b8;font-size:.8rem;margin:4px 0 12px}.dlog-filter-tabs{border-bottom:2px solid #0000;display:flex;gap:0;margin:0 -20px;padding:0 20px}.dlog-filter-tabs button{background:none;border:none;border-bottom:2px solid #0000;color:#94a3b8;cursor:pointer;flex:1 1;font-size:.82rem;font-weight:600;margin-bottom:-1px;padding:10px 0;transition:all .15s}.dlog-filter-tabs button:hover{color:#475569}.dlog-filter-tabs button.active{border-bottom-color:#2c5f4e;border-bottom-color:var(--sage,#2c5f4e);color:#2c5f4e;color:var(--sage,#2c5f4e)}.dlog-add-note{border-bottom:1px solid #f1f5f9;flex-shrink:0;padding:12px 20px}.dlog-add-note-btn{align-items:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;color:#94a3b8;cursor:pointer;display:flex;font-size:.85rem;gap:8px;padding:10px 14px;transition:all .15s;width:100%}.dlog-add-note-btn:hover{background:#f0f9f4;border-color:#2c5f4e;border-color:var(--sage,#2c5f4e);color:#2c5f4e;color:var(--sage,#2c5f4e)}.dlog-note-input textarea{border:1px solid #cbd5e1;border-radius:8px;font-family:inherit;font-size:.85rem;outline:none;padding:10px 12px;resize:none;transition:border-color .15s;width:100%}.dlog-note-input textarea:focus{border-color:#2c5f4e;border-color:var(--sage,#2c5f4e)}.dlog-note-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.dlog-cancel-btn{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#64748b}.dlog-cancel-btn,.dlog-send-btn{cursor:pointer;font-size:.8rem;padding:6px 14px}.dlog-send-btn{align-items:center;background:#2c5f4e;background:var(--sage,#2c5f4e);border:none;border-radius:6px;color:#fff;display:flex;font-weight:600;gap:6px;transition:opacity .15s}.dlog-send-btn:disabled{cursor:not-allowed;opacity:.4}.dlog-body{flex:1 1;overflow-y:auto;padding:0 20px 20px}.dlog-empty{align-items:center;color:#94a3b8;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.dlog-empty p{color:#64748b;font-size:.95rem;font-weight:600;margin:12px 0 4px}.dlog-empty span{font-size:.8rem}.dlog-date-group{margin-top:16px}.dlog-date-label{background:#fff;color:#94a3b8;font-size:.7rem;font-weight:700;letter-spacing:.5px;padding:8px 0;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;z-index:1}.dlog-entry{background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;margin-bottom:8px;overflow:hidden;transition:all .15s}.dlog-entry:hover{border-color:#e2e8f0}.dlog-entry-main{align-items:flex-start;cursor:pointer;display:flex;gap:10px;padding:12px}.dlog-icon{align-items:center;border-radius:8px;display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.dlog-entry-content{flex:1 1;min-width:0}.dlog-desc{color:#1a2634;font-size:.85rem;line-height:1.4;margin:0}.dlog-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.dlog-user{color:#2c5f4e;color:var(--sage,#2c5f4e);font-size:.72rem;font-weight:600}.dlog-time{color:#94a3b8;font-size:.72rem}.dlog-job-date{background:#e2e8f0;border-radius:4px;color:#94a3b8;font-size:.68rem;padding:1px 6px}.dlog-comment-badge{align-items:center;background:#e2e8f0;border-radius:10px;color:#64748b;display:flex;flex-shrink:0;font-size:.72rem;gap:4px;padding:2px 8px}.dlog-expanded{border-top:1px solid #e2e8f0;padding:0 12px 12px}.dlog-details{border-bottom:1px solid #f1f5f9;padding:10px 0}.dlog-detail-row{display:flex;font-size:.78rem;gap:8px;padding:2px 0}.dlog-detail-label{color:#94a3b8;font-weight:600;min-width:45px}.dlog-detail-row span:last-child{color:#475569}.dlog-comments{padding:10px 0 6px}.dlog-comment{background:#fff;border:1px solid #f1f5f9;border-radius:8px;margin-bottom:6px;padding:8px 10px}.dlog-comment strong{color:#2c5f4e;color:var(--sage,#2c5f4e);font-size:.75rem}.dlog-comment-time{color:#94a3b8;font-size:.68rem;margin-left:8px}.dlog-comment p{color:#334155;font-size:.82rem;line-height:1.4;margin:4px 0 0}.dlog-add-comment{display:flex;gap:6px;margin-top:8px}.dlog-add-comment input{border:1px solid #e2e8f0;border-radius:8px;flex:1 1;font-family:inherit;font-size:.82rem;outline:none;padding:8px 12px}.dlog-add-comment input:focus{border-color:#2c5f4e;border-color:var(--sage,#2c5f4e)}.dlog-add-comment button{align-items:center;background:#2c5f4e;background:var(--sage,#2c5f4e);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:34px;justify-content:center;transition:opacity .15s;width:34px}.dlog-add-comment button:disabled{cursor:not-allowed;opacity:.3}@media (max-width:480px){.dlog-panel{width:100vw}}.route-builder{height:calc(100vh - 320px);min-height:400px}.route-columns-wrapper{-webkit-overflow-scrolling:touch;height:100%;overflow-x:auto;padding-bottom:16px;scroll-behavior:smooth}.route-columns{display:flex;gap:16px;height:100%;min-width:-webkit-fit-content;min-width:fit-content;padding:4px}.route-column{background:var(--white);border-radius:var(--radius-lg);border-top:4px solid var(--route-color,var(--sage));box-shadow:var(--shadow-sm);display:flex;flex-direction:column;max-height:100%;min-width:320px;transition:box-shadow .2s ease;width:320px}.route-column:hover{box-shadow:var(--shadow-md)}.route-column.unassigned{border-top-color:#dc2626}.route-column.new-route{border-top-color:var(--cream-dark);justify-content:flex-start;padding:16px}.column-header{background:var(--cream);border-bottom:1px solid var(--cream-dark);padding:16px}.column-title-row{align-items:center;display:flex;gap:10px;margin-bottom:12px}.column-icon{font-size:1.2rem}.route-letter{align-items:center;border-radius:6px;color:#fff;display:flex;flex-shrink:0;font-size:.85rem;font-weight:700;height:28px;justify-content:center;width:28px}.column-header h3{color:var(--navy);cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;margin:0}.column-header h3:hover{color:var(--sage)}.job-count{background:var(--cream-dark);border-radius:10px;color:var(--text-muted);font-size:.75rem;font-weight:600;padding:2px 8px}.route-name-input{border:2px solid var(--sage);border-radius:var(--radius-sm);flex:1 1;font-size:1rem;font-weight:600;outline:none;padding:4px 8px}.delete-route{opacity:0;transition:opacity .15s ease}.column-title-row:hover .delete-route{opacity:1}.btn-icon-sm{border-radius:var(--radius-sm);transition:all .15s ease}.team-section{margin-bottom:12px}.team-assign-btn{align-items:center;background:#fff;border:1px solid var(--cream-dark);border-radius:var(--radius-md);color:var(--navy);cursor:pointer;display:flex;font-size:.85rem;gap:8px;padding:8px 12px;transition:all .15s ease;width:100%}.team-assign-btn:hover{background:var(--sage-pale);border-color:var(--sage)}.column-stats{display:flex;flex-wrap:wrap;gap:8px}.column-stats .stat{background:#fff;border-radius:20px;color:var(--text-muted);font-size:.75rem;font-weight:500;padding:4px 10px}.column-stats .stat.revenue{background:#ecfdf5;color:#059669}.column-jobs{flex:1 1;overflow-y:auto;padding:12px}.rb-job-card{background:#fff;border:1px solid var(--cream-dark);border-left:4px solid var(--card-color,var(--sage));border-radius:var(--radius-md);cursor:grab;margin-bottom:10px;padding:14px;position:relative;transition:all .15s ease}.rb-job-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.rb-job-card:active{cursor:grabbing}.rb-job-card.unassigned{border-left-color:#dc2626}.rb-job-card.needs-rebooking{background:#fffbeb}.rb-drive-time-badge{background:var(--navy);border-radius:10px;color:#fff;left:50%;padding:2px 8px;top:-8px;transform:translateX(-50%);z-index:1}.rb-drive-time-badge,.rb-rebooking-flag{align-items:center;display:flex;font-size:.65rem;font-weight:600;gap:4px;position:absolute}.rb-rebooking-flag{background:#fef3c7;border-radius:4px;color:#d97706;padding:3px 8px;right:8px;top:8px}.rb-job-time-section{margin-bottom:10px}.rb-time-main{color:var(--navy);font-size:1.35rem;font-weight:700}.rb-time-meta{color:var(--text-muted);font-size:.8rem;margin-top:2px}.rb-job-number{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:.8rem;font-weight:700;height:26px;justify-content:center;position:absolute;right:14px;top:14px;width:26px}.rb-job-client{margin-bottom:10px}.rb-client-name{color:var(--navy);font-size:.95rem;font-weight:600;margin-bottom:3px}.rb-client-address{align-items:center;color:var(--text-muted);display:flex;font-size:.8rem;gap:4px}.rb-job-details-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.rb-service-type{background:#e8f0ed;border-radius:4px;color:var(--sage);font-size:.7rem;font-weight:600;padding:3px 8px}.rb-sqft{color:var(--text-muted);font-size:.75rem}.rb-price{color:#059669;font-size:.95rem;font-weight:700;margin-left:auto}.rb-job-actions-row{align-items:center;border-top:1px solid var(--cream);display:flex;justify-content:space-between;padding-top:10px}.rb-move-btns{display:flex;gap:4px}.rb-move-btn{align-items:center;background:var(--cream);border:1px solid var(--cream-dark);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;font-size:1rem;height:28px;justify-content:center;transition:all .15s ease;width:36px}.rb-move-btn:hover{background:var(--sage);border-color:var(--sage);color:#fff}.rb-quick-actions{display:flex;gap:6px}.rb-quick-action-btn{align-items:center;background:#fff;border:1px solid var(--cream-dark);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;font-size:.75rem;gap:4px;padding:6px 10px;transition:all .15s ease}.rb-quick-action-btn:hover{border-color:var(--sage);color:var(--sage)}.rb-quick-action-btn.primary{background:var(--sage);border-color:var(--sage);color:#fff}.rb-quick-action-btn.primary:hover{background:var(--sage-light)}.empty-column{color:var(--text-muted);padding:40px 20px;text-align:center}.empty-column svg{color:#10b981;margin-bottom:8px}.add-route-btn{align-items:center;background:#0000;border:2px dashed var(--cream-dark);border-radius:var(--radius-lg);color:var(--text-muted);cursor:pointer;display:flex;flex-direction:column;font-size:.9rem;gap:8px;height:200px;justify-content:center;min-width:160px;transition:all .15s ease}.add-route-btn:hover{background:#2c5f4e0d;border-color:var(--sage);color:var(--sage)}.new-route-form{display:flex;flex-direction:column;gap:12px}.new-route-input{border:1px solid var(--cream-dark);border-radius:var(--radius-md);font-size:.95rem;padding:12px}.new-route-input:focus{border-color:var(--sage);outline:none}.new-route-actions{display:flex;gap:8px}.schedule-next-modal,.team-modal{background:#fff;border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:90vh;max-width:400px;width:100%}.schedule-next-modal{max-width:500px}.modal-header{padding:16px 20px}.modal-header h3{font-size:1.1rem}.modal-body{flex:1 1;overflow-y:auto;padding:20px}.modal-hint{color:var(--text-muted);font-size:.85rem;margin-bottom:16px}.modal-footer{border-top:1px solid var(--cream-dark)}.team-list{flex-direction:column;gap:10px}.team-member-row{align-items:center;display:flex;gap:10px}.team-toggle{border:none;border-radius:var(--radius-md);flex:1 1;font-size:.9rem;font-weight:500;padding:10px 14px}.primary-toggle,.team-toggle{cursor:pointer;transition:all .15s ease}.primary-toggle{background:#fff;border:1px solid var(--cream-dark);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.75rem;padding:6px 12px}.primary-toggle:hover{border-color:var(--gold);color:var(--gold)}.primary-toggle.is-primary{background:var(--gold);border-color:var(--gold);color:#fff}.schedule-next-client{background:var(--cream);border-radius:var(--radius-md);margin-bottom:20px;padding:14px 16px}.schedule-next-client strong{color:var(--navy);display:block;margin-bottom:4px}.schedule-next-client span{color:var(--text-muted);display:block;font-size:.85rem;margin-bottom:8px}.frequency-badge{background:var(--sage-pale);border-radius:4px;color:var(--sage);display:inline-block;font-size:.75rem;font-weight:600;padding:4px 10px}.week-nav{justify-content:space-between;margin-bottom:16px}.week-nav span{color:var(--navy);font-weight:600}.week-calendar{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(7,1fr);margin-bottom:20px}.day-cell{align-items:center;background:var(--cream);border:2px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;padding:10px 6px;transition:all .15s ease}.day-cell:hover{background:var(--sage-pale);border-color:var(--sage)}.day-cell.selected{background:var(--sage);border-color:var(--sage);color:#fff}.day-name{font-size:.65rem;margin-bottom:2px}.day-num{font-size:1.1rem;font-weight:700}.day-jobs{font-size:.6rem;margin-top:4px;opacity:.7}.day-cell.selected .day-jobs{opacity:.9}.time-selection{margin-bottom:20px}.time-selection label{color:var(--navy);display:block;font-size:.85rem;font-weight:500;margin-bottom:6px}.time-selection input{border:1px solid var(--cream-dark);border-radius:var(--radius-md);font-size:.95rem;padding:10px 12px;width:100%}.day-preview{background:var(--cream);border-radius:var(--radius-md);padding:14px}.day-preview h4{color:var(--navy);font-size:.9rem;margin:0 0 10px}.day-preview-jobs{display:flex;flex-direction:column;gap:6px}.preview-job{display:flex;font-size:.85rem;gap:10px}.preview-time{color:var(--sage);font-weight:600;min-width:70px}.preview-name{color:var(--navy)}.no-jobs-preview{color:var(--text-muted);font-size:.85rem;padding:10px;text-align:center}@media (max-width:768px){.route-builder{height:calc(100vh - 360px)}.route-columns-wrapper{scroll-snap-type:x mandatory}.route-column{min-width:85vw;scroll-snap-align:start;width:85vw}.add-route-btn{height:150px;min-width:60vw}.job-card{padding:12px}.time-main{font-size:1.2rem}.week-calendar{gap:4px}.day-cell{padding:8px 4px}.day-num{font-size:1rem}.schedule-next-modal{max-width:95vw}.route-columns-wrapper:after{bottom:4px;color:var(--text-muted);content:"← swipe →";font-size:.7rem;left:50%;opacity:.6;position:absolute;transform:translateX(-50%)}}.dispatch-page{max-width:100%;padding:24px}.dispatch-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.dispatch-header h1{color:var(--navy);font-size:1.75rem;font-weight:600;margin:0}.dispatch-header p{color:var(--text-muted);margin:4px 0 0}.stats-grid{grid-template-columns:repeat(5,1fr)}.stat-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);gap:12px}.stat-icon{height:40px;width:40px}.stat-info{display:flex;flex-direction:column}.stat-label{font-size:.85rem}.capacity-alert{align-items:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:var(--radius-lg);display:flex;justify-content:space-between;margin-bottom:24px;padding:16px 20px}.capacity-content{align-items:center;color:#92400e;display:flex;gap:12px}.capacity-content strong{color:#92400e}.capacity-content span{color:#a16207;margin-left:8px}.capacity-actions{align-items:center;display:flex;gap:8px}.btn-warning{background:#d97706}.btn-warning:hover{background:#b45309}.btn-icon{background:none;color:#a16207;padding:4px}.dispatch-controls{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.view-toggle{gap:8px}.toggle-btn{background:var(--white);border:none;border-radius:var(--radius-md);color:var(--navy);padding:10px 16px;transition:all var(--transition-fast)}.toggle-btn.active{background:var(--sage);color:var(--white)}.toggle-btn:hover:not(.active){background:var(--cream)}.filter-controls{align-items:center;display:flex;gap:12px}.filter-dropdown{position:relative}.filter-btn{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);gap:8px;padding:10px 16px}.filter-btn.active{background:var(--sage-pale);border:2px solid var(--sage)}.clear-filter{cursor:pointer;margin-left:4px}.filter-menu{background:var(--white);border-radius:var(--radius-lg);box-shadow:0 4px 20px #00000026;left:0;margin-top:8px;min-width:200px;padding:8px;position:absolute;top:100%;z-index:100}.filter-menu button{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:10px;padding:10px 12px;text-align:left;width:100%}.filter-menu button:hover{background:var(--cream)}.team-dot{border-radius:50%;height:10px;width:10px}.search-box{position:relative}.search-box svg{left:12px;position:absolute;top:50%;transform:translateY(-50%)}.search-box input{border:1px solid var(--cream-dark);border-radius:var(--radius-md);padding:10px 12px 10px 40px;width:200px}.date-nav{align-items:center;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;gap:16px;margin-bottom:20px;padding:12px 20px}.nav-btn{background:none;border:none;padding:8px}.date-pills{display:flex;flex:1 1;gap:8px;justify-content:center}.date-pill{background:#0000;border:none;border-radius:var(--radius-md);color:var(--navy);cursor:pointer;font-weight:500;padding:10px 20px;position:relative}.date-pill.active{background:var(--sage);color:var(--white)}.date-pill:hover:not(.active){background:var(--cream)}.today-dot{background:var(--gold);border-radius:50%;bottom:4px;height:4px;left:50%;position:absolute;transform:translateX(-50%);width:4px}.date-pill.active .today-dot{background:var(--white)}.map-layout{grid-gap:20px;display:grid;gap:20px;grid-template-columns:420px 1fr;height:calc(100vh - 380px);min-height:500px}.routes-sidebar{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--cream);padding:16px 20px}.sidebar-header h3{font-size:1rem;font-weight:600;margin:0}.sidebar-header p{color:var(--text-muted);font-size:.85rem;margin:4px 0 0}.routes-list{flex:1 1;overflow-y:auto;padding:12px}.route-card{background:var(--cream);border-radius:var(--radius-md);margin-bottom:12px;overflow:hidden}.route-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:14px}.route-header:hover{background:#00000005}.route-team{align-items:center;gap:10px}.route-team,.team-avatars{display:flex}.team-avatar{border:2px solid #fff;color:#fff;font-size:.75rem;height:32px;width:32px}.team-info{display:flex;flex-direction:column}.team-name{font-size:.9rem}.team-stats{color:var(--text-muted);font-size:.75rem}.route-meta{align-items:center;display:flex;gap:8px}.route-revenue{color:var(--sage);font-weight:700}.route-stats-bar{display:flex;gap:12px;padding:0 14px 14px}.route-stats-bar span{align-items:center;color:var(--text-muted);display:flex;font-size:.75rem;gap:4px}.shift-times-bar{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-top:1px solid #a5d6a7;font-size:.85rem;gap:8px;padding:10px 14px}.leave-by,.shift-times-bar{align-items:center;display:flex}.leave-by{color:var(--sage);gap:4px}.leave-by strong{color:var(--navy);font-weight:700}.shift-time{align-items:center;display:flex;font-weight:500;gap:4px}.shift-arrow,.shift-time{color:var(--text-muted)}.shift-total{background:var(--sage);border-radius:10px;color:#fff;font-size:.75rem;font-weight:600;margin-left:auto;padding:2px 8px}.route-details{border-top:1px solid var(--cream-dark);padding:14px}.btn-google-maps{align-items:center;background:#4285f4;border-radius:var(--radius-md);color:#fff;display:flex;font-weight:500;gap:8px;justify-content:center;margin-bottom:14px;padding:12px;text-decoration:none;width:100%}.btn-google-maps:hover{background:#3367d6}.route-stops{display:flex;flex-direction:column}.route-stop{display:flex;gap:12px}.route-stop.office-stop{padding:8px 0}.stop-marker{flex-direction:column}.marker-icon,.stop-marker{align-items:center;display:flex}.marker-icon{border-radius:50%;color:#fff;font-size:.8rem;font-weight:600;height:28px;justify-content:center;width:28px}.marker-icon.office{background:var(--navy)}.marker-icon.job{background:var(--sage)}.marker-line{background:var(--cream-dark);flex:1 1;margin:4px 0;min-height:20px;width:2px}.stop-content{flex:1 1;padding-bottom:8px}.office-content .stop-label{color:var(--navy);display:block;font-size:.9rem;font-weight:600}.office-content .stop-address{color:var(--text-muted);font-size:.75rem}.office-content .stop-note{color:var(--sage);display:block;font-size:.75rem;margin-top:2px}.drive-indicator{align-items:center;display:flex;gap:12px;padding-left:13px}.drive-line{background:var(--cream-dark);height:24px;width:2px}.drive-badge{align-items:center;background:#fef3c7;border-radius:12px;color:#92400e;display:flex;font-size:.7rem;font-weight:500;gap:6px;padding:4px 10px}.stop-card{background:var(--white);border:2px solid #0000;border-radius:var(--radius-md);cursor:pointer;flex:1 1;margin-bottom:8px;padding:12px;transition:all var(--transition-fast)}.stop-card:hover{border-color:var(--cream-dark)}.stop-card.selected{border-color:var(--sage)}.stop-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:6px}.stop-name{display:block;font-size:.9rem;font-weight:600}.stop-address{color:var(--text-muted);font-size:.8rem}.status-badge{border-radius:10px;padding:2px 8px}.status-badge.scheduled{background:#faf6f1;color:#b8926a}.status-badge.en_route{background:#f5f3ff;color:#8b5cf6}.status-badge.in_progress{background:#eff6ff;color:#2563eb}.status-badge.completed{background:#f0fdf4;color:#16a34a}.status-badge.cancelled{background:#fef2f2;color:#dc2626}.status-badge.large{border-radius:20px;font-size:.85rem;padding:6px 14px}.stop-details{color:var(--text-muted);display:flex;font-size:.75rem;gap:12px}.stop-details span{align-items:center;display:flex;gap:4px}.stop-price{color:var(--sage)!important;font-weight:600}.stop-notes{background:#fef3c7;border-radius:var(--radius-sm);color:#92400e;font-size:.75rem;margin-top:8px;padding:8px}.stop-actions{display:flex;gap:6px;margin-top:8px}.action-btn{border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;gap:4px;padding:6px 10px;text-decoration:none}.action-btn.directions{background:var(--sage-pale);color:var(--sage)}.action-btn.call{background:var(--cream);color:var(--text-muted)}.map-container{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;position:relative}.map-error,.map-loading{align-items:center;background:var(--cream);display:flex;flex-direction:column;gap:16px;inset:0;justify-content:center;position:absolute}.map-error h3{color:var(--navy);margin:0}.map-error p{color:var(--text-muted);margin:0}.spinner{animation:spin 1s linear infinite;border:4px solid var(--cream-dark);border-radius:50%;border-top-color:var(--sage);height:40px;width:40px}.map-legend{background:var(--white);border-radius:var(--radius-md);bottom:20px;box-shadow:var(--shadow-md);left:20px;padding:14px 18px;position:absolute}.map-legend h4{color:var(--text-muted);font-size:.75rem;font-weight:600;margin:0 0 10px;text-transform:uppercase}.legend-item{font-size:.8rem;gap:8px;margin-bottom:6px}.legend-item,.legend-marker{align-items:center;display:flex}.legend-marker{border-radius:50%;color:#fff;font-size:.6rem;font-weight:700;height:20px;justify-content:center;width:20px}.legend-marker.office{background:var(--navy)}.legend-line{border-radius:2px;height:3px;width:20px}.office-card{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-md);gap:12px;padding:14px 18px;position:absolute;right:20px;top:20px}.office-card,.office-icon{align-items:center;display:flex}.office-icon{background:var(--navy);border-radius:50%;color:#fff;height:36px;justify-content:center;width:36px}.office-info{display:flex;flex-direction:column}.office-name{font-size:.9rem;font-weight:600}.office-address{color:var(--text-muted);font-size:.75rem}.jobs-list{display:flex;flex-direction:column;gap:12px}.job-card{background:var(--white);border:2px solid #0000;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;gap:16px;padding:20px;transition:all var(--transition-fast)}.job-card:hover{border-color:var(--cream-dark)}.job-card.selected{border-color:var(--sage)}.job-time-block{background:var(--cream);border-radius:var(--radius-md);min-width:80px;padding:12px 16px;text-align:center}.job-time{color:var(--navy);display:block;font-size:1.1rem;font-weight:600}.job-duration{color:var(--text-muted);font-size:.8rem}.job-info{flex:1 1}.job-header{align-items:center;display:flex;gap:10px;margin-bottom:6px}.job-header h3{font-size:1.1rem;font-weight:600;margin:0}.badge{border-radius:12px;font-size:.75rem;font-weight:600;padding:3px 10px}.badge.first-clean,.badge.status.scheduled{background:#faf6f1;color:#b8926a}.badge.status.en_route{background:#f5f3ff;color:#8b5cf6}.badge.status.in_progress{background:#eff6ff;color:#2563eb}.badge.status.completed{background:#f0fdf4;color:#16a34a}.badge.status.cancelled{background:#fef2f2;color:#dc2626}.job-address{font-size:.9rem;gap:4px;margin:0}.job-address,.job-meta{align-items:center;display:flex}.job-meta{gap:12px;margin-top:10px}.service-badge{background:var(--sage-pale);color:var(--sage);font-weight:500}.service-badge,.team-badge{border-radius:var(--radius-sm);font-size:.8rem;padding:4px 10px}.team-badge{background:var(--cream);border-left:3px solid var(--sage);color:var(--text-muted)}.team-badge.large{border-left-width:4px;border-radius:var(--radius-md);padding:8px 14px}.drive-info{align-items:center;color:var(--text-muted);display:flex;font-size:.8rem;gap:4px}.job-actions{text-align:right}.job-price{color:var(--sage);display:block;font-size:1.25rem;font-weight:700;margin-bottom:8px}.action-buttons{gap:8px;justify-content:flex-end}.action-buttons .action-btn{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-sm);color:var(--text-muted);padding:8px}.action-buttons .action-btn:hover{background:var(--cream)}.calendar-placeholder,.empty-routes,.empty-state{align-items:center;background:var(--white);border-radius:var(--radius-lg);color:var(--text-muted);display:flex;flex-direction:column;justify-content:center;padding:60px}.calendar-placeholder h3,.empty-routes h3,.empty-state h3{color:var(--text-muted);margin:16px 0 8px}.calendar-placeholder p,.empty-routes p,.empty-state p{color:var(--text-light);margin:0}.sidebar-overlay{background:#0000004d;left:0;z-index:50}.job-sidebar,.sidebar-overlay{bottom:0;position:fixed;right:0;top:0}.job-sidebar{background:var(--white);box-shadow:-4px 0 20px #0000001a;overflow-y:auto;padding:24px;width:440px;z-index:100}.job-sidebar .sidebar-header{align-items:center;border:none;display:flex;justify-content:space-between;margin-bottom:20px;padding:0}.job-sidebar .sidebar-header h2{font-size:1.25rem;font-weight:600;margin:0}.close-btn{border-radius:var(--radius-md);padding:8px 12px}.client-card{background:var(--cream);border-radius:var(--radius-lg);gap:12px;margin:20px 0 12px;padding:16px}.client-avatar,.client-card{align-items:center;display:flex}.client-avatar{background:var(--sage);border-radius:50%;color:#fff;font-weight:600;height:48px;justify-content:center;width:48px}.client-info{display:flex;flex-direction:column}.client-service{color:var(--text-muted);font-size:.85rem}.client-service.editable{align-items:center;border-radius:4px;cursor:pointer;display:inline-flex;font-weight:600;gap:5px;padding:2px 6px;transition:background .15s}.client-service.editable:hover{background:#0000000a}.client-service.editable .edit-icon{opacity:0;transition:opacity .15s}.client-service.editable:hover .edit-icon{opacity:.6}.inline-edit-select{background:#fff;border:2px solid #2c5f4e;border:2px solid var(--sage,#2c5f4e);border-radius:6px;color:#1a2634;color:var(--navy,#1a2634);font-family:sans-serif;font-family:var(--font-sans,sans-serif);font-size:.82rem;font-weight:600;outline:none;padding:4px 8px}.inline-edit-area{display:flex;flex-direction:column;gap:8px}.inline-edit-textarea{border:2px solid #2c5f4e;border:2px solid var(--sage,#2c5f4e);border-radius:8px;color:#1a2634;color:var(--navy,#1a2634);font-family:sans-serif;font-family:var(--font-sans,sans-serif);font-size:.82rem;line-height:1.5;outline:none;padding:10px 12px;resize:vertical;width:100%}.inline-edit-actions{display:flex;gap:8px;justify-content:flex-end}.notes-box.empty{background:#f8f7f5;background:var(--cream,#f8f7f5);border-radius:8px;color:#9ca3af;font-size:.82rem;font-style:italic;padding:10px 14px}.notes-box.empty:hover{background:#ede9e3}.btn-notify{background:#eff6ff!important;border:1px solid #bfdbfe!important;color:#2563eb!important}.btn-notify:hover{background:#dbeafe!important}.series-modal{max-width:420px}.notify-modal{max-width:460px}.client-actions{display:flex;gap:8px;margin-bottom:20px}.client-actions .btn{flex:1 1}.detail-section{margin-bottom:20px}.detail-section h3{color:var(--text-muted);font-size:.8rem;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.detail-row{gap:10px}.detail-row svg{color:var(--text-muted)}.detail-row div{display:flex;flex-direction:column}.text-muted{font-size:.9rem}.team-list{display:flex;flex-wrap:wrap;gap:8px}.notes-box{background:#fef3c7;border-radius:var(--radius-md);color:#92400e;font-size:.9rem;padding:12px}.price-card{background:linear-gradient(135deg,var(--sage) 0,#3a7a65 100%);border-radius:var(--radius-lg);color:#fff;margin-bottom:20px;padding:20px}.price-label{display:block;font-size:.85rem;opacity:.9}.price-value{font-size:2rem;font-weight:700}.sidebar-actions{display:flex;flex-direction:column;gap:10px}.full-width{width:100%}.btn-success{color:#fff}.btn-success:hover{background:#15803d}@media (max-width:1400px){.stats-grid{grid-template-columns:repeat(3,1fr)}}.unassigned-alert{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #f87171;border-radius:var(--radius-lg);margin-bottom:24px;padding:16px 20px}.unassigned-alert .alert-content{align-items:center;color:#b91c1c;display:flex;gap:12px;margin-bottom:12px}.unassigned-alert .alert-content strong{display:block}.unassigned-alert .alert-content span{font-size:.85rem;opacity:.8}.unassigned-jobs-quick{display:flex;flex-wrap:wrap;gap:8px}.quick-assign-btn{align-items:center;background:#fff;border:1px solid #fca5a5;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:8px;padding:8px 12px;transition:all var(--transition-fast)}.quick-assign-btn:hover{background:#fef2f2;border-color:#f87171}.job-time-quick{color:var(--navy);font-weight:600}.job-name-quick{color:var(--text-muted)}.job-drive-quick{align-items:center;background:var(--sage-pale);border-radius:4px;color:var(--sage);display:flex;font-size:.75rem;font-weight:600;gap:3px;padding:2px 6px}.stat-card.highlight-warning{background:#fffbeb;border:2px solid #f59e0b}.stat-card.highlight-danger{background:#fef2f2;border:2px solid #dc2626}.unscheduled-alert{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:var(--radius-lg);margin-bottom:24px;padding:16px 20px}.unscheduled-alert .alert-content{align-items:center;color:#92400e;display:flex;gap:12px;margin-bottom:16px}.unscheduled-alert .alert-content svg{flex-shrink:0}.unscheduled-alert .alert-content strong{display:block;font-size:1rem}.unscheduled-alert .alert-content span{font-size:.85rem;opacity:.8}.unscheduled-jobs-list{display:flex;flex-direction:column;gap:8px}.unscheduled-job-card{align-items:center;background:#fff;border:1px solid #fcd34d;border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:12px 16px}.unscheduled-job-info{display:flex;flex-direction:column;gap:2px}.unscheduled-client{color:var(--navy);font-weight:600}.unscheduled-address{color:var(--text-muted);font-size:.85rem}.unscheduled-service{color:var(--sage);font-size:.8rem;font-weight:500}.quote-requests-alert{background:linear-gradient(135deg,#fef3c7,#fed7aa);border:2px solid #f59e0b;border-radius:var(--radius-lg);margin-bottom:24px;padding:16px 20px}.quote-requests-alert .alert-content{align-items:center;color:#92400e;display:flex;gap:12px;margin-bottom:16px}.quote-requests-alert .alert-content svg{flex-shrink:0}.quote-requests-alert .alert-content strong{display:block;font-size:1rem}.quote-requests-alert .alert-content span{font-size:.85rem;opacity:.8}.quote-requests-list{display:flex;flex-direction:column;gap:8px}.quote-request-card{align-items:center;background:#fff;border:1px solid #fcd34d;border-radius:var(--radius-md);cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;transition:all .15s ease}.quote-request-card:hover{background:#fffbeb;border-color:#f59e0b}.quote-request-card svg{color:#f59e0b}.quote-request-info{display:flex;flex-direction:column;gap:2px}.quote-client{color:var(--navy);font-weight:600}.quote-address{color:var(--text-muted);font-size:.85rem}.quote-time{color:#f59e0b;font-size:.8rem;font-weight:500}.view-all-quotes{margin-top:12px;width:100%}.btn-sm{padding:8px 12px}.optimize-panel{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:20px;overflow:hidden}.optimize-header{align-items:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border-bottom:1px solid #f59e0b;display:flex;justify-content:space-between;padding:16px 20px}.optimize-title{align-items:center;color:#92400e;display:flex;gap:12px}.optimize-title h3{font-size:1rem;margin:0}.optimize-title p{font-size:.85rem;margin:2px 0 0;opacity:.8}.suggestions-list{max-height:300px;overflow-y:auto;padding:16px}.no-suggestions{align-items:center;color:#16a34a;display:flex;flex-direction:column;gap:8px;padding:24px}.suggestion-card{align-items:flex-start;background:var(--cream);border-radius:var(--radius-md);display:flex;gap:12px;margin-bottom:10px;padding:12px}.suggestion-card:last-child{margin-bottom:0}.suggestion-icon{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.suggestion-icon.assign{background:#d97706}.suggestion-icon.swap{background:#2563eb}.suggestion-icon.balance{background:#9333ea}.suggestion-icon.add-team{background:#16a34a}.suggestion-content{flex:1 1}.suggestion-title{color:var(--navy);font-weight:600;margin-bottom:4px}.suggestion-swap{align-items:center;display:flex;gap:8px;margin-bottom:4px}.from-team{color:var(--text-muted);text-decoration:line-through}.to-team{color:var(--sage);font-weight:600}.suggestion-reason{color:var(--text-muted);font-size:.85rem}.suggestion-impact{color:#16a34a;font-size:.8rem;font-weight:500;margin-top:4px}.suggestion-impact.savings{color:#2563eb}.optimize-footer{background:var(--cream);border-top:1px solid var(--cream);padding:12px 16px}.btn-sm{padding:6px 12px}.assign-modal-wrapper{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.assign-modal{background:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;position:relative;width:90%;z-index:1001}.assign-modal .modal-header{align-items:center;border-bottom:1px solid var(--cream);display:flex;justify-content:space-between;padding:16px 20px}.assign-modal .modal-header h2{font-size:1.25rem;margin:0}.modal-job-info{background:var(--cream);padding:16px 20px}.job-summary h3{font-size:1.1rem;margin:0 0 4px}.job-summary p{color:var(--text-muted);font-size:.9rem;margin:0 0 8px}.job-details-row{color:var(--text-muted);display:flex;font-size:.85rem;gap:16px}.job-details-row span{align-items:center;display:flex;gap:4px}.job-details-row .price{color:var(--sage);font-weight:700}.team-selection{flex:1 1;overflow-y:auto;padding:16px 20px}.team-selection h4{font-size:1rem;margin:0 0 4px}.selection-hint{color:var(--text-muted);font-size:.85rem;margin:0 0 12px}.team-grid{grid-gap:10px;gap:10px;grid-template-columns:repeat(2,1fr)}.team-member-card{align-items:center;background:var(--cream);border:2px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:10px;padding:12px;transition:all var(--transition-fast)}.team-member-card:hover{border-color:var(--cream-dark)}.team-member-card.selected{background:var(--sage-pale);border-color:var(--sage)}.team-member-card.maxed{opacity:.5}.member-avatar{border-radius:50%;font-size:.85rem}.member-info{flex:1 1}.member-name{display:block;font-size:.9rem}.member-hours{color:var(--text-muted);font-size:.75rem}.member-check{align-items:center;background:var(--sage);border-radius:50%;color:#fff;display:flex;height:24px;justify-content:center;opacity:0;width:24px}.team-member-card.selected .member-check{opacity:1}.modal-footer{background:var(--cream);border-top:1px solid var(--cream);display:flex;gap:10px;justify-content:flex-end;padding:16px 20px}.add-job-modal{max-width:560px}.add-job-form{max-height:60vh;overflow-y:auto;padding:20px}.add-job-form .form-group{margin-bottom:16px}.add-job-form label{color:var(--navy);display:block;font-size:.8rem;font-weight:600;margin-bottom:6px}.add-job-form input,.add-job-form select,.add-job-form textarea{border:1px solid var(--cream-dark);border-radius:var(--radius-md);font-family:inherit;font-size:.9rem;padding:10px 12px;transition:border-color var(--transition-fast);width:100%}.add-job-form input:focus,.add-job-form select:focus,.add-job-form textarea:focus{border-color:var(--sage);outline:none}.add-job-form .form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.add-job-form .form-row.three-col{grid-template-columns:2fr 1fr 1fr}.reschedule-modal{max-width:420px}.reschedule-modal .modal-body{padding:20px}.reschedule-job-info{background:var(--cream);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:4px;margin-bottom:20px;padding:14px 16px}.reschedule-job-info strong{color:var(--navy);font-size:1rem}.reschedule-job-info span{color:var(--text-muted);font-size:.85rem}.reschedule-modal .form-group{margin-bottom:16px}.reschedule-modal label{color:var(--navy);display:block;font-size:.8rem;font-weight:600;margin-bottom:6px}.reschedule-modal input,.reschedule-modal select{border:1px solid var(--cream-dark);border-radius:var(--radius-md);font-family:inherit;font-size:.9rem;padding:10px 12px;width:100%}.reschedule-modal input:focus,.reschedule-modal select:focus{border-color:var(--sage);outline:none}.reschedule-modal .form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.hours-badge{background:var(--sage-pale);border-radius:10px;color:var(--sage);font-size:.75rem;margin-left:auto;padding:2px 6px}.action-btn.reassign{background:#fef3c7;color:#92400e}.action-btn.reassign:hover{background:#fde68a}.no-team-assigned{align-items:center;background:#fef2f2;border-radius:var(--radius-md);color:#b91c1c;display:flex;gap:10px;padding:12px}.no-team-assigned span{flex:1 1}.section-header h3{margin:0}.list-section{margin-bottom:24px}.list-section h3{align-items:center;color:var(--text-muted);display:flex;font-size:1rem;gap:8px;margin-bottom:12px}.unassigned-section h3{color:#b91c1c}.job-card.unassigned{background:#fef2f2;border:2px dashed #fca5a5}.badge.needs-assignment{background:#fef2f2;color:#b91c1c}.legend-marker.unassigned{background:#9ca3af}@media (max-width:1200px){.map-layout{grid-template-columns:360px 1fr}}@media (max-width:1024px){.map-layout{grid-template-columns:1fr;height:auto}.routes-sidebar{max-height:400px}.map-container{min-height:400px}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.dispatch-header{align-items:flex-start;flex-direction:column;gap:16px}.dispatch-controls{flex-direction:column;gap:12px}.filter-controls{justify-content:space-between;width:100%}.job-sidebar{width:100%}.stats-grid{grid-template-columns:1fr 1fr}.stat-card:last-child{grid-column:span 2}}.live-tracking-layout{grid-gap:0;background:#f5f5f5;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:grid;gap:0;grid-template-columns:320px 1fr;height:calc(100vh - 280px);overflow:hidden}.live-sidebar{background:#fff;border-right:1px solid var(--cream-dark);display:flex;flex-direction:column}.live-header{background:linear-gradient(135deg,#1a2634,#2c4a5a);border-bottom:1px solid var(--cream);color:#fff;justify-content:space-between;padding:16px}.live-header,.live-indicator{align-items:center;display:flex}.live-indicator{font-weight:600;gap:8px}.live-indicator .pulse{animation:pulse-glow 2s infinite;color:#22c55e}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.4}}.team-count{background:#fff3;border-radius:12px;font-size:.8rem;padding:4px 10px}.live-team-list{flex:1 1;overflow-y:auto;padding:8px}.no-live-data{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;justify-content:center;padding:40px 20px;text-align:center}.no-live-data svg{margin-bottom:12px;opacity:.3}.no-live-data p{color:var(--navy);font-weight:500;margin:0}.no-live-data span{font-size:.85rem;margin-top:8px}.live-team-card{align-items:center;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:12px;margin-bottom:4px;padding:12px;transition:all .2s ease}.live-team-card:hover{background:var(--cream)}.live-team-card.selected{background:#e8f5e9;border:2px solid var(--sage)}.live-team-card.stale{opacity:.6}.live-avatar{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.9rem;font-weight:700;height:44px;justify-content:center;width:44px}.live-info{flex:1 1;min-width:0}.live-name{color:var(--navy);display:block;font-size:.95rem;font-weight:600}.live-status{display:block;font-size:.8rem;margin-top:2px}.live-status.working{color:#16a34a}.live-status.en_route{color:#d97706}.live-job,.live-status.available{color:var(--text-muted)}.live-job{display:block;font-size:.75rem;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-meta{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.last-update{color:var(--text-muted);font-size:.7rem}.last-update.stale{color:#dc2626}.battery{color:var(--text-muted);font-size:.7rem}.live-map-container{height:100%;position:relative}.live-legend{background:#fff;border-radius:var(--radius-md);bottom:20px;box-shadow:var(--shadow-md);left:20px;min-width:180px;padding:14px;position:absolute}.live-legend h4{color:var(--navy);gap:6px;margin:0 0 10px}.live-legend .legend-item,.live-legend h4{align-items:center;display:flex;font-size:.85rem}.live-legend .legend-item{cursor:pointer;gap:8px;padding:6px 0}.live-legend .legend-item:hover{color:var(--sage)}.legend-dot{border-radius:50%;flex-shrink:0;height:12px;width:12px}.toggle-btn .pulse{animation:pulse-glow 2s infinite}@media (max-width:1024px){.live-tracking-layout{grid-template-columns:1fr;grid-template-rows:200px 1fr}.live-sidebar{border-bottom:1px solid var(--cream-dark);border-right:none}.live-team-list{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding:8px}.live-team-card{flex-shrink:0;min-width:200px}}.damage-reports-section h3{align-items:center;color:#dc2626;display:flex;gap:8px}.damage-report-card{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:12px;padding:12px}.damage-report-card.existing{background:#fffbeb;border-color:#fde68a}.damage-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.damage-type{border-radius:4px;font-size:.75rem;font-weight:600;padding:2px 8px}.damage-type.new{background:#dc2626;color:#fff}.damage-type.existing{background:#f59e0b;color:#fff}.damage-time{font-size:.75rem}.damage-description{color:#374151;font-size:.9rem;line-height:1.4;margin:0 0 8px}.damage-photos{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.damage-photo-thumb{border-radius:6px;height:60px;overflow:hidden;width:60px}.damage-photo-thumb img{height:100%;object-fit:cover;width:100%}.damage-reporter{color:#6b7280;font-size:.75rem}.photos-section h3{align-items:center;display:flex;gap:8px}.photos-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.photo-thumb{aspect-ratio:1;position:relative}.photo-type{background:#0009;border-radius:4px;bottom:4px;color:#fff;font-size:.65rem;font-weight:600;left:4px;padding:2px 6px;position:absolute;text-transform:uppercase}.property-details-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.property-stat{background:#f8f7f5;border-radius:8px;padding:12px;text-align:center}.property-stat.full-width{display:flex;gap:8px;grid-column:1/-1;text-align:left}.property-stat .stat-value{color:var(--navy);display:block;font-size:1.25rem;font-weight:700}.property-stat .stat-label{color:var(--text-muted);display:block;font-size:.75rem;text-transform:uppercase}.property-stat.full-width .stat-value{font-size:.9rem;font-weight:500}.property-stat.full-width .stat-label{font-size:.85rem}.addons-list-dispatch{list-style:none;margin:0;padding:0}.addons-list-dispatch li{background:#f0fdf4;border-radius:6px;color:#166534;font-size:.9rem;margin-bottom:6px;padding:8px 12px}.notes-box.access{background:#fff7ed;border-left:3px solid #f59e0b;color:#9a3412}.notes-box.warning{background:#fef3c7;border-left:3px solid #f59e0b;color:#92400e}.financials-card{background:#f8f7f5;border-radius:12px;margin-bottom:16px;padding:16px}.financial-row{align-items:center;border-bottom:1px solid #e8e6e3;display:flex;justify-content:space-between;padding:8px 0}.financial-row:last-of-type{border-bottom:none}.financial-row.profit{border-bottom:none;border-top:2px solid #2c5f4e;margin-top:4px;padding-top:12px}.financial-row.time-row{border-top:1px dashed #ccc;margin-top:8px;padding-top:12px}.financial-label{color:#666;font-size:.85rem}.financial-value{color:#1a2634;font-size:1rem;font-weight:600}.financial-value.editable{align-items:center;border-radius:6px;cursor:pointer;display:inline-flex;gap:6px;padding:2px 6px;transition:background .15s}.financial-value.editable:hover{background:#f0f5f3}.financial-value.editable .edit-icon{color:#64748b;opacity:0;transition:opacity .15s}.financial-value.editable:hover .edit-icon{opacity:1}.financial-value.editable.editing{align-items:center;background:none;display:inline-flex;gap:2px;padding:0}.financial-value.editable.editing:hover{background:none}.price-edit-input,.price-prefix{color:#1a2634;font-size:1rem;font-weight:600}.price-edit-input{background:#f0f5f3;border:2px solid #2c5f4e;border-radius:6px;outline:none;padding:4px 8px;width:90px}.price-edit-input:focus{box-shadow:0 0 0 3px #2c5f4e26}.financial-value.labor-cost{color:#dc2626}.financial-value.positive{color:#16a34a}.financial-value.negative{color:#dc2626}.labor-percent-bar{background:#e5e7eb;border-radius:12px;height:24px;margin-top:12px;overflow:hidden;position:relative}.labor-percent-fill{border-radius:12px;height:100%;transition:width .3s ease}.labor-percent-text{color:#1a2634;font-size:.75rem;font-weight:600;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.jobs-simple-list{flex:1 1;overflow-y:auto;padding:12px}.job-simple-card{background:#fff;border:1px solid var(--cream-dark);border-radius:8px;cursor:pointer;display:flex;gap:12px;margin-bottom:8px;padding:12px;transition:all .15s ease}.job-simple-card:hover{box-shadow:var(--shadow-sm)}.job-simple-card.selected{background:var(--sage-pale);border-color:var(--sage)}.job-simple-num{align-items:center;background:var(--sage);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.85rem;font-weight:700;height:28px;justify-content:center;width:28px}.job-simple-info{flex:1 1;min-width:0}.job-simple-header{align-items:center;display:flex;gap:8px;margin-bottom:4px}.job-simple-time{color:var(--navy);font-size:.9rem;font-weight:600}.status-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.status-dot.scheduled{background:#2c5f4e}.status-dot.in_progress{background:#2563eb}.status-dot.completed{background:#16a34a}.status-dot.cancelled{background:#dc2626}.job-simple-name{color:var(--navy);font-size:.9rem;font-weight:500}.job-simple-address,.job-simple-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-simple-address{color:var(--text-muted);font-size:.8rem;margin-bottom:4px}.job-simple-meta{color:var(--text-muted);display:flex;font-size:.75rem;gap:12px}.job-simple-meta span:last-child{color:#059669;font-weight:600}.first-apt-badge{align-items:center;animation:pulse-badge 2s ease-in-out infinite;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:9999px;color:#92400e;display:inline-flex;font-size:.65rem;font-weight:700;letter-spacing:.3px;padding:2px 8px}@keyframes pulse-badge{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.job-simple-card.first-apt{background:linear-gradient(90deg,#fffbeb 0,#fff 20%);border-left:3px solid #f59e0b}.job-simple-actions{align-items:center;border-top:1px solid var(--cream-dark);display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px}.btn-welcome{align-items:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:6px;color:#92400e;cursor:pointer;display:flex;font-size:.75rem;font-weight:500;gap:6px;padding:6px 12px;transition:all .15s ease}.btn-welcome:hover{background:#f59e0b;color:#fff}.btn-welcome:disabled{cursor:not-allowed;opacity:.7}.btn-welcome .spin{animation:spin 1s linear infinite}.welcome-sent{background:#ecfdf5;border-radius:6px;color:#059669}.btn-reminder,.welcome-sent{align-items:center;display:flex;font-size:.75rem;font-weight:500;gap:6px;padding:6px 12px}.btn-reminder{background:var(--sage-pale);border:1px solid var(--sage);border-radius:var(--radius-sm);color:var(--sage);cursor:pointer;transition:all .15s ease}.btn-reminder:hover{background:var(--sage);color:#fff}.btn-reminder:disabled{cursor:not-allowed;opacity:.7}.btn-reminder .spin{animation:spin 1s linear infinite}.reminder-sent{align-items:center;background:#ecfdf5;border-radius:var(--radius-sm);color:#059669;display:flex;font-size:.75rem;font-weight:500;gap:6px;padding:6px 12px}.status-dot-legend{border-radius:50%;height:12px;width:12px}.map-job-panel{animation:slideUp .2s ease;background:#fff;border-radius:var(--radius-lg);bottom:20px;box-shadow:var(--shadow-lg);left:20px;max-width:400px;padding:16px;position:absolute;right:20px;z-index:100}.panel-close{align-items:center;background:var(--cream);border-radius:var(--radius-sm);color:var(--text-muted);display:flex;height:28px;justify-content:center;position:absolute;right:12px;top:12px;transition:all .15s ease;width:28px}.panel-close:hover{background:var(--navy);color:#fff}.panel-header{align-items:center;display:flex;gap:10px;margin-bottom:8px}.panel-time{font-weight:700}.panel-client,.panel-time{color:var(--navy);font-size:1.1rem}.panel-client{font-weight:600;margin:0 0 6px}.panel-address{align-items:center;gap:6px;margin:0 0 12px}.panel-address,.panel-details{color:var(--text-muted);display:flex;font-size:.85rem}.panel-details{gap:12px;margin-bottom:10px}.panel-price{color:#059669;font-weight:600}.panel-sqft{margin:0 0 8px}.panel-notes,.panel-sqft{color:var(--text-muted);font-size:.8rem}.panel-notes{background:var(--cream);border-radius:var(--radius-sm);margin:0 0 12px;padding:8px 10px}.panel-actions{display:flex;gap:8px}.panel-actions .btn{flex:1 1;justify-content:center}.panel-invoice-section{border-top:1px solid var(--cream-dark);margin-top:12px;padding-top:12px}.btn-create-invoice{align-items:center;background:var(--gold);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:8px;justify-content:center;padding:10px 16px;transition:all .15s ease;width:100%}.btn-create-invoice:hover{background:#a17f5a}.btn-create-invoice:disabled{cursor:not-allowed;opacity:.7}.btn-create-invoice .spin{animation:spin 1s linear infinite}.btn-invoice-exists{align-items:center;background:var(--sage-pale);border:1px solid var(--sage);border-radius:var(--radius-sm);color:var(--sage);cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:8px;justify-content:center;padding:10px 16px;transition:all .15s ease;width:100%}.btn-invoice-exists:hover{background:var(--sage);color:#fff}.duplicate-warning-modal{max-width:500px}.duplicate-warning-modal .warning-header{align-items:flex-start;background:#fff8e6;border-left:4px solid var(--gold);border-radius:var(--radius-md);display:flex;gap:12px;margin-bottom:20px;padding:12px}.duplicate-warning-modal .warning-header .warning-icon{color:var(--gold);flex-shrink:0}.duplicate-warning-modal .warning-header p{color:var(--navy);font-size:.95rem;margin:0}.duplicate-warning-modal .duplicate-clients-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.duplicate-warning-modal .duplicate-client-card{align-items:center;background:var(--sage-light);border:1px solid var(--sage);border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:16px}.duplicate-warning-modal .duplicate-client-card .client-info{display:flex;flex-direction:column;gap:4px}.duplicate-warning-modal .duplicate-client-card .client-info strong{color:var(--navy);font-size:1rem}.duplicate-warning-modal .duplicate-client-card .client-detail{color:var(--gray-600);font-size:.85rem}.duplicate-warning-modal .warning-actions{border-top:1px solid var(--gray-200);display:flex;gap:12px;justify-content:flex-end;padding-top:16px}.btn-warning{border-radius:var(--radius-sm);padding:10px 16px;transition:all .15s ease}.clocked-in-banner{background:#fff;border-left:4px solid var(--sage);border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:20px;padding:16px}.clocked-in-header{align-items:center;color:var(--navy);display:flex;gap:10px;margin-bottom:12px}.clocked-in-header svg{color:var(--sage)}.clocked-in-title{font-size:14px}.clocked-in-title strong{color:var(--sage);font-size:18px}.clocked-out-count{color:#94a3b8;font-size:12px}.clocked-in-list{display:flex;flex-wrap:wrap;gap:10px}.no-records{color:#94a3b8;font-size:13px;font-style:italic}.clocked-in-employee{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:10px;padding:8px 12px;transition:all .2s}.clocked-in-employee.active{background:#f0fdf4;border-color:#bbf7d0}.clocked-in-employee.inactive{opacity:.6}.clocked-in-employee .employee-avatar{align-items:center;background:var(--sage);border-radius:50%;color:#fff;display:flex;font-size:11px;font-weight:600;height:32px;justify-content:center;width:32px}.clocked-in-employee.inactive .employee-avatar{background:#94a3b8}.clocked-in-employee .employee-info{display:flex;flex-direction:column}.clocked-in-employee .employee-name{color:#1e293b;font-size:13px;font-weight:600}.clocked-in-employee .clock-time{color:#64748b;font-size:11px}.clocked-in-employee .location-indicator{color:#94a3b8;cursor:help}.clocked-in-employee .location-indicator:hover{color:var(--sage)}.clocked-in-employee .status-dot{border-radius:50%;height:8px;margin-left:auto;width:8px}.clocked-in-employee .status-dot.clocked_in{animation:pulse-green 2s infinite;background:#22c55e}.clocked-in-employee .status-dot.clocked_out{background:#94a3b8}@keyframes pulse-green{0%,to{opacity:1}50%{opacity:.5}}.reminder-modal{max-width:450px}.reminder-modal-body{padding:20px}.reminder-job-info{background:#f8fafc;border-radius:12px;margin-bottom:20px;padding:16px}.reminder-job-info h3{color:var(--navy);font-size:1.1rem;margin:0 0 12px}.reminder-job-info p{align-items:center;color:#64748b;display:flex;font-size:.9rem;gap:8px;margin:6px 0}.reminder-job-info p svg{color:var(--sage)}.reminder-options h4{font-size:.85rem}.reminder-option-btn{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;display:flex;gap:16px;margin-bottom:10px;padding:16px;text-align:left;transition:all .2s;width:100%}.reminder-option-btn:hover:not(:disabled){background:#f0fdf4;border-color:var(--sage)}.reminder-option-btn:disabled{cursor:not-allowed;opacity:.5}.reminder-option-btn .option-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.reminder-option-btn .option-icon.email{background:#dbeafe;color:#2563eb}.reminder-option-btn .option-icon.text{background:#d1fae5;color:#059669}.reminder-option-btn .option-icon.both{background:#fef3c7;color:#d97706}.reminder-option-btn .option-info{display:flex;flex:1 1;flex-direction:column}.reminder-option-btn .option-title{color:var(--navy);font-size:1rem;font-weight:600}.reminder-option-btn .option-detail{color:#64748b;font-size:.85rem;margin-top:2px}.reminder-option-btn .spin{animation:spin 1s linear infinite;color:var(--sage)}.reminder-sent-note{align-items:center;background:#f0fdf4;border-radius:8px;color:#16a34a;display:flex;font-size:.85rem;gap:8px;margin-top:16px;padding:12px}.btn-running-behind{align-items:center;background:#f97316!important;border:none!important;color:#fff!important;display:flex;gap:8px;justify-content:center}.btn-running-behind:hover{background:#ea580c!important}.running-behind-modal{max-width:480px}.running-behind-header{background:linear-gradient(135deg,#f97316,#ea580c)!important}.running-behind-header h2{align-items:center;color:#fff!important;display:flex;gap:8px}.running-behind-header .close-btn{color:#fff!important}.running-behind-modal-body{padding:20px}.delay-selection{margin-bottom:16px}.delay-selection h4{color:#64748b;font-size:.85rem;font-weight:600;margin:0 0 10px}.delay-options{display:flex;flex-wrap:wrap;gap:8px}.delay-chip{background:#fff;border:2px solid #e2e8f0;border-radius:24px;color:#475569;cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 18px;transition:all .2s}.delay-chip.active,.delay-chip:hover{border-color:#f97316;color:#f97316}.delay-chip.active{background:#fff7ed}.custom-delay-input{align-items:center;display:flex;gap:8px;margin-top:10px}.custom-delay-input input{border:2px solid #e2e8f0;border-radius:8px;font-size:.95rem;font-weight:600;padding:8px 12px;text-align:center;width:100px}.custom-delay-input input:focus{border-color:#f97316;outline:none}.custom-delay-input span{color:#64748b;font-size:.9rem}.new-eta-preview{align-items:center;background:#fff7ed;border:2px solid #fed7aa;border-radius:10px;color:#c2410c;display:flex;font-size:.95rem;gap:8px;margin-bottom:16px;padding:12px 16px}.new-eta-preview svg{color:#f97316;flex-shrink:0}.new-eta-preview strong{font-weight:700}.running-behind-note{margin-bottom:16px}.running-behind-note h4{color:#64748b;font-size:.85rem;font-weight:600;margin:0 0 8px}.running-behind-note h4 span{color:#94a3b8;font-weight:400}.running-behind-note input{border:2px solid #e2e8f0;border-radius:8px;color:#334155;font-size:.9rem;padding:10px 14px;width:100%}.running-behind-note input:focus{border-color:#f97316;outline:none}.running-behind-note input::placeholder{color:#94a3b8}.time-off-banner{background:#fef3c7;border:1px solid #fde68a;border-radius:10px;margin:0 20px 8px;padding:12px 16px}.time-off-banner-header{align-items:center;color:#92400e;display:flex;font-size:.85rem;gap:8px;margin-bottom:8px}.time-off-banner-header svg{flex-shrink:0}.time-off-banner-list{display:flex;flex-wrap:wrap;gap:8px}.time-off-person{align-items:center;background:#fff;border:1px solid #fde68a;border-radius:6px;display:flex;font-size:.8rem;gap:6px;padding:4px 10px}.time-off-person.pending{border-style:dashed}.time-off-name{color:#1a2634;font-weight:600}.time-off-type-tag{background:#f1f5f9;border-radius:4px;color:#64748b;font-size:.65rem;font-weight:600;padding:2px 6px;text-transform:uppercase}.time-off-type-tag.sick{background:#fee2e2;color:#dc2626}.time-off-type-tag.pto{background:#dbeafe;color:#1d4ed8}.time-off-type-tag.personal{background:#e0e7ff;color:#4338ca}.time-off-pending-tag{color:#f59e0b;font-size:.6rem;font-weight:700;text-transform:uppercase}.pending-timeoff-alert{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#dc2626;cursor:pointer;display:flex;font-size:.85rem;gap:8px;margin:0 20px 8px;padding:10px 16px;transition:all .15s}.pending-timeoff-alert:hover{background:#fee2e2}.pending-timeoff-alert span{flex:1 1}.log-count-badge{align-items:center;background:#2c5f4e;background:var(--sage,#2c5f4e);border-radius:10px;color:#fff;display:inline-flex;font-size:.65rem;font-weight:700;height:18px;justify-content:center;margin-left:4px;min-width:18px;padding:0 5px}.confirmation-prompt-modal{max-width:460px}.confirmation-job-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;margin-bottom:18px;padding:14px 18px}.confirmation-job-summary p{align-items:center;color:#1e293b;display:flex;font-size:14px;gap:6px;margin:4px 0}.confirmation-job-summary p:first-child{font-size:16px;margin-bottom:8px}.confirmation-send-options{display:flex;flex-direction:column;gap:10px}.send-label{color:#475569;font-size:14px;font-weight:600;margin:0 0 4px}.confirmation-option-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;gap:14px;padding:14px 18px;text-align:left;transition:all .15s;width:100%}.confirmation-option-btn:hover:not(:disabled){background:#f0fdf4;border-color:#2c5f4e}.confirmation-option-btn:disabled{cursor:not-allowed;opacity:.6}.confirmation-option-btn .option-title{color:#1e293b;display:block;font-size:14px;font-weight:600}.confirmation-option-btn .option-detail{color:#64748b;display:block;font-size:12px}.confirmation-option-btn.text-option svg:first-child{color:#2c5f4e}.confirmation-option-btn.email-option svg:first-child{color:#3b82f6}.confirmation-option-btn.both-option svg:first-child{color:#b8926a}.no-contact-warning{align-items:center;background:#fef3c7;border:1px solid #fde68a;border-radius:8px;color:#92400e;display:flex;font-size:13px;gap:8px;padding:12px}.quick-add-job-page{margin:0 auto;max-width:1200px;padding:24px}.quick-add-job-page .page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.quick-add-job-page .header-left{align-items:center;display:flex;gap:16px}.quick-add-job-page .back-btn{align-items:center;background:var(--white);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);color:var(--navy);display:flex;height:40px;justify-content:center;transition:all var(--transition-fast);width:40px}.quick-add-job-page .back-btn:hover{background:var(--sage);color:var(--white);transform:translateX(-2px)}.quick-add-job-page h1{align-items:center;color:var(--navy);display:flex;font-family:var(--font-heading);font-size:1.5rem;gap:12px;margin-bottom:4px}.quick-add-job-page h1 svg{color:var(--gold)}.quick-add-job-page .page-header p{color:var(--text-muted);font-size:.9rem}.progress-steps{align-items:center;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);gap:0;justify-content:center;margin-bottom:24px;padding:24px}.progress-step{gap:8px}.step-icon{align-items:center;background:var(--cream);border-radius:var(--radius-full);color:var(--text-muted);display:flex;height:40px;justify-content:center;transition:all var(--transition-fast);width:40px}.progress-step.active .step-icon{background:var(--sage);color:var(--white)}.progress-step.completed .step-icon{background:var(--green);color:var(--white)}.progress-step span{color:var(--text-muted);font-size:.85rem;font-weight:500}.progress-step.active span{color:var(--sage)}.progress-step.completed span{color:var(--green)}.step-connector{background:var(--cream-dark);height:2px;margin:0 12px 24px;width:60px}.step-content{animation:fadeIn .3s ease}.section-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:24px}.section-card h2,.section-card h3{align-items:center;color:var(--navy);display:flex;font-family:var(--font-body);font-size:1.1rem;gap:8px;margin-bottom:16px}.section-card h3 svg{color:var(--sage)}.section-header-inline{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.section-header-inline h3{margin-bottom:0}.search-box{background:var(--cream);gap:12px;margin-bottom:16px;padding:12px 16px}.search-box input{font-size:.95rem}.selection-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto}.selection-item{align-items:center;background:var(--cream);border:2px solid #0000;border-radius:var(--radius-md);display:flex;gap:12px;padding:14px 16px;text-align:left;transition:all var(--transition-fast);width:100%}.selection-item.selected,.selection-item:hover{background:var(--sage-pale);border-color:var(--sage)}.item-icon{align-items:center;background:var(--white);border-radius:var(--radius-full);color:var(--sage);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.item-info{flex:1 1;min-width:0}.item-name{color:var(--navy);display:block;font-size:.95rem;font-weight:600}.item-meta{display:block;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-arrow,.item-meta{color:var(--text-muted)}.item-arrow{flex-shrink:0}.selection-item.add-new-item{background:var(--white);border:2px dashed var(--cream-dark);margin-top:8px}.selection-item.add-new-item:hover{background:var(--sage-pale);border-color:var(--sage);border-style:solid}.selection-item.add-new-item .item-icon.add-icon{background:var(--sage-pale);color:var(--sage)}.selection-item.add-new-item:hover .item-icon.add-icon{background:var(--sage);color:var(--white)}.status-badge{border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase}.status-badge.active{background:var(--green-light);color:var(--green)}.status-badge.lead{background:var(--gold-pale);color:var(--gold)}.primary-badge{background:var(--sage-pale);border-radius:12px;color:var(--sage);font-size:.7rem;font-weight:600;padding:4px 10px}.no-results{padding:40px 20px}.no-results p{margin-bottom:16px}.selected-summary{align-items:center;background:var(--sage-pale);border-radius:var(--radius-md);display:flex;gap:24px;margin-bottom:20px;padding:16px 20px}.selected-summary-mini{align-items:center;color:var(--navy);display:flex;font-size:.9rem;gap:8px}.selected-summary-mini svg{color:var(--sage)}.summary-item{align-items:center;color:var(--navy);font-size:.9rem;gap:8px}.summary-item svg{color:var(--sage)}.btn-link{font-size:.85rem;margin-left:auto}.details-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:repeat(2,1fr)}.form-group{gap:8px}.form-group input,.form-group select,.form-group textarea{border-radius:var(--radius-md);font-size:.95rem;padding:12px 14px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-pale)}.form-row.thirds{grid-template-columns:2fr 1fr 1fr}.inline-client-form{display:flex;flex-direction:column;gap:16px}.form-section-title{color:var(--sage);font-size:.85rem;font-weight:600;letter-spacing:.5px;margin-top:8px;text-transform:uppercase}.form-divider{background:var(--cream-dark);height:1px;margin:8px 0}.inline-client-form .step-actions{border-top:2px solid var(--cream);display:flex;gap:12px;justify-content:flex-end;margin-top:16px;padding-top:20px}.checkbox-option{border-top:1px solid var(--cream);margin-top:16px;padding-top:16px}.checkbox-option label{align-items:center;cursor:pointer;display:flex;gap:12px}.checkbox-option input[type=checkbox]{accent-color:var(--sage);height:20px;width:20px}.checkbox-label{color:var(--navy);gap:8px}.checkbox-label svg{color:var(--gold)}.checkbox-option.inline{border-top:none;margin-top:0;padding-top:0}.checkbox-option.inline label{color:var(--text-muted);font-size:.85rem}.line-items-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.line-item-row{background:var(--cream);border-radius:var(--radius-md);gap:12px;padding:12px 14px}.item-details{flex:1 1}.item-details .item-label{color:var(--navy);display:block;font-size:.9rem;font-weight:500}.item-details .item-desc{color:var(--text-muted);display:block;font-size:.8rem}.item-price-input{align-items:center;background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-sm);display:flex;gap:4px;padding:8px 12px}.item-price-input span{color:var(--text-muted)}.item-price-input input{border:none;font-size:.95rem;font-weight:600;padding:0;text-align:right;width:80px}.item-price-input input:focus{outline:none}.btn-remove{align-items:center;background:#0000;display:flex;height:32px;justify-content:center;width:32px}.btn-remove:hover{background:var(--red-light);color:var(--red)}.price-total{align-items:center;border-top:2px solid var(--cream-dark);color:var(--navy);display:flex;font-weight:600;justify-content:space-between;padding-top:16px}.total-amount{color:var(--sage);font-size:1.25rem}.team-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.team-member{align-items:center;background:var(--cream);border:2px solid #0000;border-radius:var(--radius-md);display:flex;gap:10px;padding:10px 14px;transition:all var(--transition-fast)}.team-member.selected,.team-member:hover{border-color:var(--sage)}.team-member.selected{background:var(--sage-pale)}.member-avatar{border-radius:var(--radius-full);color:var(--white);font-size:.7rem;height:32px;width:32px}.team-member span{color:var(--navy);flex:1 1;font-size:.85rem}.team-member svg{color:var(--sage)}.page-actions{align-items:center;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;margin-top:24px;padding:24px}.action-buttons{display:flex;gap:12px}.action-buttons .btn{padding:14px 24px}.modal-form{padding:4px}.modal-form .form-group{margin-bottom:16px}.modal-form .form-actions{border-top:1px solid var(--cream);display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:16px}.currency-input{align-items:center;background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);display:flex;gap:4px;padding:12px 14px}.currency-input span{color:var(--text-muted)}.currency-input input{border:none;flex:1 1;font-size:.95rem;padding:0}.currency-input input:focus{outline:none}@media (max-width:1024px){.details-grid{grid-template-columns:1fr}.team-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.quick-add-job-page{padding:16px}.progress-steps{gap:0;padding:16px}.step-connector{margin:0 8px;width:30px}.form-grid,.form-row,.form-row.thirds,.team-grid{grid-template-columns:1fr}.page-actions{flex-direction:column;gap:16px}.action-buttons{flex-direction:column;width:100%}.action-buttons .btn{justify-content:center;width:100%}}.date-picker-card{margin:0 auto;max-width:600px}.date-picker-card .section-header h2{align-items:center;display:flex;gap:10px}.calendar-nav{justify-content:space-between;margin-bottom:16px;padding:12px 0}.calendar-nav .btn-icon{align-items:center;background:var(--cream);border-radius:var(--radius-full);color:var(--navy);display:flex;height:36px;justify-content:center;transition:all var(--transition-fast);width:36px}.calendar-nav .btn-icon:hover{background:var(--sage);color:#fff}.calendar-month{color:var(--navy);font-size:1.1rem;font-weight:600}.calendar-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr);margin-bottom:20px}.calendar-day{align-items:center;background:var(--cream);border:2px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;min-height:80px;padding:12px 8px;transition:all var(--transition-fast)}.calendar-day:hover{background:var(--sage-pale);border-color:var(--sage)}.calendar-day.selected{background:var(--sage);border-color:var(--sage);color:#fff}.calendar-day.today{border-color:var(--gold)}.calendar-day.today.selected{border-color:var(--sage)}.day-name{margin-bottom:4px;opacity:.7}.day-number{font-size:1.5rem;font-weight:700}.today-label{background:var(--gold);border-radius:10px;color:#fff;font-size:.65rem;margin-top:4px;padding:2px 6px}.calendar-day.selected .today-label{background:#ffffff4d}.quick-dates{display:flex;gap:10px;justify-content:center;margin-bottom:24px}.quick-date-btn{background:var(--cream);border-radius:var(--radius-full);color:var(--navy);font-size:.9rem;font-weight:500;padding:10px 20px;transition:all var(--transition-fast)}.quick-date-btn:hover{background:var(--sage);color:#fff}.selected-date-display{align-items:center;background:var(--sage-pale);border-radius:var(--radius-md);color:var(--sage);font-size:1.1rem;font-weight:600;gap:10px;margin-bottom:24px;padding:16px}.selected-date-display,.step-actions{display:flex;justify-content:center}.step-actions .btn-lg{align-items:center;display:flex;font-size:1rem;gap:8px;padding:14px 32px}@media (max-width:640px){.calendar-grid{gap:4px}.calendar-day{min-height:70px;padding:8px 4px}.day-number{font-size:1.2rem}.quick-dates{flex-wrap:wrap}}.duplicate-warning-content{padding:8px}.warning-header{align-items:flex-start;background:#fff8e6;border-left:4px solid var(--gold);border-radius:var(--radius-md);display:flex;gap:12px;margin-bottom:20px;padding:12px}.warning-header .warning-icon{color:var(--gold);flex-shrink:0}.warning-header p{color:var(--navy);font-size:.95rem;margin:0}.duplicate-clients-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.duplicate-client-card{align-items:center;background:var(--sage-light);border:1px solid var(--sage);border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:16px}.duplicate-client-card .client-info{display:flex;flex-direction:column;gap:4px}.duplicate-client-card .client-info strong{color:var(--navy);font-size:1rem}.duplicate-client-card .client-detail{color:var(--gray-600);font-size:.85rem}.warning-actions{border-top:1px solid var(--gray-200);display:flex;gap:12px;justify-content:flex-end;padding-top:16px}.btn-warning{background:#f59e0b;color:#fff}.btn-warning:hover{background:#d97706}.btn-sm{font-size:.85rem;padding:8px 16px}.section-card.full-width{grid-column:1/-1}.property-select-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.property-dropdown{background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;flex:1 1;font-size:1rem;min-width:300px;padding:12px 16px}.property-dropdown:focus{border-color:var(--sage);outline:none}.selected-property-details{display:flex;gap:12px}.property-detail{background:var(--sage-light);border-radius:var(--radius-md);font-weight:500;padding:6px 12px}.btn-link-sm,.property-detail{color:var(--sage);font-size:.85rem}.btn-link-sm{background:none;border:none;cursor:pointer;margin-left:8px;padding:4px 8px}.btn-link-sm:hover{text-decoration:underline}.settings-page{margin:0 auto;max-width:800px}.page-header{margin-bottom:32px}.page-header h1{color:var(--navy);font-size:1.75rem;margin:0}.page-header p{color:var(--text-muted);margin:8px 0 0}.settings-section{margin-bottom:32px}.section-header{color:var(--navy)}.section-header h2{font-size:1.1rem;font-weight:600}.settings-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.user-info-row{align-items:center;border-bottom:1px solid var(--cream);display:flex;justify-content:space-between;padding:12px 0}.user-info-row:last-child{border-bottom:none}.user-info-row .label{color:var(--text-muted);font-size:.9rem}.user-info-row .value{color:var(--navy);font-weight:500}.user-info-row .value.mono{color:var(--text-muted);font-family:monospace;font-size:.8rem}.db-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(6,1fr);margin-bottom:20px}.db-stat{background:var(--cream);border-radius:var(--radius-md);padding:16px 8px;text-align:center}.db-stat .stat-value{color:var(--sage);display:block;font-size:1.5rem;font-weight:700}.db-stat .stat-label{color:var(--text-muted);font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.db-total{border-top:1px solid var(--cream);color:var(--text-muted);padding-top:16px;text-align:center}.db-total strong{color:var(--navy)}.action-item{gap:24px;justify-content:space-between}.action-info h3,.action-item{align-items:center;display:flex}.action-info h3{color:var(--navy);font-size:1rem;gap:8px;margin:0 0 4px}.action-info p{color:var(--text-muted);font-size:.85rem;margin:0}.action-item.danger .action-info h3{color:#b91c1c}.divider{background:var(--cream);height:1px;margin:20px 0}.btn-danger:hover{background:#b91c1c}.confirm-buttons,.message{display:flex;gap:10px}.message{align-items:center;border-radius:var(--radius-md);font-size:.9rem;margin-bottom:16px;padding:14px 18px}.message.success{background:#f0fdf4;border:1px solid #86efac;color:#166534}.message.error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}@media (max-width:768px){.db-stats{grid-template-columns:repeat(3,1fr)}.action-item{align-items:flex-start;flex-direction:column;gap:16px}.action-item button,.confirm-buttons{width:100%}.confirm-buttons button{flex:1 1}}@media (max-width:480px){.db-stats{grid-template-columns:repeat(2,1fr)}}.employee-inbox{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-height:400px;overflow:hidden}.inbox-header{border-bottom:1px solid var(--gray-100);gap:16px;padding:20px 24px}.inbox-header,.inbox-header h2{align-items:center;display:flex}.inbox-header h2{color:var(--navy);flex:1 1;font-family:var(--font-heading);font-size:1.25rem;gap:10px;margin:0}.unread-badge{background:var(--red);border-radius:var(--radius-full);color:#fff;font-size:.75rem;font-weight:600;padding:4px 10px}.inbox-filters{border-bottom:1px solid var(--gray-100);display:flex;gap:8px;overflow-x:auto;padding:12px 24px}.filter-btn{border:none;color:var(--gray-500);padding:6px 14px;white-space:nowrap}.filter-btn:hover{background:var(--gray-100);color:var(--navy)}.filter-btn.active{color:var(--sage-dark)}.inbox-messages{max-height:500px;overflow-y:auto}.pinned-section{background:var(--gold-light);border-bottom:2px solid var(--gold)}.message-item{padding:16px 24px}.message-item.pinned:hover{background:#f5ecd8}.message-item.unread{background:var(--blue-light)}.message-item.unread.pinned{background:var(--gold-light)}.message-from{align-items:center;color:var(--navy);display:flex;font-size:.9rem;font-weight:600;gap:8px}.message-from .pin-icon{color:var(--gold)}.unread-dot{background:var(--blue);border-radius:50%;height:8px;width:8px}.message-subject{align-items:center;display:flex;gap:8px}.message-subject svg{color:var(--gray-400);flex-shrink:0}.message-preview{color:var(--gray-500);font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}.needs-acknowledgment{align-items:center;color:var(--gold);display:flex;font-size:.75rem;font-weight:500;gap:6px;margin-top:8px}.empty-inbox{color:var(--gray-400);padding:60px 20px;text-align:center}.empty-inbox svg{margin-bottom:16px;opacity:.5}.empty-inbox h3{color:var(--navy);margin-bottom:8px}.empty-inbox p{color:var(--gray-500)}.employee-inbox.message-view{display:flex;flex-direction:column}.message-detail{flex:1 1;overflow-y:auto;padding:24px}.message-detail-header{align-items:center;display:flex;gap:12px;margin-bottom:16px}.message-type-badge{align-items:center;background:var(--gray-100);border-radius:var(--radius-sm);color:var(--gray-600);display:inline-flex;font-size:.8rem;font-weight:500;gap:6px;padding:6px 12px}.message-type-badge[data-type=announcement]{background:var(--sage-light);color:var(--sage-dark)}.message-type-badge[data-type=schedule_update]{background:var(--blue-light);color:var(--blue)}.pinned-badge{align-items:center;background:var(--gold-light);border-radius:var(--radius-sm);color:var(--gold);display:inline-flex;font-size:.75rem;font-weight:500;gap:4px;padding:4px 10px}.message-detail h2{color:var(--navy);font-family:var(--font-heading);font-size:1.5rem;margin-bottom:12px}.message-meta{border-bottom:1px solid var(--gray-100);font-size:.85rem;gap:16px;margin-bottom:24px;padding-bottom:16px}.message-body{color:var(--navy);line-height:1.7}.message-body p{margin-bottom:12px}.message-body p:last-child{margin-bottom:0}.acknowledge-section{align-items:center;background:var(--gold-light);border:1px solid var(--gold);border-radius:var(--radius-md);display:flex;gap:16px;justify-content:space-between;margin-top:24px;padding:16px}.acknowledge-section.acknowledged{background:var(--green-light);border-color:var(--green)}.acknowledge-prompt{color:var(--gold)}.acknowledge-prompt,.acknowledge-status{align-items:center;display:flex;font-size:.9rem;gap:10px}.acknowledge-status{color:var(--green);font-weight:500}.reply-section{border-top:1px solid var(--gray-100);margin-top:24px;padding-top:24px}.reply-section h4{color:var(--navy);font-size:.9rem;margin-bottom:12px}.reply-section textarea{border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;margin-bottom:12px}.reply-section textarea:focus{border-color:var(--sage)}@media (max-width:640px){.inbox-header{flex-wrap:wrap}.inbox-filters,.message-item{padding:12px 16px}.message-detail{padding:16px}.message-meta{flex-direction:column;gap:4px}.acknowledge-section{flex-direction:column;text-align:center}}.time-off-tabs{border-bottom:2px solid #e2e8f0;display:flex;margin:-8px -8px 16px;padding:0 8px}.time-off-tabs .tab-btn{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:#94a3b8;cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:500;gap:8px;justify-content:center;margin-bottom:-2px;padding:12px;transition:all .2s}.time-off-tabs .tab-btn.active{border-bottom-color:#2c5f4e;border-bottom-color:var(--sage,#2c5f4e);color:#2c5f4e;color:var(--sage,#2c5f4e)}.time-off-tabs .tab-badge{background:#ef4444;border-radius:10px;color:#fff;font-size:.7rem;font-weight:700;min-width:18px;padding:2px 7px;text-align:center}.time-off-form{padding:8px}.time-off-form .form-group{margin-bottom:16px}.time-off-form .form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.time-off-form label{align-items:center;color:#1a2634;color:var(--navy,#1a2634);display:flex;font-size:.9rem;font-weight:500;gap:6px;margin-bottom:6px}.time-off-form input,.time-off-form select,.time-off-form textarea{border:1px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:.9rem;padding:10px 12px;width:100%}.time-off-form input:focus,.time-off-form select:focus,.time-off-form textarea:focus{border-color:#2c5f4e;border-color:var(--sage,#2c5f4e);outline:none}.time-off-form .form-hint{color:#94a3b8;display:block;font-size:.75rem;margin-top:4px}.days-summary{align-items:center;background:#e8f0ed;border-radius:8px;color:#2c5f4e;color:var(--sage,#2c5f4e);display:flex;font-weight:500;gap:8px;margin-bottom:16px;padding:12px 16px}.conflict-warning{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;display:flex;gap:12px;margin-bottom:16px;padding:16px}.conflict-warning svg{color:#f59e0b;flex-shrink:0;margin-top:2px}.conflict-warning strong{color:#1a2634;color:var(--navy,#1a2634);display:block;margin-bottom:4px}.conflict-warning p{color:#64748b;font-size:.85rem;margin:0 0 8px}.conflict-warning ul{margin:0 0 8px;padding-left:20px}.conflict-warning li{color:#475569;font-size:.85rem}.time-off-form .form-actions{border-top:1px solid #f1f5f9;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:16px}.time-off-history{padding:8px}.upcoming-banner{align-items:center;background:#dcfce7;border-radius:8px;color:#166534;display:flex;font-size:.85rem;font-weight:500;gap:8px;margin-bottom:16px;padding:10px 16px}.empty-history{color:#94a3b8;padding:40px 20px;text-align:center}.empty-history svg{margin-bottom:12px;opacity:.4}.empty-history p{font-size:1rem;margin:0 0 16px}.history-list{display:flex;flex-direction:column;gap:10px}.history-card{border:1px solid #e2e8f0;border-radius:10px;padding:14px;transition:all .15s}.history-card.expired{opacity:.6}.history-card.pending{border-left:3px solid #f59e0b}.history-card.approved{border-left:3px solid #16a34a}.history-card.denied{border-left:3px solid #dc2626}.history-card-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.history-dates{align-items:center;color:#1a2634;color:var(--navy,#1a2634);display:flex;font-size:.9rem;font-weight:600;gap:8px}.history-dates svg{color:#2c5f4e;color:var(--sage,#2c5f4e)}.day-count{background:#f1f5f9;border-radius:10px;color:#64748b;font-size:.75rem;font-weight:500;padding:2px 8px}.status-pill{align-items:center;border-radius:20px;display:inline-flex;font-size:.7rem;font-weight:600;gap:4px;padding:4px 10px;text-transform:uppercase}.status-pill.status-pending{background:#fef3c7;color:#92400e}.status-pill.status-approved{background:#dcfce7;color:#166534}.status-pill.status-denied{background:#fee2e2;color:#dc2626}.history-type{color:#64748b;font-size:.8rem;margin-bottom:6px}.history-reason{color:#475569;font-size:.85rem;margin-bottom:6px}.history-manager-note{background:#f0f9ff;border-radius:6px;color:#0c4a6e;font-size:.85rem;margin-bottom:8px;padding:8px 12px}.history-meta{color:#94a3b8;font-size:.75rem}.cancel-request-btn{align-items:center;background:#fff5f5;border:1px solid #fecaca;border-radius:6px;color:#dc2626;cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:6px;margin-top:10px;padding:6px 14px;transition:all .15s}.cancel-request-btn:hover:not(:disabled){background:#fee2e2}.cancel-request-btn:disabled{cursor:not-allowed;opacity:.5}.cancel-request-btn .spin{animation:spin 1s linear infinite}@media (max-width:500px){.time-off-form .form-row{grid-template-columns:1fr}}.team-app{background:#f5f5f5;min-height:100vh;overflow-x:hidden;padding-bottom:100px}.team-header{align-items:center;background:linear-gradient(135deg,var(--sage) 0,#3a7a65 100%);color:#fff;display:flex;justify-content:space-between;padding:16px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-left{gap:12px}.team-avatar{align-items:center;background:#fff3;border-radius:50%;display:flex;font-size:1rem;font-weight:600;height:44px;justify-content:center;width:44px}.header-info{flex-direction:column}.greeting{font-size:.8rem;opacity:.9}.team-name{font-size:1.1rem;font-weight:600}.menu-btn{align-items:center;background:#ffffff26;border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;height:44px;justify-content:center;width:44px}.dropdown-menu{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;min-width:160px;overflow:hidden;position:absolute;right:20px;top:calc(100% + 8px);z-index:200}.dropdown-menu button{align-items:center;background:none;border:none;color:var(--navy);cursor:pointer;display:flex;font-size:.95rem;gap:10px;padding:14px 18px;width:100%}.dropdown-menu button:hover{background:#f5f5f5}.date-banner{background:var(--navy);color:#fff;font-size:.85rem;justify-content:space-between;padding:10px 16px}.date-banner,.date-info{align-items:center;display:flex}.date-info{font-weight:500;gap:8px}.gps-indicator{align-items:center;border-radius:12px;display:flex;font-size:.7rem;font-weight:600;gap:4px;padding:4px 10px;text-transform:uppercase}.gps-indicator.active{background:#22c55e33;color:#86efac}.gps-indicator.connecting{background:#eab30833;color:#fde047}.gps-indicator.error{background:#ef444433;color:#fca5a5}.stats-summary{grid-gap:1px;background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000f;display:grid;gap:1px;grid-template-columns:repeat(4,1fr);margin:16px;overflow:hidden}.stat-item{align-items:center;background:#fff;display:flex;flex-direction:column;padding:16px 8px}.stat-number{color:var(--sage);font-size:1.4rem;font-weight:700}.stat-label{font-size:.7rem;margin-top:2px}.gps-error{align-items:center;background:#fef3c7;border-radius:8px;color:#92400e;display:flex;font-size:.85rem;gap:8px;justify-content:center;margin:0 16px;padding:10px}.jobs-section{padding:0 16px}.jobs-section h2{color:var(--navy);font-size:1.1rem;margin:0 0 12px}.no-jobs{align-items:center;background:#fff;border-radius:16px;color:var(--text-muted);display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.no-jobs svg{margin-bottom:12px;opacity:.4}.team-app .job-card-simple{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;cursor:pointer;display:flex;gap:12px;margin-bottom:12px;padding:16px;transition:all .2s}.team-app .job-card-simple:active{transform:scale(.98)}.team-app .job-card-simple.active{border:2px solid var(--sage);box-shadow:0 4px 12px #2c5f4e33}.team-app .job-card-simple.completed{opacity:.6}.team-app .job-card-simple .job-number{align-items:center;background:var(--sage);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:1rem;font-weight:700;height:36px;justify-content:center;width:36px}.team-app .job-card-simple.completed .job-number{background:#16a34a}.team-app .job-card-simple.in_progress .job-number{background:#2563eb}.team-app .job-card-simple .job-info{flex:1 1;min-width:0}.team-app .job-card-simple .job-time-status{align-items:center;display:flex;gap:8px;margin-bottom:4px}.team-app .job-card-simple .time{color:#64748b;font-size:.85rem}.team-app .job-card-simple .status-badge{border-radius:10px;color:#fff;font-size:.65rem;font-weight:600;padding:2px 8px;text-transform:uppercase}.team-app .job-card-simple .client-name{color:var(--navy);font-size:1rem;font-weight:600;margin:0}.team-app .job-card-simple .address{color:#94a3b8;font-size:.8rem;margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-app .job-card-simple .job-meta-row{align-items:center;display:flex;gap:8px;margin-top:4px}.team-app .job-card-simple .job-type-badge{align-items:center;display:flex;font-size:.72rem;font-weight:700;gap:3px}.team-app .job-card-simple .job-duration-badge{background:#0000000a;border-radius:4px;color:#94a3b8;font-size:.7rem;font-weight:600;padding:1px 6px}.team-app .job-card-simple .job-notes-preview{color:#64748b;font-size:.73rem;font-style:italic;line-height:1.3;margin:3px 0 0}.team-app .job-card-simple .chevron{color:#cbd5e1;flex-shrink:0}.team-app .job-modal-overlay{background:#00000080;position:fixed;z-index:1000}.team-app .job-modal,.team-app .job-modal-overlay{bottom:0;display:flex;flex-direction:column;left:0;right:0;top:0}.team-app .job-modal{animation:slideUp .3s ease;background:#f5f5f5;position:absolute}.team-app .job-modal .modal-header{align-items:center;background:var(--sage);color:#fff;display:flex;gap:12px;padding:16px 20px}.team-app .job-modal .back-btn{align-items:center;background:#ffffff26;border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;width:40px}.team-app .job-modal .modal-header h2{flex:1 1;font-size:1.1rem;font-weight:600;margin:0}.team-app .job-modal .status-pill{border-radius:20px;color:#fff;font-size:.7rem;font-weight:600;padding:4px 12px;text-transform:uppercase}.team-app .job-modal .modal-body{flex:1 1;overflow-y:auto;padding:20px}.team-app .job-modal .detail-section{background:#fff;border-radius:12px;margin-bottom:12px;padding:16px}.team-app .job-modal .detail-section.hero{padding:24px 16px;text-align:center}.team-app .job-modal .detail-section.hero .client-name{color:var(--navy);font-size:1.5rem;font-weight:700;margin:0 0 8px}.team-app .job-modal .detail-section.hero .time-range{align-items:center;color:var(--sage);display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;margin:0 0 8px}.team-app .job-modal .detail-section.hero .address-line{align-items:center;color:#64748b;display:flex;font-size:.9rem;gap:6px;justify-content:center;margin:0}.team-app .job-modal .stats-row{display:flex;justify-content:space-around}.team-app .job-modal .stats-row .stat{align-items:center;display:flex;flex-direction:column;gap:4px}.team-app .job-modal .stats-row .stat svg{color:var(--sage)}.team-app .job-modal .stats-row .stat span{color:var(--navy);font-size:.85rem;font-weight:500}.team-app .job-modal .detail-section h4{align-items:center;color:var(--sage);display:flex;font-size:.85rem;font-weight:600;gap:8px;margin:0 0 10px}.team-app .job-modal .detail-section p{color:#334155;font-size:.9rem;line-height:1.5;margin:0}.team-app .job-modal .detail-section ul{margin:0;padding-left:20px}.team-app .job-modal .detail-section li{color:#334155;font-size:.9rem;margin:4px 0}.team-app .job-modal .property-row{display:flex;gap:16px}.team-app .job-modal .property-row span{align-items:center;color:#334155;display:flex;font-size:.9rem;gap:6px}.team-app .job-modal .detail-section.access{background:#fff7ed;border-left:4px solid #f97316}.team-app .job-modal .detail-section.access h4{color:#c2410c}.team-app .job-modal .detail-section.access p{color:#9a3412}.team-app .job-modal .detail-section.notes{background:#f0f9ff;border-left:4px solid #0ea5e9}.team-app .job-modal .detail-section.notes h4{color:#0369a1}.team-app .job-modal .detail-section.notes p{color:#0c4a6e}.team-app .job-modal .detail-section.notes .special{align-items:flex-start;background:#fef3c7;border-radius:8px;color:#92400e;display:flex;gap:6px;margin-top:10px;padding:10px}.team-app .job-modal .phone-button{align-items:center;background:#fff;border-radius:12px;color:var(--sage);display:flex;font-weight:600;gap:10px;justify-content:center;margin-bottom:12px;padding:14px;text-decoration:none}.team-app .job-modal .modal-actions{background:#fff;border-top:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:10px;padding:16px 20px}.team-app .job-modal .action-btn{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;flex:1 1;font-size:.95rem;font-weight:600;gap:8px;justify-content:center;min-width:120px;padding:14px 20px}.team-app .job-modal .action-btn.navigate{background:#f1f5f9;color:var(--navy)}.team-app .job-modal .action-btn.primary{background:linear-gradient(135deg,var(--sage) 0,#3a7a65 100%);color:#fff}.team-app .job-modal .action-btn.secondary{background:#e0e7ff;color:#4338ca}.team-app .job-modal .action-btn.warning{background:#fef2f2;color:#dc2626}.team-app .job-modal .action-btn.success{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff}.team-app .job-modal .action-btn.full-width{flex:100% 1}.team-app .job-modal .completed-banner{align-items:center;background:#f0fdf4;border-radius:12px;color:#16a34a;display:flex;gap:12px;justify-content:center;padding:16px;width:100%}.team-app .job-modal .completed-banner div{display:flex;flex-direction:column}.team-app .job-modal .completed-banner strong{font-size:1rem}.team-app .job-modal .completed-banner span{font-size:.85rem;opacity:.8}.team-app .access-info{align-items:flex-start;background:#fff7ed;border-radius:8px;color:#9a3412;display:flex;font-size:.85rem;gap:8px;margin:8px 0;padding:10px 12px}.team-app .access-info svg{flex-shrink:0;margin-top:2px}.team-app .job-notes{align-items:flex-start;background:#f0f9ff;border-radius:8px;color:#0369a1;display:flex;font-size:.85rem;gap:8px;margin:8px 0;padding:10px 12px}.team-app .job-notes svg{flex-shrink:0;margin-top:2px}.team-app .info-section{border-radius:8px;margin:12px 0;padding:12px}.team-app .info-section h4{align-items:center;display:flex;font-size:.8rem;font-weight:600;gap:8px;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.team-app .info-section p{font-size:.9rem;line-height:1.5;margin:0}.team-app .info-section.access-info{background:#fff7ed}.team-app .info-section.access-info h4{color:#c2410c}.team-app .info-section.access-info p{color:#9a3412}.team-app .info-section.client-notes{background:#f0f9ff}.info-section.client-notes h4{color:#0369a1}.info-section.client-notes p{color:#0c4a6e}.info-section.special-instructions{background:#fef3c7}.info-section.special-instructions h4{color:#b45309}.info-section.special-instructions p{color:#92400e}.info-section.job-notes{background:#f5f5f5}.info-section.job-notes h4{color:#525252}.info-section.job-notes p{color:#404040}.scope-section{background:#f0fdf4;border-radius:8px;margin:12px 0;padding:12px}.scope-section h4{align-items:center;color:#166534;display:flex;font-size:.8rem;font-weight:600;gap:8px;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.addons-list{color:#15803d;font-size:.9rem;margin:0;padding-left:20px}.addons-list li{margin:4px 0}.team-app .phone-link{align-items:center;background:#f0fdf4;border-radius:8px;color:#166534;display:flex;font-size:.9rem;gap:8px;margin:8px 0;padding:10px 12px;text-decoration:none}.team-app .job-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.team-app .action-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:600;gap:6px;justify-content:center;min-width:100px;padding:12px 16px;transition:all .2s ease}.team-app .action-btn.navigate{background:#f1f5f9;color:var(--navy)}.team-app .action-btn.on-way{background:#fef3c7;color:#92400e}.team-app .action-btn.start{background:linear-gradient(135deg,var(--sage) 0,#3a7a65 100%);color:#fff}.team-app .action-btn.photo{background:#e0e7ff;color:#3730a3}.team-app .action-btn.damage{background:#fef2f2;color:#b91c1c}.team-app .action-btn.complete{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;flex:2 1}.team-app .completed-info{align-items:center;color:#16a34a;display:flex;font-size:.9rem;gap:8px;justify-content:center;padding:8px 0;width:100%}.modal-overlay{align-items:flex-end}.modal-content{border-radius:24px 24px 0 0;max-width:500px;padding:24px}.modal-header{margin-bottom:20px}.modal-header h3{color:var(--navy);font-size:1.2rem}.close-btn{background:#f5f5f5;border-radius:50%;height:40px;width:40px}.damage-type-selector,.photo-type-selector{display:flex;gap:8px;margin-bottom:20px}.damage-type-selector button,.photo-type-selector button{align-items:center;background:#f5f5f5;border:2px solid #0000;border-radius:10px;color:var(--navy);cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:500;gap:6px;justify-content:center;padding:12px;transition:all .2s ease}.damage-type-selector button.active,.photo-type-selector button.active{background:#e8f5e9;border-color:var(--sage);color:var(--sage)}.photo-upload-area{border:2px dashed #ddd;border-radius:12px;color:var(--text-muted);cursor:pointer;flex-direction:column;justify-content:center;margin-bottom:20px;padding:40px;position:relative}.photo-upload-area.small{padding:24px}.photo-upload-area input{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.photo-upload-area p{font-size:.9rem;margin:8px 0 0}.modal-content textarea{border:2px solid #e5e5e5;border-radius:10px;font-size:1rem;margin-bottom:20px;padding:14px;resize:none;width:100%}.modal-content textarea:focus{border-color:var(--sage);outline:none}.submit-btn,.upload-btn{align-items:center;background:linear-gradient(135deg,var(--sage) 0,#3a7a65 100%);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:16px;width:100%}.submit-btn:disabled,.upload-btn:disabled{cursor:not-allowed;opacity:.6}.submit-btn{background:linear-gradient(135deg,#dc2626,#b91c1c)}.selected-photos-preview{background:#f8f8f8;border-radius:12px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:12px}.photo-preview-item{border-radius:8px;height:80px;overflow:hidden;position:relative;width:80px}.photo-preview-item img{height:100%;object-fit:cover;width:100%}.remove-photo-btn{align-items:center;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;position:absolute;right:4px;top:4px;width:24px}.remove-photo-btn:disabled{cursor:not-allowed;opacity:.5}.upload-progress{align-items:center;background:#e8f5e9;border-radius:8px;color:var(--sage);display:flex;font-size:.9rem;gap:10px;justify-content:center;margin-bottom:16px;padding:12px}@media (min-width:640px){.team-app{box-shadow:0 0 40px #0000001a;margin:0 auto;max-width:500px}}.employee-selector-modal{align-items:center;background:linear-gradient(135deg,var(--sage) 0,#3a7a65 100%);display:flex;justify-content:center;min-height:100vh;padding:20px}.selector-content{background:#fff;border-radius:24px;box-shadow:0 20px 60px #0000004d;max-width:400px;padding:32px 24px;width:100%}.selector-header{margin-bottom:24px;text-align:center}.selector-header svg{color:var(--sage);margin-bottom:12px}.selector-header h2{color:var(--navy);font-size:1.4rem;margin:0}.selector-header p{color:var(--text-muted);font-size:.9rem;margin:8px 0 0}.employee-options{display:flex;flex-direction:column;gap:8px}.employee-option{align-items:center;background:var(--cream);border:2px solid #0000;border-radius:12px;cursor:pointer;display:flex;gap:14px;padding:14px 16px;text-align:left;transition:all .2s ease;width:100%}.employee-option:hover{background:#e8f5e9;border-color:var(--sage)}.option-avatar{align-items:center;background:var(--sage);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:1rem;font-weight:700;height:48px;justify-content:center;width:48px}.option-info{flex:1 1}.option-name{color:var(--navy);display:block;font-size:1rem;font-weight:600}.option-role{color:var(--text-muted);display:block;font-size:.8rem;margin-top:2px}.no-employees{color:var(--text-muted);padding:20px;text-align:center}.clock-banner{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:14px 20px;transition:all .2s ease}.clock-banner.clocked-out{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.clock-banner.clocked-in{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534}.clock-status{align-items:center;display:flex;gap:12px}.clock-info{display:flex;flex-direction:column}.clock-label{font-size:.95rem;font-weight:600}.clock-time{font-size:.8rem;opacity:.8}.clock-hours{align-items:flex-end;display:flex;flex-direction:column}.hours-worked{font-size:1.4rem;font-weight:700}.hours-label{font-size:.7rem;opacity:.7;text-transform:uppercase}.clock-modal{text-align:center}.clock-modal-content{padding:20px 0}.clock-employee{gap:14px;margin-bottom:24px}.clock-avatar,.clock-employee{align-items:center;display:flex;justify-content:center}.clock-avatar{background:var(--sage);border-radius:50%;color:#fff;font-size:1.2rem;font-weight:700;height:56px;width:56px}.clock-employee-info{text-align:left}.clock-employee-info .employee-name{color:var(--navy);display:block;font-size:1.1rem;font-weight:600}.clock-employee-info .employee-role{color:var(--text-muted);display:block;font-size:.85rem}.clock-time-display{margin-bottom:24px}.current-time{color:var(--navy);display:block;font-size:2.5rem;font-weight:700}.current-date{color:var(--text-muted);display:block;font-size:.9rem;margin-top:4px}.clock-summary{background:var(--cream);border-radius:12px;margin-bottom:20px}.summary-item{display:flex;justify-content:space-between;padding:8px 0}.summary-item:not(:last-child){border-bottom:1px solid #e5e5e5}.summary-label{color:var(--text-muted);font-size:.9rem}.summary-value{color:var(--navy);font-weight:600}.clock-location{align-items:center;color:var(--text-muted);display:flex;font-size:.8rem;gap:6px;justify-content:center;margin-bottom:20px}.clock-in-btn{background:linear-gradient(135deg,var(--sage) 0,#3a7a65 100%)}.clock-in-btn,.clock-out-btn{align-items:center;border:none;border-radius:14px;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:700;gap:10px;justify-content:center;padding:18px;width:100%}.clock-out-btn{background:linear-gradient(135deg,#dc2626,#b91c1c)}.no-employees ol{margin:0;padding-left:24px}.no-employees li{color:var(--navy);font-size:.9rem;margin:8px 0}.btn-secondary{align-items:center;background:#f5f5f5;border:none;border-radius:10px;display:inline-flex;gap:8px;padding:12px 20px}.btn-secondary:hover{background:#e5e5e5}.laundry-modal{max-width:400px}.laundry-form{display:flex;flex-direction:column;gap:16px;padding:20px}.laundry-form .form-group{display:flex;flex-direction:column;gap:6px}.laundry-form label{color:var(--navy);font-size:.85rem;font-weight:500}.laundry-form input,.laundry-form textarea{border:1px solid #e5e5e5;border-radius:10px;font-family:inherit;font-size:1rem;padding:12px 14px}.laundry-form input:focus,.laundry-form textarea:focus{border-color:var(--sage);outline:none}.price-preview{color:var(--sage);font-size:.9rem;font-weight:600;margin-top:4px}.laundry-form .submit-btn{margin-top:8px}.laundry-form .submit-btn:disabled{cursor:not-allowed;opacity:.5}.handbook-modal{background:#fff;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0;z-index:1000}.handbook-header{align-items:center;background:var(--sage);color:#fff;display:flex;flex-shrink:0;justify-content:space-between;padding:12px 16px}.handbook-header h2{align-items:center;display:flex;font-size:1.1rem;gap:8px;margin:0}.handbook-header .close-btn{align-items:center;background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;width:40px}.handbook-iframe{border:none;flex:1 1;width:100%}.review-banner{align-items:center;background:linear-gradient(135deg,#2c5f4e,#3a7963);color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:600;gap:10px;padding:12px 16px}.review-banner span{flex:1 1}.review-banner:active{opacity:.9}.view-toggle-nav{border-bottom:1px solid #e5e5e5;padding:12px 16px}.toggle-btn,.view-toggle-nav{background:#fff;display:flex;gap:6px}.toggle-btn{align-items:center;border:2px solid #e5e5e5;border-radius:10px;color:#666;cursor:pointer;flex:1 1;font-size:.82rem;font-weight:500;justify-content:center;padding:10px 8px;transition:all .15s;white-space:nowrap}.toggle-btn:hover{border-color:var(--sage);color:var(--sage)}.toggle-btn.active{background:var(--sage-light);border-color:var(--sage);color:var(--sage-dark)}.toggle-badge{background:#dc2626;background:var(--red,#dc2626);border-radius:10px;color:#fff;font-size:.7rem;font-weight:600;margin-left:4px;padding:2px 7px}.messages-view-container{padding:16px}.messages-view-container .employee-inbox{border-radius:12px;overflow:hidden}.dropdown-menu button{position:relative}.menu-badge{background:#dc2626;background:var(--red,#dc2626);border-radius:10px;color:#fff;font-size:.7rem;font-weight:600;padding:2px 7px;position:absolute;right:16px}.property-photo-preview{border-radius:12px;overflow:hidden;padding:0!important}.property-photo-img{border-radius:12px;display:block;height:180px}.schedule-view{padding:0 16px 24px}.schedule-week-list{display:flex;flex-direction:column;gap:8px}.schedule-day-card{background:#fff;border:1px solid #e8e6e3;border-radius:12px;padding:14px 16px}.schedule-day-card.today{background:#f0faf5;border-color:#2c5f4e;border-width:2px}.schedule-day-card.past{opacity:.5}.schedule-day-card.time-off{background:#fef3c7;border-color:#f59e0b}.schedule-day-header{align-items:center;display:flex;justify-content:space-between}.schedule-day-name{align-items:center;display:flex;gap:8px}.day-label{color:#1a2634;font-size:15px;font-weight:700;min-width:36px}.day-date{color:#64748b;font-size:14px}.today-badge{background:#2c5f4e;border-radius:10px;color:#fff;font-size:11px;font-weight:600;padding:2px 8px}.schedule-badge{border-radius:8px;font-size:13px;font-weight:600;padding:4px 10px}.schedule-badge.shift{background:#e8f0ec;color:#2c5f4e}.schedule-badge.off{background:#fef3c7;color:#92400e}.schedule-badge.none{background:#f1f5f9;color:#94a3b8;font-weight:500}.schedule-day-jobs{border-top:1px solid #f1f5f9;display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-top:10px}.schedule-job-item{align-items:center;background:#f8f7f5;border-radius:8px;display:flex;gap:10px;padding:6px 10px}.schedule-job-item.empty{background:#0000;padding:4px 0}.schedule-job-time{color:#2c5f4e;font-size:13px;font-weight:600;min-width:50px}.schedule-job-client{color:#1a2634;flex:1 1;font-size:14px}.schedule-job-dur{background:#e8f0ec;border-radius:6px;color:#94a3b8;font-size:12px;padding:2px 6px}.team-roster-card{background:#fff;border-radius:14px;box-shadow:0 1px 3px #0000000f;margin:0 16px 12px;padding:14px 16px}.team-roster-header{align-items:center;color:#2c5f4e;color:var(--sage,#2c5f4e);display:flex;font-size:13px;font-weight:600;gap:8px;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.team-roster-list{display:flex;flex-direction:column;gap:8px}.team-roster-member{align-items:center;display:flex;gap:10px}.team-roster-avatar{align-items:center;background:linear-gradient(135deg,#2c5f4e,#3a7a65);background:linear-gradient(135deg,var(--sage,#2c5f4e) 0,#3a7a65 100%);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:32px;justify-content:center;width:32px}.team-roster-name{color:#1a2634;flex:1 1;font-size:15px;font-weight:600}.team-roster-phone{align-items:center;background:#2c5f4e14;border-radius:8px;color:#2c5f4e;color:var(--sage,#2c5f4e);display:flex;flex-shrink:0;height:32px;justify-content:center;text-decoration:none;width:32px}.weekly-hours-card{background:#fff;border-radius:14px;box-shadow:0 1px 3px #0000000f;margin:0 16px 12px;padding:14px 16px}.weekly-hours-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.weekly-hours-title{align-items:center;color:#2c5f4e;color:var(--sage,#2c5f4e);display:flex;font-size:13px;font-weight:600;gap:8px;letter-spacing:.5px;text-transform:uppercase}.weekly-hours-total{color:#1a2634;font-size:15px;font-weight:700}.weekly-hours-bars{align-items:flex-end;display:flex;gap:4px}.weekly-hours-day{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:3px}.weekly-hours-bar-wrap{align-items:flex-end;background:#f1f5f9;border-radius:4px;display:flex;height:50px;overflow:hidden;position:relative;width:100%}.weekly-hours-bar-fill{background:#c8ddd4;border-radius:4px;min-height:0;transition:height .4s ease;width:100%}.weekly-hours-bar-fill.live,.weekly-hours-day.today .weekly-hours-bar-fill{background:linear-gradient(180deg,#2c5f4e,#3a7a65);background:linear-gradient(180deg,var(--sage,#2c5f4e) 0,#3a7a65 100%)}.weekly-hours-bar-fill.live{animation:livePulse 2s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.7}}.weekly-hours-day.empty .weekly-hours-bar-fill{height:0!important;min-height:0}.weekly-hours-hrs{color:#1a2634;font-size:11px;font-weight:700}.weekly-hours-day.empty .weekly-hours-hrs{color:#c0c7d0}.weekly-hours-label{color:#94a3b8;font-size:10px;font-weight:600;text-transform:uppercase}.weekly-hours-day.today .weekly-hours-label{color:#2c5f4e;color:var(--sage,#2c5f4e);font-weight:700}.job-team-row{align-items:center;color:#64748b;display:flex;font-size:12px;gap:4px;margin-top:2px}.job-team-row svg{flex-shrink:0;opacity:.6}.ta-leaderboard-view{padding:16px}.ta-lb-toggle{background:#f1f0ee;border-radius:10px;display:flex;gap:4px;margin-bottom:8px;padding:3px}.ta-lb-toggle button{background:#0000;border:none;border-radius:8px;color:#94a3b8;cursor:pointer;flex:1 1;font-size:13px;font-weight:600;padding:8px;transition:all .15s}.ta-lb-toggle button.active{background:#fff;box-shadow:0 1px 3px #00000014;color:#1a2b3c}.ta-lb-period{color:#94a3b8;font-size:11px;margin-bottom:16px;text-align:center}.ta-lb-my-rank{align-items:center;background:linear-gradient(135deg,#fefbf3,#f0fdf4);border:2px solid #3d8b6e;border-radius:14px;display:flex;gap:14px;margin-bottom:16px;padding:16px}.ta-lb-my-rank-icon{align-items:center;background:#fff;border-radius:50%;box-shadow:0 2px 6px #00000014;color:#3d8b6e;display:flex;flex-shrink:0;height:52px;justify-content:center;width:52px}.ta-lb-rank-num{color:#3d8b6e;font-size:20px;font-weight:800}.ta-lb-my-rank-text{display:flex;flex-direction:column}.ta-lb-my-rank-label{color:#94a3b8;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.ta-lb-my-rank-value{color:#1a2b3c;font-size:18px;font-weight:700}.ta-lb-my-rank-jobs{color:#64748b;font-size:12px;margin-top:2px}.ta-lb-list{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.ta-lb-empty{color:#94a3b8;font-size:13px;padding:24px;text-align:center}.ta-lb-row{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;gap:10px;padding:12px 14px;transition:background .1s}.ta-lb-row:last-child{border-bottom:none}.ta-lb-row.me{background:#f0fdf4;border-left:3px solid #3d8b6e}.ta-lb-rank{align-items:center;color:#cbd5e1;display:flex;flex-shrink:0;font-size:14px;font-weight:700;justify-content:center;width:30px}.ta-lb-rank.rank-0{color:#f59e0b}.ta-lb-rank.rank-1{color:#94a3b8}.ta-lb-rank.rank-2{color:#b87333}.ta-lb-info{display:flex;flex-direction:column;min-width:100px}.ta-lb-name{color:#1a2b3c;font-size:14px;font-weight:600}.ta-lb-meta{color:#94a3b8;font-size:11px}.ta-lb-bar-wrap{background:#f3f4f6;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.ta-lb-bar{background:linear-gradient(90deg,#3d8b6e,#6abe9e);border-radius:4px;height:100%;transition:width .4s}.property-photo-section{padding-bottom:8px}.property-photo-preview{position:relative}.property-photo-img{border-radius:10px;max-height:180px;object-fit:cover;width:100%}.property-photo-retake{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;border:none;border-radius:6px;bottom:8px;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:600;gap:4px;padding:5px 10px;position:absolute;right:8px}.property-photo-retake:hover{background:#000000b3}.property-photo-upload-btn{align-items:center;background:#fafafa;border:2px dashed #d1d5db;border-radius:12px;color:#64748b;cursor:pointer;display:flex;flex-direction:column;gap:6px;justify-content:center;padding:18px;transition:all .15s;width:100%}.property-photo-upload-btn:hover{background:#f0fdf4;border-color:#3d8b6e;color:#3d8b6e}.property-photo-upload-btn span:first-of-type{font-size:14px;font-weight:600}.property-photo-hint{color:#94a3b8;font-size:11px!important;font-weight:400!important}.client-portal{--forest:#2c5f4e;--forest-dark:#234a3d;--forest-light:#3d7a66;--sage:#2c5f4e;--sage-light:#e8f0ed;--sage-pale:#f0f5f3;--gold:#b8926a;--gold-dark:#9a7854;--gold-light:#d4b896;--gold-pale:#f5f0e8;--cream:#f8f7f5;--cream-dark:#e8e6e3;--white:#fff;--charcoal:#1a2634;--charcoal-light:#2d3e4f;--text-dark:#1a2634;--text-muted:#6b7280;--text-light:#9ca3af;--success:#22c55e;--success-light:#dcfce7;--warning:#f59e0b;--warning-light:#fef3c7;--error:#dc2626;--error-light:#fecaca;--blue:#3b82f6;--blue-light:#dbeafe;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001f;background:linear-gradient(180deg,var(--sage-pale) 0,var(--cream) 100%);font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif;min-height:100vh;padding:20px}.portal-container{margin:0 auto;max-width:560px}.portal-card{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.portal-header{background:linear-gradient(135deg,var(--forest) 0,var(--forest-light) 100%);overflow:hidden;padding:28px 24px;position:relative;text-align:center}.portal-header:before{background:radial-gradient(circle,#ffffff14 0,#0000 60%);content:"";height:200%;pointer-events:none;position:absolute;right:-50%;top:-50%;width:100%}.portal-header .logo{gap:14px;position:relative}.portal-header .logo,.portal-header .logo-icon{align-items:center;display:flex;justify-content:center}.portal-header .logo-icon{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26;border:1px solid #fff3;border-radius:var(--radius-md);color:#fff;height:56px;width:56px}.portal-header h1{color:#fff;font-family:Playfair Display,serif;font-size:1.75rem;font-weight:600;letter-spacing:-.02em;margin:0}.portal-header span{color:#ffffffd9;display:block;font-size:.9rem}.portal-content{padding:28px 24px}.portal-welcome{border-bottom:1px solid var(--cream-dark);margin-bottom:28px;padding-bottom:28px;text-align:center}.portal-welcome .welcome-emoji{display:block;font-size:2.5rem;margin-bottom:8px}.portal-welcome h2{color:var(--charcoal);font-family:Playfair Display,serif;font-size:1.5rem;font-weight:600;margin:0 0 8px}.portal-welcome p{color:var(--text-muted);font-size:.95rem;margin:0 auto;max-width:320px}.portal-section{margin-bottom:28px}.portal-section:last-of-type{margin-bottom:0}.section-header{gap:10px;margin-bottom:14px}.section-icon{align-items:center;background:var(--sage-light);border-radius:var(--radius-sm);color:var(--forest);display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.section-icon svg{height:18px;width:18px}.section-icon.gold{background:var(--gold-pale);color:var(--gold-dark)}.section-icon.blue{background:var(--blue-light);color:var(--blue)}.portal-section h3{align-items:center;color:var(--charcoal);display:flex;font-family:Playfair Display,serif;font-size:1.1rem;font-weight:600;gap:8px;margin:0}.portal-section h3 svg{color:var(--forest);height:18px;width:18px}.section-note{font-size:.9rem;margin-bottom:14px}.property-card{background:var(--cream);border:1px solid var(--cream-dark);border-radius:var(--radius-md);padding:16px}.property-address{color:var(--charcoal);font-weight:600;margin:0 0 4px}.property-city{color:var(--text-muted);font-size:.9rem;margin:0}.frequency-options{display:flex;flex-direction:column}.frequency-option{align-items:center;background:var(--white);border:2px solid var(--cream-dark);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:14px;padding:16px;transition:all .2s ease}.frequency-option:hover{background:var(--sage-pale);border-color:var(--sage)}.frequency-option.selected{background:var(--sage-light);border-color:var(--forest)}.frequency-radio{align-items:center;background:var(--white);border:2px solid var(--cream-dark);border-radius:50%;display:flex;flex-shrink:0;height:26px;justify-content:center;transition:all .2s ease;width:26px}.frequency-option.selected .frequency-radio{background:var(--forest);border-color:var(--forest);color:#fff}.frequency-info{flex:1 1}.frequency-label{color:var(--charcoal);margin-bottom:2px}.frequency-desc{color:var(--text-muted);display:block;font-size:.85rem}.frequency-price{color:var(--forest);font-family:Playfair Display,serif;font-size:1.25rem;font-weight:600}.frequency-price .per-visit{color:var(--text-muted);display:block;font-size:.75rem;font-weight:400}.one-time-service{background:var(--sage-light);border:2px solid var(--forest);border-radius:var(--radius-md);padding:18px}.one-time-header{align-items:center;display:flex;justify-content:space-between}.one-time-badge{align-items:center;background:var(--forest);border-radius:20px;color:#fff;display:inline-flex;font-size:.75rem;font-weight:600;gap:6px;letter-spacing:.5px;padding:5px 12px;text-transform:uppercase}.one-time-name{color:var(--charcoal);font-weight:600;margin-bottom:0;margin-top:12px}.one-time-price{color:var(--forest);font-family:Playfair Display,serif;font-size:1.5rem;font-weight:600;margin:6px 0 0}.deep-clean-section{background:var(--gold-pale);border:2px solid var(--gold);border-radius:var(--radius-md);overflow:hidden}.deep-clean-header{align-items:center;background:linear-gradient(135deg,var(--gold) 0,var(--gold-light) 100%);color:#fff;display:flex;gap:10px;padding:14px 16px}.deep-clean-header svg{height:20px;width:20px}.deep-clean-header h4{font-family:Playfair Display,serif;font-size:1rem;font-weight:600;margin:0}.deep-clean-content{padding:16px}.deep-clean-base{align-items:center;border-bottom:1px dashed #b8926a4d;color:var(--text-dark);display:flex;font-size:.95rem;justify-content:space-between;margin-bottom:14px;padding:10px 0}.deep-clean-base span:last-child{color:var(--gold-dark);font-weight:600}.addons-container{margin-bottom:14px}.addons-title{color:var(--text-muted);font-size:.8rem;font-weight:600;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.addon-item{align-items:center;background:var(--white);border:2px solid #0000;border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:12px;margin-bottom:8px;padding:14px;transition:all .2s ease}.addon-item.selected,.addon-item:hover{border-color:var(--forest)}.addon-item.selected{background:var(--sage-light)}.addon-checkbox{align-items:center;background:var(--white);border:2px solid var(--cream-dark);border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:24px;justify-content:center;transition:all .2s ease;width:24px}.addon-checkbox.checked{background:var(--forest);border-color:var(--forest);color:#fff}.addon-info{flex:1 1;min-width:0}.addon-name{color:var(--charcoal);display:block;font-weight:500}.addon-desc{color:var(--text-muted);display:block;font-size:.8rem;margin-top:2px}.addon-price{color:var(--forest);font-weight:600}.deep-clean-total{align-items:center;border-top:2px solid var(--gold);color:var(--text-dark);display:flex;font-weight:600;justify-content:space-between;margin-top:14px;padding-top:14px}.deep-clean-total span:last-child{color:var(--gold-dark);font-family:Playfair Display,serif;font-size:1.25rem}.custom-line-items{display:flex;flex-direction:column;gap:8px}.line-item{align-items:center;background:var(--white);border:2px solid var(--cream-dark);border-radius:var(--radius-md);display:flex;gap:12px;padding:14px;transition:all .2s ease}.line-item.required{background:var(--sage-pale);border-color:var(--sage)}.line-item.optional{cursor:pointer}.line-item.optional:hover{background:var(--sage-pale);border-color:var(--sage)}.line-item.optional.selected{background:var(--sage-light);border-color:var(--forest)}.line-item-check{align-items:center;background:var(--white);border:2px solid var(--cream-dark);border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:26px;justify-content:center;transition:all .2s ease;width:26px}.line-item-check.included{background:var(--sage);border-color:var(--sage);color:#fff}.line-item.optional.selected .line-item-check{background:var(--forest);border-color:var(--forest);color:#fff}.line-item-info{flex:1 1;min-width:0}.line-item-name{color:var(--charcoal);display:block;font-weight:600;margin-bottom:2px}.line-item-desc,.line-item-row .line-item-desc{color:var(--text-muted);display:block;font-size:.85rem}.line-item-pricing{flex-shrink:0;text-align:right}.line-item-price,.line-item-row .line-item-price{color:var(--forest);font-family:Playfair Display,serif;font-size:1.1rem;font-weight:600}.line-item-qty{color:var(--text-muted);display:block;font-size:.8rem}.line-item-row{border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:12px 0}.line-item-row .line-item-desc{display:flex;flex-direction:column;gap:4px}.item-name{color:#333;font-weight:500}.item-qty{color:#666;font-size:.85rem}.line-items-optional-header{align-items:center;border-top:1px dashed var(--cream-dark);display:flex;justify-content:space-between;margin-top:8px;padding:16px 0 10px}.line-items-optional-header span:first-child{color:var(--text-muted);font-size:.8rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.optional-hint{color:var(--text-light);font-size:.75rem;font-weight:400!important;text-transform:none!important}.line-item-discount{align-items:center;background:var(--warning-light);border:2px dashed var(--warning);border-radius:var(--radius-md);display:flex;justify-content:space-between;margin-top:8px;padding:14px}.line-item-discount span:first-child{color:#92400e;font-weight:500}.discount-amount{color:#d97706;font-family:Playfair Display,serif}.discount-row{color:#d97706!important}.discount-row .discount-amount{color:#d97706;font-weight:600}.total-row{border-top:2px solid var(--forest);font-size:1.1rem;margin-top:8px;padding-top:16px!important}.total-price{color:var(--forest);font-family:Playfair Display,serif;font-size:1.2rem;font-weight:700}.estimate-notes{background:var(--cream);border-radius:var(--radius-sm);font-size:.9rem;margin-top:16px;padding:12px}.estimate-notes strong{color:var(--charcoal)}.estimate-notes p{color:var(--text-muted);margin:8px 0 0;white-space:pre-wrap}.order-summary{background:var(--charcoal);border-radius:var(--radius-md);color:#fff;margin-top:28px;padding:20px}.order-summary h4{color:#fff9;font-size:.75rem;letter-spacing:.5px;margin:0 0 16px;text-transform:uppercase}.summary-line{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:10px 0}.summary-line:last-child{border-bottom:none}.summary-line.highlight{font-size:1.1rem;font-weight:600}.summary-line .per-visit{color:#fff9;font-size:.8rem;font-weight:400}.summary-line .discount-value,.summary-line.discount-row{color:#fbbf24}.summary-line.total-row{border-top:1px solid #fff3;margin-top:8px;padding-top:16px}.notes-section{margin-top:28px}.notes-section h3{color:var(--charcoal);font-family:Playfair Display,serif;font-size:1rem;font-weight:600;margin-bottom:12px}.portal-section textarea{border:1px solid var(--cream-dark);border-radius:var(--radius-md);font-family:inherit;font-size:.95rem;min-height:100px;padding:14px;resize:vertical;transition:all .2s ease;width:100%}.portal-section textarea:focus{border-color:var(--forest);box-shadow:0 0 0 3px var(--sage-light);outline:none}.portal-section textarea::placeholder{color:var(--text-light)}.portal-actions{display:flex;gap:12px;margin-top:28px}.portal-actions .btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;flex:1 1;font-family:inherit;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:16px 24px;transition:all .2s ease}.btn-decline{background:var(--cream);border:1px solid var(--cream-dark);color:var(--text-muted)}.btn-decline:hover{background:var(--error-light);border-color:var(--error-light);color:var(--error)}.btn-approve{background:linear-gradient(135deg,var(--forest) 0,var(--forest-light) 100%);box-shadow:0 4px 12px #2c5f4e40;color:#fff}.btn-approve:hover{box-shadow:0 6px 16px #2c5f4e59;transform:translateY(-2px)}.btn-approve:active{transform:translateY(0)}.btn-approve:disabled,.btn-decline:disabled{cursor:not-allowed;opacity:.6;transform:none}.portal-footer{border-top:1px solid var(--cream-dark);margin-top:28px;padding-top:28px;text-align:center}.portal-footer p{color:var(--text-muted);font-size:.9rem;margin:0 0 10px}.footer-contact{display:flex;flex-wrap:wrap;gap:24px;justify-content:center}.footer-contact a{align-items:center;color:var(--forest);display:flex;font-size:.9rem;font-weight:500;gap:6px;text-decoration:none;transition:color .2s ease}.footer-contact a:hover{color:var(--forest-dark);text-decoration:underline}.portal-declined,.portal-error,.portal-loading,.portal-message,.portal-success{padding:48px 24px;text-align:center}.portal-error svg,.portal-loading svg,.portal-message svg{margin-bottom:20px}.portal-loading svg{color:var(--forest)}.portal-loading svg.spinning{animation:spin 1s linear infinite}.portal-error svg{color:var(--warning)}.portal-message svg{color:var(--success)}.portal-declined h2,.portal-error h2,.portal-loading h2,.portal-message h2,.portal-success h2{color:var(--charcoal);font-family:Playfair Display,serif;font-size:1.5rem;margin-bottom:12px}.portal-declined p,.portal-error p,.portal-loading p,.portal-message p,.portal-success p{color:var(--text-muted);line-height:1.6;margin-bottom:24px}.message-note{background:var(--sage-light);border-radius:var(--radius-md);color:var(--forest)!important;font-weight:500;padding:14px 18px}.portal-success{padding:48px 24px}.portal-success svg{color:var(--success);margin-bottom:20px}.success-summary{background:var(--cream);border-radius:var(--radius-md);margin-bottom:24px;padding:16px;text-align:left}.success-summary .summary-row{border-bottom:1px solid var(--cream-dark);color:var(--charcoal);display:flex;justify-content:space-between;padding:10px 0}.success-summary .summary-row:last-child{border-bottom:none}.success-summary .summary-row.highlight{color:var(--forest);font-size:1.1rem;font-weight:600}.contact-info{margin-top:24px}.contact-info p{font-size:.9rem;margin-bottom:14px!important}.contact-info a{align-items:center;color:var(--forest);display:flex;font-weight:500;gap:8px;justify-content:center;margin:10px 0;text-decoration:none}.contact-info a:hover{text-decoration:underline}.portal-error .btn-primary{align-items:center;background:linear-gradient(135deg,var(--forest) 0,var(--forest-light) 100%);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:8px;padding:14px 24px;text-decoration:none}.portal-error .btn-primary:hover{box-shadow:0 4px 12px #2c5f4e4d;transform:translateY(-2px)}@media (max-width:480px){.client-portal{padding:12px}.portal-header{border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:24px 18px}.portal-content{border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:24px 18px}.portal-actions{flex-direction:column-reverse}.footer-contact{flex-direction:column;gap:12px}.frequency-option{padding:14px}.frequency-price{font-size:1.1rem}.addon-item,.line-item{padding:12px}.line-item{flex-wrap:wrap}.line-item-pricing{border-top:1px solid var(--cream-dark);margin-top:8px;padding-top:8px;text-align:left;width:100%}}:root{--portal-sage:#2c5f4e;--portal-sage-light:#4a9a85;--portal-sage-pale:#e8f0ed;--portal-gold:#b8926a;--portal-gold-light:#d4b896;--portal-gold-pale:#f5f0e8;--portal-navy:#1a2634;--portal-cream:#f8f7f5;--portal-cream-dark:#e8e6e3;--portal-white:#fff;--portal-text:#2d3436;--portal-text-muted:#7f8c8d;--portal-red:#c0392b;--portal-red-light:#fadbd8;--portal-green:#27ae60;--portal-green-light:#d5f5e3;--portal-orange:#e67e22;--portal-radius-sm:8px;--portal-radius-md:12px;--portal-radius-lg:16px;--portal-shadow:0 4px 20px #00000014;--portal-shadow-lg:0 8px 40px #0000001f}.portal-page{background:#f8f7f5;background:var(--portal-cream);min-height:100vh;padding-bottom:100px}.portal-login{align-items:center;background:linear-gradient(135deg,#2c5f4e,#1a3d32);background:linear-gradient(135deg,var(--portal-sage) 0,#1a3d32 100%);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-container{max-width:420px;width:100%}.login-header{margin-bottom:32px;text-align:center}.login-logo{align-items:center;color:#fff;color:var(--portal-white);display:inline-flex;gap:12px}.login-logo svg{opacity:.9}.login-logo h1{font-family:Playfair Display,Georgia,serif;font-size:1.75rem;font-weight:600;margin:0}.login-logo span{color:#d4b896;color:var(--portal-gold-light);display:block;font-size:.8rem;letter-spacing:1px;margin-top:2px}.login-card{background:#fff;background:var(--portal-white);border-radius:16px;border-radius:var(--portal-radius-lg);box-shadow:0 8px 40px #0000001f;box-shadow:var(--portal-shadow-lg);padding:40px 32px}.login-card h2{color:#1a2634;color:var(--portal-navy);font-family:Playfair Display,Georgia,serif;font-size:1.5rem;margin:0 0 8px;text-align:center}.login-card>p{color:#7f8c8d;color:var(--portal-text-muted);font-size:.95rem;margin-bottom:28px;text-align:center}.login-tabs{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:24px}.login-tab{align-items:center;background:#fff;background:var(--portal-white);border:1px solid #e8e6e3;border:1px solid var(--portal-cream-dark);border-radius:8px;border-radius:var(--portal-radius-sm);color:#7f8c8d;color:var(--portal-text-muted);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:8px;justify-content:center;padding:12px;transition:all .2s ease}.login-tab:hover{border-color:#e8f0ed;border-color:var(--portal-sage-pale)}.login-tab.active,.login-tab:hover{color:#2c5f4e;color:var(--portal-sage)}.login-tab.active{background:#e8f0ed;background:var(--portal-sage-pale);border-color:#2c5f4e;border-color:var(--portal-sage)}.form-field{margin-bottom:20px}.form-field label{color:var(--portal-navy);display:block}.form-field input,.form-field select,.form-field textarea{border:1px solid #e8e6e3;border:1px solid var(--portal-cream-dark);border-radius:var(--portal-radius-sm);color:#2d3436;color:var(--portal-text);font-family:inherit;padding:14px 16px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--portal-sage);box-shadow:0 0 0 3px #e8f0ed;box-shadow:0 0 0 3px var(--portal-sage-pale)}.form-field input::placeholder{color:#7f8c8d;color:var(--portal-text-muted)}.code-input{font-size:2rem!important;font-weight:600;letter-spacing:12px;padding:16px!important;text-align:center}.code-sent-message{align-items:center;background:#f0fdf4;border-radius:8px;border-radius:var(--portal-radius-sm);display:flex;gap:12px;margin-bottom:24px;padding:16px}.code-sent-message p{color:#2d3436;color:var(--portal-text);font-size:.95rem;margin:0}.code-sent-message strong{color:#1a2634;color:var(--portal-navy)}.login-hint{color:#7f8c8d;color:var(--portal-text-muted);font-size:.85rem;margin-top:16px;text-align:center}.code-actions{display:flex;gap:24px;justify-content:center;margin-top:12px}.code-actions .btn-link{font-size:.85rem;padding:8px}.remember-device{align-items:center;color:#475569;cursor:pointer;display:flex;font-size:.9rem;gap:10px;padding:12px 0;-webkit-user-select:none;user-select:none}.remember-device input[type=checkbox]{accent-color:#2c5f4e;accent-color:var(--portal-sage,#2c5f4e);cursor:pointer;flex-shrink:0;height:18px;width:18px}.remember-device span{line-height:1.3}.loading-spinner{animation:portalSpin .7s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top:3px solid var(--portal-sage,#2c5f4e);height:36px;width:36px}@keyframes portalSpin{to{transform:rotate(1turn)}}.btn-login{background:linear-gradient(135deg,#2c5f4e,#3a7a65);background:linear-gradient(135deg,var(--portal-sage) 0,#3a7a65 100%);border:none;border-radius:8px;border-radius:var(--portal-radius-sm);color:#fff;color:var(--portal-white);cursor:pointer;font-size:1rem;font-weight:600;margin-top:8px;padding:16px;transition:all .2s ease;width:100%}.btn-login:hover:not(:disabled){box-shadow:0 6px 20px #2c5f4e4d;transform:translateY(-2px)}.btn-login:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-link{color:#2c5f4e;color:var(--portal-sage);display:block;font-weight:500;padding:12px;text-align:center}.login-error{align-items:center;background:#fadbd8;background:var(--portal-red-light);border-radius:8px;border-radius:var(--portal-radius-sm);color:#c0392b;color:var(--portal-red);display:flex;font-size:.9rem;gap:10px;margin-bottom:16px;padding:12px 16px}.login-footer{color:#ffffffb3;font-size:.9rem;margin-top:32px;text-align:center}.login-footer a{align-items:center;color:#fff;color:var(--portal-white);display:inline-flex;gap:6px;margin-top:8px}.method-choice{padding:8px 0}.method-prompt{color:#2d3436;color:var(--portal-text);font-size:.95rem;margin-bottom:20px;text-align:center}.method-options{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.method-option{align-items:center;background:#f8f7f5;background:var(--portal-cream);border:2px solid #e8e6e3;border:2px solid var(--portal-cream-dark);border-radius:12px;border-radius:var(--portal-radius-md);cursor:pointer;display:flex;gap:16px;padding:16px 20px;text-align:left;transition:all .2s ease;width:100%}.method-option:hover:not(:disabled){background:#e8f0ed;background:var(--portal-sage-pale);border-color:#2c5f4e;border-color:var(--portal-sage)}.method-option:disabled{cursor:not-allowed;opacity:.6}.method-option svg:first-child{color:#2c5f4e;color:var(--portal-sage);flex-shrink:0}.method-details{display:flex;flex:1 1;flex-direction:column;gap:2px}.method-label{color:#1a2634;color:var(--portal-navy);font-size:1rem;font-weight:600}.method-destination{color:#7f8c8d;color:var(--portal-text-muted);font-size:.85rem}.method-option svg:last-child{color:#7f8c8d;color:var(--portal-text-muted);flex-shrink:0}.account-select{padding:8px 0}.select-prompt{color:#2d3436;color:var(--portal-text);font-size:.95rem;line-height:1.5;margin-bottom:20px;text-align:center}.account-options{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.account-option{align-items:center;background:#f8f7f5;background:var(--portal-cream);border:2px solid #e8e6e3;border:2px solid var(--portal-cream-dark);border-radius:12px;border-radius:var(--portal-radius-md);cursor:pointer;display:flex;gap:16px;padding:16px 20px;text-align:left;transition:all .2s ease;width:100%}.account-option:hover:not(:disabled){background:#e8f0ed;background:var(--portal-sage-pale);border-color:#2c5f4e;border-color:var(--portal-sage)}.account-option:disabled{cursor:not-allowed;opacity:.6}.account-icon{align-items:center;background:#e8f0ed;background:var(--portal-sage-pale);border-radius:50%;color:#2c5f4e;color:var(--portal-sage);display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.account-details{display:flex;flex:1 1;flex-direction:column;gap:4px}.account-name{color:#1a2634;color:var(--portal-navy);font-size:1rem;font-weight:600}.account-address{align-items:center;color:#2d3436;color:var(--portal-text);display:flex;font-size:.85rem;gap:6px}.account-address svg{flex-shrink:0}.account-address svg,.account-email{color:#7f8c8d;color:var(--portal-text-muted)}.account-email{align-items:center;display:flex;font-size:.85rem;gap:6px}.account-email svg{flex-shrink:0}.account-status{border-radius:10px;display:inline-block;font-size:.7rem;font-weight:600;margin-top:4px;padding:2px 8px;text-transform:uppercase;width:-webkit-fit-content;width:fit-content}.account-status.active{background:#dcfce7;color:#16a34a}.account-status.lead{background:#fef3c7;color:#d97706}.account-option>svg:last-child{color:#7f8c8d;color:var(--portal-text-muted);flex-shrink:0}.portal-main-header{background:#1a2634;background:var(--portal-navy);padding:16px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{justify-content:space-between;margin:0 auto;max-width:600px}.header-content,.header-logo{align-items:center;display:flex}.header-logo{color:#fff;color:var(--portal-white);gap:10px}.header-logo svg{color:#4a9a85;color:var(--portal-sage-light)}.header-logo span{font-family:Playfair Display,Georgia,serif;font-size:1.1rem;font-weight:600}.header-user{color:#fffc;font-size:.9rem;gap:12px}.btn-logout,.header-user{align-items:center;display:flex}.btn-logout{background:#ffffff1a;border:none;border-radius:50%;color:#ffffffb3;cursor:pointer;height:36px;justify-content:center;transition:all .2s ease;width:36px}.btn-logout:hover{background:#fff3;color:#fff;color:var(--portal-white)}.portal-nav{background:#fff;background:var(--portal-white);border-bottom:1px solid #e8e6e3;border-bottom:1px solid var(--portal-cream-dark);display:flex;gap:4px;justify-content:center;padding:8px 16px;position:-webkit-sticky;position:sticky;top:68px;z-index:99}.nav-tab{align-items:center;background:none;border:none;border-radius:8px;border-radius:var(--portal-radius-sm);color:#7f8c8d;color:var(--portal-text-muted);cursor:pointer;display:flex;flex-direction:column;font-size:.75rem;font-weight:500;gap:4px;min-width:70px;padding:10px 16px;position:relative;transition:all .2s ease}.nav-tab.active,.nav-tab:hover{background:#e8f0ed;background:var(--portal-sage-pale);color:#2c5f4e;color:var(--portal-sage)}.nav-badge{background:#c0392b;background:var(--portal-red);border-radius:10px;color:#fff;color:var(--portal-white);font-size:.65rem;font-weight:600;min-width:16px;padding:2px 6px;position:absolute;right:8px;text-align:center;top:4px}.portal-main{margin:0 auto;max-width:600px;padding:24px 16px}.welcome-section{margin-bottom:28px;text-align:center}.welcome-section h1{color:#1a2634;color:var(--portal-navy);font-family:Playfair Display,Georgia,serif;font-size:1.75rem;margin:0 0 8px}.welcome-section p{color:#7f8c8d;color:var(--portal-text-muted);font-size:.95rem;margin:0}.quick-actions{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.action-card{align-items:center;background:#fff;background:var(--portal-white);border:none;border-radius:12px;border-radius:var(--portal-radius-md);box-shadow:0 4px 20px #00000014;box-shadow:var(--portal-shadow);cursor:pointer;display:flex;gap:16px;padding:18px 20px;text-align:left;transition:all .2s ease;width:100%}.action-card:hover{box-shadow:0 6px 24px #0000001a;transform:translateY(-2px)}.action-card.highlight{background:linear-gradient(135deg,#2c5f4e,#3a7a65);background:linear-gradient(135deg,var(--portal-sage) 0,#3a7a65 100%)}.action-card.highlight .action-icon,.action-card.highlight .action-text h3,.action-card.highlight .action-text p,.action-card.highlight>svg{color:#fff;color:var(--portal-white)}.action-card.highlight .action-icon{background:#fff3}.action-icon{align-items:center;background:#e8f0ed;background:var(--portal-sage-pale);border-radius:8px;border-radius:var(--portal-radius-sm);color:#2c5f4e;color:var(--portal-sage);display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.action-icon.laundry{background:#f5f0e8;background:var(--portal-gold-pale);color:#b8926a;color:var(--portal-gold)}.action-icon.payment{background:#d5f5e3;background:var(--portal-green-light);color:#27ae60;color:var(--portal-green)}.action-text{flex:1 1}.action-text h3{color:#1a2634;color:var(--portal-navy);font-size:1rem;font-weight:600;margin:0 0 4px}.action-text p{font-size:.85rem;margin:0}.action-card>svg,.action-text p{color:#7f8c8d;color:var(--portal-text-muted)}.action-card>svg{flex-shrink:0}.account-section,.appointments-section,.invoices-section,.recent-section,.upcoming-section{margin-bottom:28px}.section-header h2{color:#1a2634;color:var(--portal-navy);font-family:Playfair Display,Georgia,serif;font-size:1.25rem}.account-section h3,.appointments-section h3,.invoices-section h3{color:#7f8c8d;color:var(--portal-text-muted);font-size:.85rem;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.appointment-list{display:flex;flex-direction:column;gap:12px}.appointment-card{align-items:center;background:#fff;background:var(--portal-white);border-radius:12px;border-radius:var(--portal-radius-md);box-shadow:0 4px 20px #00000014;box-shadow:var(--portal-shadow);display:flex;gap:16px;padding:16px}.appointment-card.detailed{flex-wrap:wrap}.appointment-card.past{opacity:.7}.appointment-date{flex-shrink:0;text-align:center;width:56px}.appointment-date .day{color:#2c5f4e;color:var(--portal-sage);display:block;font-size:1.75rem;font-weight:700;line-height:1}.appointment-date .month{font-size:.8rem;font-weight:500;text-transform:uppercase}.appointment-date .month,.appointment-date .weekday{color:#7f8c8d;color:var(--portal-text-muted);display:block}.appointment-date .weekday{font-size:.7rem;margin-top:4px}.appointment-details,.appointment-info{flex:1 1;min-width:0}.appointment-details h4,.appointment-info h4{color:#1a2634;color:var(--portal-navy);font-size:1rem;font-weight:600;margin:0 0 4px}.appointment-address,.appointment-team,.appointment-time{align-items:center;color:#7f8c8d;color:var(--portal-text-muted);display:flex;font-size:.85rem;gap:6px;margin:4px 0}.appointment-address svg,.appointment-team svg,.appointment-time svg{color:#2c5f4e;color:var(--portal-sage);flex-shrink:0}.appointment-actions{flex-shrink:0}.appointment-price{color:#2c5f4e;color:var(--portal-sage);font-size:1rem;font-weight:600}.completed-badge{align-items:center;color:#27ae60;color:var(--portal-green);display:inline-flex;font-size:.8rem;gap:4px}.btn-outline,.btn-reschedule{background:#fff;background:var(--portal-white);border:1px solid #2c5f4e;border:1px solid var(--portal-sage);border-radius:8px;border-radius:var(--portal-radius-sm);color:#2c5f4e;color:var(--portal-sage);cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.btn-outline:hover,.btn-reschedule:hover{background:#e8f0ed;background:var(--portal-sage-pale)}.recent-list{display:flex;flex-direction:column;gap:12px}.recent-item{background:#fff;background:var(--portal-white);border-radius:12px;border-radius:var(--portal-radius-md);box-shadow:0 4px 20px #00000014;box-shadow:var(--portal-shadow);gap:12px;padding:14px 16px}.recent-icon,.recent-item{align-items:center;display:flex}.recent-icon{background:#d5f5e3;background:var(--portal-green-light);border-radius:50%;color:#27ae60;color:var(--portal-green);flex-shrink:0;height:36px;justify-content:center;width:36px}.recent-info{flex:1 1}.recent-date{color:#1a2634;color:var(--portal-navy);display:block;font-size:.9rem;font-weight:500}.recent-type{display:block}.btn-photos,.recent-type{color:#7f8c8d;color:var(--portal-text-muted);font-size:.8rem}.btn-photos{align-items:center;background:#f8f7f5;background:var(--portal-cream);border:none;border-radius:8px;border-radius:var(--portal-radius-sm);cursor:pointer;display:flex;gap:6px;padding:8px 12px;transition:all .2s ease}.btn-photos:hover{background:#e8e6e3;background:var(--portal-cream-dark);color:#1a2634;color:var(--portal-navy)}.empty-state{background:var(--portal-white);border-radius:var(--portal-radius-md);box-shadow:0 4px 20px #00000014;box-shadow:var(--portal-shadow);padding:40px 20px}.empty-state p,.empty-state svg{color:#7f8c8d;color:var(--portal-text-muted)}.empty-state p{margin:0 0 12px}.portal-account h2,.portal-appointments h2,.portal-invoices h2{color:#1a2634;color:var(--portal-navy);font-family:Playfair Display,Georgia,serif;font-size:1.5rem;margin:0 0 24px}.invoice-list{display:flex;flex-direction:column;gap:12px}.invoice-card{background:var(--portal-white);border-radius:var(--portal-radius-md);box-shadow:0 4px 20px #00000014;box-shadow:var(--portal-shadow);padding:20px}.invoice-card.unpaid{border-left:4px solid #e67e22;border-left:4px solid var(--portal-orange)}.invoice-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.invoice-number{color:#1a2634;color:var(--portal-navy);font-size:.9rem;font-weight:500}.invoice-status{border-radius:12px;font-size:.75rem;font-weight:600;padding:4px 10px;text-transform:uppercase}.invoice-status.pending{background:#f5f0e8;background:var(--portal-gold-pale);color:#b8926a;color:var(--portal-gold)}.invoice-status.overdue{background:#fadbd8;background:var(--portal-red-light);color:#c0392b;color:var(--portal-red)}.invoice-status.paid{background:#d5f5e3;background:var(--portal-green-light);color:#27ae60;color:var(--portal-green)}.invoice-body{margin-bottom:16px}.invoice-amount{color:#1a2634;color:var(--portal-navy);font-size:1.75rem;font-weight:700;margin-bottom:4px}.invoice-due{color:#7f8c8d;color:var(--portal-text-muted);font-size:.9rem}.btn-pay{align-items:center;background:linear-gradient(135deg,#2c5f4e,#3a7a65);background:linear-gradient(135deg,var(--portal-sage) 0,#3a7a65 100%);border:none;border-radius:8px;border-radius:var(--portal-radius-sm);color:#fff;color:var(--portal-white);cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:14px;text-decoration:none;transition:all .2s ease;width:100%}.btn-pay:hover:not(:disabled){box-shadow:0 4px 16px #2c5f4e4d;transform:translateY(-2px)}.btn-pay.disabled{background:#e8e6e3;background:var(--portal-cream-dark);color:#7f8c8d;color:var(--portal-text-muted);cursor:not-allowed}.invoice-history{background:#fff;background:var(--portal-white);border-radius:12px;border-radius:var(--portal-radius-md);box-shadow:0 4px 20px #00000014;box-shadow:var(--portal-shadow);overflow:hidden}.invoice-row{align-items:center;border-bottom:1px solid #f8f7f5;border-bottom:1px solid var(--portal-cream);display:flex;gap:12px;padding:16px}.invoice-row:last-child{border-bottom:none}.invoice-row-info{flex:1 1}.invoice-row-info .invoice-number{color:#1a2634;color:var(--portal-navy);display:block;font-size:.9rem;font-weight:500}.invoice-row-info .invoice-date{color:#7f8c8d;color:var(--portal-text-muted);display:block;font-size:.8rem}.invoice-row-amount{color:#1a2634;color:var(--portal-navy);font-weight:600}.invoice-row-status{align-items:center;display:flex;font-size:.8rem;font-weight:500;gap:4px;text-transform:capitalize}.invoice-row-status.paid{color:#27ae60;color:var(--portal-green)}.invoice-row-status.pending{color:#b8926a;color:var(--portal-gold)}.invoice-row-status.overdue{color:#c0392b;color:var(--portal-red)}.info-card{background:#fff;background:var(--portal-white);border-radius:12px;border-radius:var(--portal-radius-md);box-shadow:0 4px 20px #00000014;box-shadow:var(--portal-shadow);overflow:hidden}.info-row{align-items:center;border-bottom:1px solid #f8f7f5;border-bottom:1px solid var(--portal-cream);justify-content:space-between;padding:16px}.info-row:last-child{border-bottom:none}.info-row label{color:#7f8c8d;color:var(--portal-text-muted);font-size:.9rem}.info-row span{color:#1a2634;color:var(--portal-navy);font-weight:500}.plan-badge{background:#e8f0ed;background:var(--portal-sage-pale);border-radius:20px;color:#2c5f4e;color:var(--portal-sage);font-size:.85rem;padding:6px 14px}.help-buttons{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.help-btn{align-items:center;background:#fff;background:var(--portal-white);border-radius:12px;border-radius:var(--portal-radius-md);box-shadow:0 4px 20px #00000014;box-shadow:var(--portal-shadow);color:#2c5f4e;color:var(--portal-sage);display:flex;font-weight:500;gap:8px;justify-content:center;padding:16px;text-decoration:none;transition:all .2s ease}.help-btn:hover{box-shadow:0 6px 20px #0000001a;transform:translateY(-2px)}.btn-logout-full{align-items:center;background:#fff;background:var(--portal-white);border:1px solid #e8e6e3;border:1px solid var(--portal-cream-dark);border-radius:12px;border-radius:var(--portal-radius-md);color:#7f8c8d;color:var(--portal-text-muted);cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:8px;justify-content:center;margin-top:24px;padding:16px;transition:all .2s ease;width:100%}.btn-logout-full:hover{background:#fadbd8;background:var(--portal-red-light);border-color:#c0392b;border-color:var(--portal-red);color:#c0392b;color:var(--portal-red)}.modal-overlay{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s ease;background:var(--portal-white);border-radius:var(--portal-radius-lg);max-width:440px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid #f8f7f5;border-bottom:1px solid var(--portal-cream)}.modal-header h3{color:#1a2634;color:var(--portal-navy);font-family:Playfair Display,Georgia,serif;font-size:1.25rem;margin:0}.modal-close{align-items:center;background:#f8f7f5;background:var(--portal-cream);border:none;border-radius:50%;color:#7f8c8d;color:var(--portal-text-muted);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.modal-close:hover{background:#e8e6e3;background:var(--portal-cream-dark);color:#1a2634;color:var(--portal-navy)}.modal-actions{grid-gap:12px;display:grid;grid-template-columns:1fr 1fr;margin-top:24px}.btn-primary{background:linear-gradient(135deg,#2c5f4e,#3a7a65);background:linear-gradient(135deg,var(--portal-sage) 0,#3a7a65 100%);border-radius:var(--portal-radius-sm);color:var(--portal-white);font-weight:600;padding:14px 20px}.btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #2c5f4e4d;transform:translateY(-1px)}.btn-secondary{background:var(--portal-white);border:1px solid var(--portal-cream-dark);border-radius:8px;border-radius:var(--portal-radius-sm);color:#7f8c8d;color:var(--portal-text-muted);padding:14px 20px;transition:all .2s ease}.btn-secondary:hover{background:#f8f7f5;background:var(--portal-cream);color:#1a2634;color:var(--portal-navy)}.modal-success{padding:40px 24px;text-align:center}.modal-success svg{color:#27ae60;color:var(--portal-green);margin-bottom:16px}.modal-success h3{color:#1a2634;color:var(--portal-navy);font-family:Playfair Display,Georgia,serif;font-size:1.5rem;margin:0 0 12px}.modal-success p{color:#7f8c8d;color:var(--portal-text-muted);line-height:1.5;margin:0 0 24px}.current-appointment{background:#f8f7f5;background:var(--portal-cream);border-radius:8px;border-radius:var(--portal-radius-sm);margin-bottom:20px;padding:14px 16px}.current-appointment label{color:#7f8c8d;color:var(--portal-text-muted);display:block;font-size:.8rem;margin-bottom:4px}.current-appointment p{color:#1a2634;color:var(--portal-navy);font-weight:500;margin:0}.addon-modal .modal-body{padding-bottom:16px}.addon-note{color:#7f8c8d;color:var(--portal-text-muted);font-size:.9rem;margin-bottom:20px}.addon-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.addon-option{align-items:center;background:#f8f7f5;background:var(--portal-cream);border:2px solid #0000;border-radius:8px;border-radius:var(--portal-radius-sm);cursor:pointer;display:flex;gap:12px;padding:14px 16px;text-align:left;transition:all .2s ease;width:100%}.addon-option:hover{border-color:#e8f0ed;border-color:var(--portal-sage-pale)}.addon-option.selected{background:#e8f0ed;background:var(--portal-sage-pale);border-color:#2c5f4e;border-color:var(--portal-sage)}.addon-check{align-items:center;background:#fff;background:var(--portal-white);border:2px solid #e8e6e3;border:2px solid var(--portal-cream-dark);border-radius:6px;display:flex;flex-shrink:0;height:24px;justify-content:center;transition:all .2s ease;width:24px}.addon-option.selected .addon-check{background:#2c5f4e;background:var(--portal-sage);border-color:#2c5f4e;border-color:var(--portal-sage);color:#fff;color:var(--portal-white)}.addon-option .addon-info{flex:1 1}.addon-option .addon-name{color:#1a2634;color:var(--portal-navy);display:block;font-size:.95rem;font-weight:500}.addon-option .addon-time{color:#7f8c8d;color:var(--portal-text-muted);display:block;font-size:.8rem}.addon-option .addon-price{color:#2c5f4e;color:var(--portal-sage);font-weight:600}.addon-total{background:#e8f0ed;background:var(--portal-sage-pale);color:#2c5f4e;color:var(--portal-sage);font-weight:600;justify-content:space-between}.addon-total,.laundry-info{border-radius:8px;border-radius:var(--portal-radius-sm);display:flex;padding:16px}.laundry-info{align-items:flex-start;background:#f5f0e8;background:var(--portal-gold-pale);gap:16px;margin-bottom:24px}.laundry-info svg{color:#b8926a;color:var(--portal-gold);flex-shrink:0;margin-top:2px}.laundry-info h4{color:#1a2634;color:var(--portal-navy);font-size:1rem;margin:0 0 4px}.laundry-info p{color:#7f8c8d;color:var(--portal-text-muted);font-size:.85rem;margin:0}.portal-error-screen{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:40px 20px;text-align:center}.portal-error-screen svg{color:#e67e22;color:var(--portal-orange);margin-bottom:20px}.portal-error-screen h2{color:#1a2634;color:var(--portal-navy);font-family:Playfair Display,Georgia,serif;font-size:1.5rem;margin:0 0 12px}.portal-error-screen p{color:#7f8c8d;color:var(--portal-text-muted);margin:0 0 24px;max-width:300px}@media (max-width:480px){.portal-nav{gap:2px;padding:8px 12px}.nav-tab{min-width:60px;padding:8px 12px}.nav-tab span{font-size:.7rem}.portal-main{padding:20px 12px}.welcome-section h1{font-size:1.5rem}.action-card{padding:16px}.appointment-card{padding:14px}.appointment-date .day{font-size:1.5rem}.modal-actions{grid-template-columns:1fr}.modal-actions .btn-secondary{order:1}.help-buttons{grid-template-columns:1fr}}.portal-messages{margin:0 auto;max-width:700px}.messages-header-portal{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.messages-header-portal h2{color:#1a2634;color:var(--portal-navy);font-size:1.5rem;margin:0}.btn-new-message{align-items:center;background:#2c5f4e;background:var(--portal-sage);border:none;border-radius:8px;border-radius:var(--portal-radius-sm);color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:8px;padding:10px 20px;transition:background .2s}.btn-new-message:hover{background:#234d3e}.portal-message-list{display:flex;flex-direction:column;gap:12px}.portal-message-card{background:#fff;border:1px solid #0000;border-radius:12px;border-radius:var(--portal-radius-md);cursor:pointer;padding:16px 20px;transition:all .2s}.portal-message-card:hover{border-color:#4a9a85;border-color:var(--portal-sage-light);box-shadow:0 4px 20px #00000014;box-shadow:var(--portal-shadow);transform:translateY(-2px)}.portal-message-card.unread{background:#e8f0ed;background:var(--portal-sage-pale);border-left:3px solid #2c5f4e;border-left:3px solid var(--portal-sage)}.message-card-content{display:flex;flex-direction:column;gap:8px}.message-card-top{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.message-subject{color:#1a2634;color:var(--portal-navy);font-size:1rem}.message-time{font-size:.8rem;white-space:nowrap}.message-preview-text,.message-time{color:#7f8c8d;color:var(--portal-text-muted)}.message-preview-text{font-size:.9rem;line-height:1.4;margin:0}.message-card-bottom{align-items:center;display:flex;justify-content:space-between;margin-top:4px}.status-resolved{align-items:center;color:#27ae60;color:var(--portal-green);display:flex;font-size:.8rem;font-weight:500;gap:4px}.status-unread{color:#2c5f4e;color:var(--portal-sage);font-size:.8rem;font-weight:600}.status-pending{font-size:.8rem}.message-card-bottom svg,.status-pending{color:#7f8c8d;color:var(--portal-text-muted)}.conversation-view{display:flex;flex-direction:column;height:calc(100vh - 220px);min-height:400px}.conversation-header-portal{align-items:center;border-bottom:1px solid #e8e6e3;border-bottom:1px solid var(--portal-cream-dark);display:flex;gap:16px;margin-bottom:16px;padding-bottom:16px}.btn-back{align-items:center;background:#e8e6e3;background:var(--portal-cream-dark);border:none;border-radius:var(--portal-radius-sm);color:#2d3436;color:var(--portal-text);display:flex;font-size:.9rem;gap:6px;padding:8px 12px;transition:background .2s}.btn-back:hover{background:#e0ddd5}.conversation-title{align-items:center;display:flex;flex:1 1;gap:12px}.conversation-title h3{color:#1a2634;color:var(--portal-navy);font-size:1.1rem;margin:0}.status-badge.resolved{align-items:center;background:#d5f5e3;background:var(--portal-green-light);border-radius:20px;color:#27ae60;color:var(--portal-green);display:flex;font-size:.75rem;font-weight:600;gap:4px;padding:4px 10px}.conversation-messages{display:flex;flex:1 1;flex-direction:column;gap:16px;overflow-y:auto;padding:16px 0}.message-bubble{border-radius:16px;max-width:80%;padding:12px 16px}.message-bubble.from-client{align-self:flex-end;background:#2c5f4e;background:var(--portal-sage);border-bottom-right-radius:4px;color:#fff}.message-bubble.from-admin{align-self:flex-start;background:#fff;border:1px solid #e8e6e3;border:1px solid var(--portal-cream-dark);border-bottom-left-radius:4px}.message-sender{font-size:.75rem;font-weight:600;margin-bottom:4px;opacity:.8}.message-bubble.from-admin .message-sender{color:#2c5f4e;color:var(--portal-sage)}.message-body{font-size:.95rem;line-height:1.5;white-space:pre-wrap}.message-time{font-size:.7rem;margin-top:6px;opacity:.7}.reply-section{border-top:1px solid #e8e6e3;border-top:1px solid var(--portal-cream-dark);display:flex;flex-direction:column;gap:12px;padding-top:16px}.reply-section textarea{border:1px solid #e8e6e3;border:1px solid var(--portal-cream-dark);border-radius:8px;border-radius:var(--portal-radius-sm);font-family:inherit;font-size:.95rem;min-height:80px;padding:12px;resize:vertical;width:100%}.reply-section textarea:focus{border-color:#2c5f4e;border-color:var(--portal-sage);outline:none}.btn-send{align-items:center;align-self:flex-end;background:#2c5f4e;background:var(--portal-sage);border:none;border-radius:8px;border-radius:var(--portal-radius-sm);color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:8px;justify-content:center;padding:12px 24px;transition:background .2s}.btn-send:hover:not(:disabled){background:#234d3e}.btn-send:disabled{background:#9ca3af;cursor:not-allowed}.portal-messages .empty-state{background:#fff;border-radius:12px;border-radius:var(--portal-radius-md);padding:60px 20px;text-align:center}.portal-messages .empty-state svg{color:#7f8c8d;color:var(--portal-text-muted);margin-bottom:16px;opacity:.5}.portal-messages .empty-state h3{color:#1a2634;color:var(--portal-navy);font-size:1.2rem;margin:0 0 8px}.portal-messages .empty-state p{color:#7f8c8d;color:var(--portal-text-muted);margin:0 0 20px}.portal-messages .empty-state .btn-primary{align-items:center;display:inline-flex;gap:8px}.book-cleaning-modal .modal-body{padding:0}.book-cleaning-modal form{padding:20px}.book-cleaning-modal .form-field{margin-bottom:20px}.book-cleaning-modal .form-field label{color:#1a2634;color:var(--portal-navy);display:block;font-weight:500;margin-bottom:8px}.service-options{display:flex;flex-direction:column;gap:10px}.service-option{align-items:flex-start;background:#f8f7f5;background:var(--portal-cream);border:2px solid #0000;border-radius:8px;border-radius:var(--portal-radius-sm);cursor:pointer;display:flex;gap:12px;padding:16px;text-align:left;transition:all .2s ease;width:100%}.service-option:hover{border-color:#e8f0ed;border-color:var(--portal-sage-pale)}.service-option.selected{background:#e8f0ed;background:var(--portal-sage-pale);border-color:#2c5f4e;border-color:var(--portal-sage)}.service-check{align-items:center;background:#fff;background:var(--portal-white);border:2px solid #e8e6e3;border:2px solid var(--portal-cream-dark);border-radius:50%;display:flex;flex-shrink:0;height:24px;justify-content:center;margin-top:2px;transition:all .2s ease;width:24px}.service-option.selected .service-check{background:#2c5f4e;background:var(--portal-sage);border-color:#2c5f4e;border-color:var(--portal-sage);color:#fff;color:var(--portal-white)}.service-info{flex:1 1}.service-info strong{color:#1a2634;color:var(--portal-navy);display:block;font-size:1rem;margin-bottom:2px}.service-info span{color:#7f8c8d;color:var(--portal-text-muted);display:block;font-size:.85rem}.service-info .estimate{color:#2c5f4e;color:var(--portal-sage);font-size:.8rem;font-weight:500;margin-top:4px}.book-cleaning-modal .modal-footer{border-top:1px solid #e8e6e3;border-top:1px solid var(--portal-cream-dark);display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:16px}.action-icon.booking{background:linear-gradient(135deg,#2c5f4e,#4a9a85);background:linear-gradient(135deg,var(--portal-sage) 0,var(--portal-sage-light) 100%)}@media (max-width:600px){.messages-header-portal{align-items:stretch;flex-direction:column;gap:12px}.btn-new-message{justify-content:center}.message-bubble{max-width:90%}.conversation-view{height:calc(100vh - 200px)}}.comm-prefs-section{margin-top:24px}.sms-consent-box{background:#e8f0ed;background:var(--portal-sage-pale);border-radius:12px;border-radius:var(--portal-radius-md);margin-bottom:20px;padding:16px}.consent-toggle{align-items:flex-start;cursor:pointer;display:flex;gap:12px}.consent-toggle input{display:none}.toggle-slider{background:#e8e6e3;background:var(--portal-cream-dark);border-radius:13px;flex-shrink:0;height:26px;margin-top:2px;transition:all .2s ease;width:48px}.toggle-slider:after{background:#fff;background:var(--portal-white);border-radius:50%;box-shadow:0 2px 4px #00000026;content:"";height:22px;left:2px;position:absolute;top:2px;transition:all .2s ease;width:22px}.consent-toggle input:checked+.toggle-slider{background:#2c5f4e;background:var(--portal-sage)}.consent-toggle input:checked+.toggle-slider:after{left:24px}.consent-label{display:flex;flex-direction:column;gap:4px}.consent-label strong{color:#1a2634;color:var(--portal-navy);font-size:.95rem}.consent-label span{color:#7f8c8d;color:var(--portal-text-muted);font-size:.85rem;line-height:1.4}.prefs-group{margin-bottom:20px}.prefs-group h4{border-bottom:1px solid #e8e6e3;border-bottom:1px solid var(--portal-cream-dark);color:#7f8c8d;color:var(--portal-text-muted);font-size:.8rem;letter-spacing:.5px;margin:0 0 12px;padding-bottom:8px;text-transform:uppercase}.prefs-list{display:flex;flex-direction:column;gap:8px}.pref-row{align-items:center;background:#f8f7f5;background:var(--portal-cream);border-radius:8px;border-radius:var(--portal-radius-sm);display:flex;justify-content:space-between;padding:10px 12px}.pref-label{color:#2d3436;color:var(--portal-text);font-size:.9rem}.pref-toggles{display:flex;gap:8px}.pref-toggle{align-items:center;background:#fff;background:var(--portal-white);border:2px solid #e8e6e3;border:2px solid var(--portal-cream-dark);border-radius:8px;color:#7f8c8d;color:var(--portal-text-muted);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.pref-toggle input{display:none}.pref-toggle:hover:not(.disabled){border-color:#2c5f4e;border-color:var(--portal-sage);color:#2c5f4e;color:var(--portal-sage)}.pref-toggle:has(input:checked){background:#2c5f4e;background:var(--portal-sage);border-color:#2c5f4e;border-color:var(--portal-sage);color:#fff;color:var(--portal-white)}.btn-save-prefs{align-items:center;background:#2c5f4e;background:var(--portal-sage);border:none;border-radius:8px;border-radius:var(--portal-radius-sm);color:#fff;color:var(--portal-white);cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:8px;justify-content:center;margin-top:16px;padding:14px;transition:all .2s ease;width:100%}.btn-save-prefs:hover:not(:disabled){background:#4a9a85;background:var(--portal-sage-light)}.btn-save-prefs:disabled{cursor:not-allowed;opacity:.6}.btn-save-prefs.saved{background:#27ae60;background:var(--portal-green)}.optin-prompt-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}.optin-prompt{background:#fff;background:var(--portal-white);border-radius:16px;border-radius:var(--portal-radius-lg);box-shadow:0 8px 40px #0000001f;box-shadow:var(--portal-shadow-lg);max-width:400px;padding:32px;text-align:center;width:100%}.optin-icon{align-items:center;background:#f5f0e8;background:var(--portal-gold-pale);border-radius:50%;color:#b8926a;color:var(--portal-gold);display:flex;height:64px;justify-content:center;margin:0 auto 20px;width:64px}.optin-prompt h3{color:#1a2634;color:var(--portal-navy);font-family:Playfair Display,Georgia,serif;font-size:1.35rem;margin:0 0 12px}.optin-prompt p{color:#7f8c8d;color:var(--portal-text-muted);font-size:.95rem;line-height:1.5;margin:0 0 24px}.optin-actions{display:flex;flex-direction:column;gap:12px}.btn-optin{align-items:center;background:linear-gradient(135deg,#2c5f4e,#3a7a65);background:linear-gradient(135deg,var(--portal-sage) 0,#3a7a65 100%);border:none;border-radius:8px;border-radius:var(--portal-radius-sm);color:#fff;color:var(--portal-white);cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:8px;justify-content:center;padding:14px 20px;transition:all .2s ease;width:100%}.btn-optin:hover{box-shadow:0 6px 20px #2c5f4e4d;transform:translateY(-2px)}.btn-dismiss{background:none;border:none;color:#7f8c8d;color:var(--portal-text-muted);cursor:pointer;font-size:.9rem;padding:8px}.btn-dismiss:hover{color:#2d3436;color:var(--portal-text)}.opted-out-warning{align-items:center;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;border-radius:var(--portal-radius-sm);color:#92400e;display:flex;font-size:.9rem;gap:10px;margin-bottom:16px;padding:12px 16px}.opted-out-warning svg{color:#f59e0b;flex-shrink:0}.prefs-table{display:flex;flex-direction:column;gap:2px;margin-top:16px}.prefs-header{grid-gap:8px;background:#e8e6e3;background:var(--portal-cream-dark);border-radius:8px 8px 0 0;border-radius:var(--portal-radius-sm) var(--portal-radius-sm) 0 0;color:#7f8c8d;color:var(--portal-text-muted);display:grid;font-size:.75rem;gap:8px;grid-template-columns:1fr 60px 60px;letter-spacing:.5px;padding:8px 12px;text-transform:uppercase}.pref-category-header{font-weight:600}.pref-channel-header{align-items:center;display:flex;font-weight:600;gap:4px;justify-content:center}.prefs-table .pref-row{grid-gap:8px;background:#f8f7f5;background:var(--portal-cream);border-bottom:1px solid #e8e6e3;border-bottom:1px solid var(--portal-cream-dark);display:grid;gap:8px;grid-template-columns:1fr 60px 60px;padding:12px}.prefs-table .pref-row:last-child{border-bottom:none;border-radius:0 0 8px 8px;border-radius:0 0 var(--portal-radius-sm) var(--portal-radius-sm)}.pref-info{display:flex;flex-direction:column;gap:2px}.pref-description{color:#7f8c8d;color:var(--portal-text-muted);font-size:.8rem;line-height:1.3}.prefs-table .pref-toggle{cursor:pointer}.prefs-table .pref-toggle,.toggle-check{align-items:center;display:flex;justify-content:center}.toggle-check{background:#fff;background:var(--portal-white);border:2px solid #e8e6e3;border:2px solid var(--portal-cream-dark);border-radius:6px;height:24px;transition:all .2s ease;width:24px}.pref-toggle input:checked+.toggle-check,.pref-toggle:hover:not(.disabled) .toggle-check{border-color:#2c5f4e;border-color:var(--portal-sage)}.pref-toggle input:checked+.toggle-check{background:#2c5f4e;background:var(--portal-sage);color:#fff;color:var(--portal-white)}.pref-toggle.disabled{cursor:not-allowed;opacity:.4}@media (max-width:480px){.prefs-header{font-size:.7rem;grid-template-columns:1fr 50px 50px;padding:6px 10px}.prefs-header .pref-channel-header{flex-direction:column;font-size:.65rem;gap:2px}.prefs-table .pref-row{grid-template-columns:1fr 50px 50px;padding:10px}.pref-label{font-size:.85rem}.pref-description{font-size:.75rem}.toggle-check{height:22px;width:22px}}.tip-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}.tip-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:400px;padding:28px;position:relative;width:100%}.tip-modal-close{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:24px;position:absolute;right:16px;top:12px}.tip-modal-header{margin-bottom:20px;text-align:center}.tip-modal-header h3{color:#1a2634;font-size:20px;margin:0 0 6px}.tip-modal-header p{color:#64748b;font-size:14px;margin:0}.tip-modal-invoice-info{align-items:center;background:#f8f7f5;border-radius:10px;color:#4a5568;display:flex;font-size:14px;justify-content:space-between;margin-bottom:20px;padding:12px 16px}.tip-invoice-total{color:#1a2634;font-size:16px;font-weight:700}.tip-options{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin-bottom:16px}.tip-option{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;padding:12px 8px;transition:all .15s}.tip-option:hover{background:#fdf9f4;border-color:#b8926a}.tip-option.selected{background:#e8f0ec;border-color:#2c5f4e}.tip-label{color:#1a2634;font-size:14px;font-weight:600}.tip-value{color:#64748b;font-size:12px;margin-top:2px}.tip-option.selected .tip-label,.tip-option.selected .tip-value{color:#2c5f4e}.tip-custom-input{align-items:center;background:#f0faf5;border:2px solid #2c5f4e;border-radius:10px;display:flex;margin-bottom:16px;padding:10px 14px}.tip-dollar{color:#2c5f4e;font-size:18px;font-weight:600;margin-right:6px}.tip-custom-input input{background:#0000;border:none;color:#1a2634;font-size:18px;font-weight:600;outline:none;width:100%}.tip-total{align-items:center;border-top:1px solid #e2e8f0;color:#4a5568;display:flex;font-size:15px;justify-content:space-between;margin-bottom:16px;padding:14px 0}.tip-total-amount{color:#1a2634;font-size:18px;font-weight:700}.tip-pay-btn{background:#2c5f4e;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:background .15s;width:100%}.tip-pay-btn:hover:not(:disabled){background:#1e4537}.tip-pay-btn:disabled{cursor:not-allowed;opacity:.5}.invoice-row.clickable{cursor:pointer;transition:background .15s}.invoice-row.clickable:hover{background:#f8f7f5}.invoice-row-status.overdue{color:#dc2626}.invoice-row-status.sent{color:#b8926a}:root{--quote-sage:#2c5f4e;--quote-sage-light:#3a7d66;--quote-navy:#1a2634;--quote-cream:#f8f7f5;--quote-white:#fff;--quote-gold:#b8926a;--quote-red:#dc2626;--quote-green:#16a34a;--quote-text:#1a2634;--quote-text-muted:#718096;--quote-border:#e2e8f0;--quote-radius:12px;--quote-radius-sm:8px}.quote-page{-webkit-overflow-scrolling:touch;background:linear-gradient(135deg,#f8f7f5,#e8e6e3);min-height:100vh;overflow-x:hidden;padding:16px}.quote-container{margin:0 auto;max-width:720px;width:100%}@media (min-width:480px){.quote-page{padding:24px}}@media (min-width:768px){.quote-page{padding:40px 24px}}.quote-header{margin-bottom:16px;text-align:center}@media (min-width:480px){.quote-header{margin-bottom:20px}}.quote-logo{align-items:center;color:#2c5f4e;color:var(--quote-sage);display:flex;gap:10px;justify-content:center;margin-bottom:4px}.quote-logo h1{font-family:Playfair Display,Georgia,serif;font-size:1.6rem;margin:0}@media (min-width:480px){.quote-logo h1{font-size:1.8rem}}.quote-logo span{font-size:.8rem}.quote-logo span,.quote-tagline{color:#718096;color:var(--quote-text-muted)}.quote-tagline{font-style:italic;margin:0}.progress-bar{background:#fff;background:var(--quote-white);border-radius:12px;border-radius:var(--quote-radius);box-shadow:0 2px 10px #0000000f;margin-bottom:16px;padding:16px 20px}@media (min-width:480px){.progress-bar{padding:20px 24px}}.progress-steps{display:flex;justify-content:space-between;margin-bottom:12px}.progress-step{flex:1 1;flex-direction:column;gap:4px}.progress-step,.step-number{align-items:center;display:flex}.step-number{background:#e2e8f0;background:var(--quote-border);border-radius:50%;color:#718096;color:var(--quote-text-muted);font-size:.9rem;font-weight:600;height:32px;justify-content:center;transition:all .3s ease;width:32px}.progress-step.active .step-number{background:#2c5f4e;background:var(--quote-sage);color:#fff}.progress-step.completed .step-number{background:#16a34a;background:var(--quote-green);color:#fff}.step-label{color:#718096;color:var(--quote-text-muted);font-size:.65rem;text-align:center}@media (min-width:480px){.step-label{font-size:.75rem}}.progress-step.active .step-label{color:#2c5f4e;color:var(--quote-sage);font-weight:600}.progress-track{background:#e2e8f0;background:var(--quote-border);border-radius:2px;height:4px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#2c5f4e,#3a7d66);background:linear-gradient(90deg,var(--quote-sage),var(--quote-sage-light));border-radius:2px;height:100%;transition:width .3s ease}.form-section{background:#fff;background:var(--quote-white);border-radius:12px;border-radius:var(--quote-radius);box-shadow:0 4px 20px #00000014;overflow:hidden;padding:24px 20px;width:100%}@media (min-width:480px){.form-section{padding:28px 24px}}@media (min-width:768px){.form-section{padding:36px 32px}}.form-section h2{color:#1a2634;color:var(--quote-navy);font-family:Playfair Display,Georgia,serif;margin:0 0 8px}.form-section h2 svg{color:#2c5f4e;color:var(--quote-sage)}.section-description{color:#718096;color:var(--quote-text-muted);font-size:.9rem;margin:0 0 16px}.form-field{margin-bottom:16px}.form-field label{align-items:center;color:#1a2634;color:var(--quote-navy);display:flex;font-size:.9rem;gap:8px;margin-bottom:8px}.form-field label svg{color:#2c5f4e;color:var(--quote-sage)}.form-field input,.form-field select,.form-field textarea{border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);box-sizing:border-box;color:#1a2634;color:var(--quote-navy);font-size:1rem;padding:12px 14px;transition:all .2s ease;width:100%}@media (min-width:480px){.form-field input,.form-field select,.form-field textarea{padding:14px 16px}}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#2c5f4e;border-color:var(--quote-sage);box-shadow:0 0 0 3px #2c5f4e1a}.form-field input.error,.form-field select.error{border-color:#dc2626;border-color:var(--quote-red)}.form-field textarea{min-height:100px;resize:vertical}.error-text{color:#dc2626;color:var(--quote-red);display:block;font-size:.8rem;margin-top:6px}.form-grid,.form-grid-3{grid-template-columns:1fr}@media (min-width:480px){.form-grid{grid-template-columns:repeat(2,1fr)}.form-grid-3{grid-template-columns:2fr 1fr 1fr}}.number-inputs-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.number-input-group{flex:1 1;min-width:140px}.number-input-group label{color:#1a2634;color:var(--quote-navy);display:block;font-size:.85rem;font-weight:500;margin-bottom:8px}.number-controls{align-items:center;border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);display:flex;overflow:hidden}.number-controls button{align-items:center;background:#f8f7f5;background:var(--quote-cream);border:none;color:#2c5f4e;color:var(--quote-sage);cursor:pointer;display:flex;height:44px;justify-content:center;transition:all .2s ease;width:44px}.number-controls button:hover:not(:disabled){background:#2c5f4e;background:var(--quote-sage);color:#fff}.number-controls button:disabled{cursor:not-allowed;opacity:.3}.number-value{color:#1a2634;color:var(--quote-navy);flex:1 1;font-size:1.1rem;font-weight:600;padding:0 8px;text-align:center}.help-text{color:#718096;color:var(--quote-text-muted);display:block;font-size:.75rem;margin-top:4px}.checkbox-field{margin-bottom:16px}.checkbox-label{align-items:flex-start;color:#1a2634;color:var(--quote-text);font-size:.95rem;gap:12px;line-height:1.4}.checkbox-label input[type=checkbox]{display:none}.checkmark{align-items:center;border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:4px;display:flex;height:22px;justify-content:center;margin-top:2px;min-width:22px;transition:all .2s ease;width:22px}.checkbox-label input:checked+.checkmark{background:#2c5f4e;background:var(--quote-sage);border-color:#2c5f4e;border-color:var(--quote-sage)}.checkbox-label input:checked+.checkmark:after{color:#fff;content:"✓";font-size:14px;font-weight:700}.checkbox-field.error .checkmark{border-color:#dc2626;border-color:var(--quote-red)}.radio-group{flex-direction:column}.radio-label{align-items:center;border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:all .2s ease}.radio-label:hover{border-color:#2c5f4e;border-color:var(--quote-sage)}.radio-label input{accent-color:#2c5f4e;accent-color:var(--quote-sage);height:20px;width:20px!important}.condition-options{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.condition-options.error .condition-card{border-color:#dc2626;border-color:var(--quote-red)}.condition-card{border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);cursor:pointer;padding:16px;text-align:center;transition:all .2s ease}.condition-card:hover{background:#f8f7f5;background:var(--quote-cream)}.condition-card.selected,.condition-card:hover{border-color:#2c5f4e;border-color:var(--quote-sage)}.condition-card.selected{background:#2c5f4e1a}.condition-emoji{display:block;font-size:2rem;margin-bottom:8px}.condition-label{color:#1a2634;color:var(--quote-navy);display:block;font-size:.9rem;font-weight:600;margin-bottom:4px}.condition-desc{color:#718096;color:var(--quote-text-muted);font-size:.75rem}.frequency-options{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr}@media (min-width:480px){.frequency-options{gap:14px;grid-template-columns:repeat(2,1fr)}}.frequency-options.error .frequency-card{border-color:#dc2626;border-color:var(--quote-red)}.frequency-card{border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);cursor:pointer;padding:18px;position:relative;text-align:center;transition:all .2s ease}@media (min-width:480px){.frequency-card{padding:20px}}.frequency-card.selected,.frequency-card:hover{border-color:#2c5f4e;border-color:var(--quote-sage)}.frequency-card.selected{background:#2c5f4e1a}.frequency-options.multi-select .frequency-card{padding-top:36px}.frequency-checkbox{align-items:center;background:#fff;border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:50%;display:flex;height:24px;justify-content:center;position:absolute;right:10px;top:10px;transition:all .2s ease;width:24px}.frequency-card.selected .frequency-checkbox{background:#2c5f4e;background:var(--quote-sage);border-color:#2c5f4e;border-color:var(--quote-sage);color:#fff}.field-hint{color:#718096;color:var(--quote-text-muted);font-size:.85rem;margin-bottom:12px;margin-top:-4px}.frequency-label{color:#1a2634;color:var(--quote-navy);display:block;font-size:1.1rem;font-weight:600;margin-bottom:4px}.frequency-desc{color:#718096;color:var(--quote-text-muted);font-size:.8rem}.info-box{background:#eff6ff;border-radius:8px;border-radius:var(--quote-radius-sm);color:#1e40af;display:flex;gap:12px;margin-bottom:24px;padding:16px}.info-box svg{flex-shrink:0;margin-top:2px}.info-box strong{display:block;margin-bottom:4px}.info-box p{font-size:.9rem;margin:0;opacity:.9}.products-section{background:#f8f7f5;background:var(--quote-cream);border-radius:8px;border-radius:var(--quote-radius-sm);margin-bottom:24px;padding:20px}.products-section h3{color:#1a2634;color:var(--quote-navy);font-size:1.1rem;margin:0 0 8px}.products-section>p{color:#718096;color:var(--quote-text-muted);font-size:.9rem;margin:0 0 16px}.products-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.product-item{align-items:center;color:#1a2634;color:var(--quote-text);display:flex;font-size:.9rem;gap:10px}.product-item svg{color:#16a34a;color:var(--quote-green);flex-shrink:0}.addons-section{margin-top:32px}.addons-section h3{color:#1a2634;color:var(--quote-navy);font-size:1.1rem;margin:0 0 8px}.addons-section>p{color:#718096;color:var(--quote-text-muted);font-size:.9rem;margin:0 0 20px}.addon-group{border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);margin-bottom:12px;overflow:hidden}.addon-header{align-items:center;background:#f8f7f5;background:var(--quote-cream);cursor:pointer;display:flex;justify-content:space-between;padding:16px;transition:background .2s ease}.addon-header:hover{background:#e8e4df}.addon-header-left{align-items:center;color:#1a2634;color:var(--quote-navy);display:flex;font-weight:500;gap:12px}.addon-header-left input[type=checkbox]{accent-color:#2c5f4e;accent-color:var(--quote-sage);height:20px;width:20px}.addon-header svg{color:#718096;color:var(--quote-text-muted);transition:transform .2s ease}.addon-header svg.rotated{transform:rotate(180deg)}.addon-content{border-top:1px solid #e2e8f0;border-top:1px solid var(--quote-border);padding:20px}.addon-instruction{color:#718096;color:var(--quote-text-muted);font-size:.9rem;margin:0 0 16px}.condition-select-cards{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr;margin-bottom:16px}@media (min-width:600px){.condition-select-cards{gap:16px;grid-template-columns:repeat(3,1fr)}}.condition-select-card{border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);cursor:pointer;overflow:hidden;transition:all .2s ease}.condition-select-card.selected,.condition-select-card:hover{border-color:#2c5f4e;border-color:var(--quote-sage)}.condition-select-card.selected{box-shadow:0 0 0 3px #2c5f4e26}.csc-image{align-items:center;background:#f8f7f5;background:var(--quote-cream);display:flex;height:140px;justify-content:center;overflow:hidden}.csc-image .condition-photo{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.condition-select-card:hover .condition-photo{transform:scale(1.05)}.photo-placeholder{font-size:2rem;opacity:.5}.csc-info{padding:12px;text-align:center}.csc-label{color:#1a2634;color:var(--quote-navy);display:block;font-size:.9rem;font-weight:600;margin-bottom:4px}.csc-desc{color:#718096;color:var(--quote-text-muted);display:block;font-size:.75rem;margin-bottom:8px}.csc-price{background:#2c5f4e;background:var(--quote-sage);border-radius:20px;color:#fff;display:inline-block;font-size:.85rem;font-weight:600;padding:4px 12px}.blue-ceramic-check{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.info-tooltip{align-items:flex-start;background:#fef3c7;border-radius:8px;border-radius:var(--quote-radius-sm);color:#92400e;display:flex;flex:1 1;font-size:.8rem;gap:8px;min-width:200px;padding:10px 14px}.info-tooltip svg{flex-shrink:0;margin-top:2px}.photo-guidelines{color:#1a2634;color:var(--quote-text);margin:0 0 24px;padding-left:20px}.photo-guidelines li{margin-bottom:8px}.photo-upload-area{margin-bottom:24px;text-align:center}.upload-btn{background:#2c5f4e0d;border:2px dashed #2c5f4e;border:2px dashed var(--quote-sage);border-radius:12px;border-radius:var(--quote-radius);display:inline-flex;flex-direction:column;padding:24px 20px;width:100%}@media (min-width:480px){.upload-btn{padding:32px 48px;width:auto}}.upload-btn:hover:not(:disabled){background:#2c5f4e1a;border-style:solid}.upload-btn:disabled{cursor:not-allowed;opacity:.5}.upload-btn span:first-of-type{font-size:1rem;font-weight:600}.upload-hint{font-size:.85rem;opacity:.7}.photo-error{color:#dc2626;color:var(--quote-red);font-size:.9rem;margin-top:12px}.photos-preview{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.photo-item img{border-radius:8px;border-radius:var(--quote-radius-sm);height:120px}.remove-photo{background:#dc2626;background:var(--quote-red);height:28px;right:8px;top:8px;width:28px}.photo-label-input{font-size:.8rem!important;margin-top:8px;padding:8px!important;width:100%}.btn-back{background:#fff;border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);color:#1a2634;color:var(--quote-text);cursor:pointer;font-size:1rem;font-weight:500;padding:14px 24px;transition:all .2s ease}.btn-back:hover{border-color:#2c5f4e;border-color:var(--quote-sage);color:#2c5f4e;color:var(--quote-sage)}.btn-next,.btn-submit{align-items:center;background:linear-gradient(135deg,#2c5f4e,#3a7d66);background:linear-gradient(135deg,var(--quote-sage) 0,var(--quote-sage-light) 100%);border:none;border-radius:8px;border-radius:var(--quote-radius-sm);color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;padding:14px 32px;transition:all .2s ease}.btn-next:hover,.btn-submit:hover{box-shadow:0 6px 20px #2c5f4e4d;transform:translateY(-2px)}.btn-submit:disabled{cursor:not-allowed;opacity:.6;transform:none}.submit-error{align-items:center;background:#fef2f2;border-radius:8px;border-radius:var(--quote-radius-sm);color:#dc2626;color:var(--quote-red);display:flex;gap:12px;margin-top:16px;padding:16px}.success-page{max-width:800px}.success-hero{padding:32px 20px 24px;text-align:center}.success-icon{align-items:center;background:linear-gradient(135deg,#16a34a,#22c55e);background:linear-gradient(135deg,var(--quote-green) 0,#22c55e 100%);border-radius:50%;box-shadow:0 8px 32px #16a34a40;color:#fff;display:flex;height:72px;justify-content:center;margin:0 auto 16px;width:72px}.success-hero h1{color:#1a2634;color:var(--quote-navy);font-family:Playfair Display,Georgia,serif;font-size:1.8rem;margin:0 0 12px}.success-subtitle{color:#1a2634;color:var(--quote-text);font-size:1.05rem;line-height:1.6;margin:0 auto;max-width:560px}.whats-next-section{margin-bottom:8px}.section-heading{align-items:center;color:#1a2634;color:var(--quote-navy);display:flex;font-family:Playfair Display,Georgia,serif;font-size:1.35rem;gap:10px;margin:0 0 20px;padding:24px 20px 0}.section-heading svg{color:#2c5f4e;color:var(--quote-sage)}.section-intro{color:#1a2634;color:var(--quote-text);font-size:.95rem;line-height:1.6;margin:-12px 0 20px;padding:0 20px}.timeline{padding:0 20px 24px;position:relative}.timeline:before{background:#e2e8f0;bottom:40px;content:"";left:38px;position:absolute;top:8px;width:2px}.timeline-item{display:flex;gap:16px;margin-bottom:24px;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-marker{align-items:center;background:#fff;border:2px solid #cbd5e1;border-radius:50%;color:#94a3b8;display:flex;flex-shrink:0;font-size:.85rem;font-weight:700;height:36px;justify-content:center;width:36px;z-index:1}.timeline-item.active .timeline-marker{background:#16a34a;background:var(--quote-green);border-color:#16a34a;border-color:var(--quote-green);box-shadow:0 0 0 4px #16a34a26;color:#fff}.timeline-content{padding-top:4px}.timeline-content h4{color:#1a2634;color:var(--quote-navy);font-size:1rem;font-weight:700;margin:0 0 4px}.timeline-content p{color:#1a2634;color:var(--quote-text);font-size:.9rem;line-height:1.5;margin:0}.portal-section{padding:0 20px 24px}.portal-section .section-heading{padding:24px 0 0}.portal-access-card{grid-gap:0;background:linear-gradient(135deg,#f0fdf4,#ecfdf5 50%,#eff6ff);border:1px solid #bbf7d0;border-radius:12px;border-radius:var(--quote-radius);display:grid;gap:0;grid-template-columns:1fr;overflow:hidden}.portal-access-left{padding:24px 20px}.portal-access-right{border-left:none;border-top:1px solid #bbf7d080}.portal-badge{font-size:2rem;margin-bottom:8px}.portal-access-left h2{color:#1a2634;color:var(--quote-navy);font-family:Playfair Display,Georgia,serif;font-size:1.3rem;margin:0 0 8px}.portal-access-left>p{color:#1a2634;color:var(--quote-text);font-size:.9rem;line-height:1.5;margin:0 0 20px}.portal-login-instructions{margin-bottom:20px}.portal-login-instructions h4{color:#1a2634;color:var(--quote-navy);font-size:.85rem;letter-spacing:.5px;margin:0 0 10px;text-transform:uppercase}.login-step{color:#1a2634;color:var(--quote-text);font-size:.9rem;gap:10px;margin-bottom:8px}.login-step,.step-num{align-items:center;display:flex}.step-num{background:#2c5f4e;background:var(--quote-sage);border-radius:50%;color:#fff;flex-shrink:0;font-size:.75rem;font-weight:700;height:24px;justify-content:center;width:24px}.portal-cta-btn{align-items:center;background:linear-gradient(135deg,#2c5f4e,#3a7d66);background:linear-gradient(135deg,var(--quote-sage) 0,var(--quote-sage-light) 100%);border-radius:8px;border-radius:var(--quote-radius-sm);box-shadow:0 4px 12px #2c5f4e33;color:#fff;display:inline-flex;font-size:.95rem;font-weight:600;gap:6px;padding:12px 28px;text-decoration:none;transition:all .2s ease}.portal-cta-btn:hover{box-shadow:0 6px 20px #2c5f4e4d;transform:translateY(-2px)}.portal-access-right{background:#ffffff80;display:flex;flex-direction:column;justify-content:center;padding:24px 20px}.portal-access-right h4{color:#1a2634;color:var(--quote-navy);font-size:.85rem;letter-spacing:.5px;margin:0 0 14px;text-transform:uppercase}.portal-feature-list{list-style:none;margin:0;padding:0}.portal-feature-list li{align-items:center;border-bottom:1px solid #e2e8f080;color:#1a2634;color:var(--quote-text);display:flex;font-size:.9rem;gap:10px;padding:8px 0}.portal-feature-list li:last-child{border-bottom:none}.portal-feature-list li svg{color:#16a34a;color:var(--quote-green);flex-shrink:0}.about-section{padding:0}.about-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr;padding:0 20px 24px}.about-card{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);padding:20px;transition:all .2s}.about-card:hover{border-color:#2c5f4e;border-color:var(--quote-sage);box-shadow:0 4px 12px #0000000f}.about-icon{font-size:1.6rem;margin-bottom:8px}.about-card h4{color:#1a2634;color:var(--quote-navy);font-size:.95rem;font-weight:700;margin:0 0 6px}.about-card p{color:#1a2634;color:var(--quote-text);font-size:.85rem;line-height:1.5;margin:0}.prep-section{padding:0}.prep-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr;padding:0 20px 24px}.prep-item{background:#f8f7f5;background:var(--quote-cream);border-radius:8px;border-radius:var(--quote-radius-sm);display:flex;gap:14px;padding:16px}.prep-icon{flex-shrink:0;font-size:1.4rem;line-height:1;margin-top:2px}.prep-item h4{color:#1a2634;color:var(--quote-navy);font-size:.9rem;font-weight:700;margin:0 0 4px}.prep-item p{color:#1a2634;color:var(--quote-text);font-size:.83rem;line-height:1.5;margin:0}.contact-section{padding:0 20px 8px}.contact-card{background:#1a2634;background:var(--quote-navy);border-radius:12px;border-radius:var(--quote-radius);color:#fff;padding:24px 20px;text-align:center}.contact-card h2{color:#fff;font-family:Playfair Display,Georgia,serif;font-size:1.3rem;margin:0 0 8px}.contact-card>p{color:#ffffffb3;font-size:.9rem;margin:0 0 24px}.contact-methods{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr}.contact-method{align-items:center;background:#ffffff14;border:1px solid #ffffff1f;border-radius:8px;border-radius:var(--quote-radius-sm);color:#fff;display:flex;gap:12px;padding:16px;text-decoration:none;transition:all .2s}.contact-method:hover{background:#ffffff26;border-color:#ffffff40}.contact-method svg{color:#3a7d66;color:var(--quote-sage-light);flex-shrink:0}.contact-method div{text-align:left}.contact-label{color:#ffffff80;display:block;font-size:.7rem;letter-spacing:.5px;margin-bottom:2px;text-transform:uppercase}.contact-value{display:block;font-size:.85rem;font-weight:600}.success-footer{color:#718096;color:var(--quote-text-muted);padding:32px 24px;text-align:center}.footer-logo{align-items:center;display:flex;gap:8px;justify-content:center;margin-bottom:6px}.footer-logo svg{color:#2c5f4e;color:var(--quote-sage)}.footer-logo span{color:#1a2634;color:var(--quote-navy);font-size:.95rem;font-weight:600}.footer-tagline-success{color:#2c5f4e;color:var(--quote-sage);font-size:.85rem;font-style:italic;margin:0 0 4px}.footer-address{color:#718096;color:var(--quote-text-muted);font-size:.8rem;margin:0}@media (min-width:700px){.success-hero{padding:40px 28px 28px}.success-icon{height:88px;margin-bottom:20px;width:88px}.success-hero h1{font-size:2.2rem}.section-heading{font-size:1.35rem;padding:28px 28px 0}.section-intro{padding:0 28px}.timeline{padding:0 28px 28px}.timeline:before{left:47px}.portal-section{padding:0 28px 28px}.portal-access-card{grid-template-columns:1.2fr 1fr}.portal-access-left,.portal-access-right{padding:28px}.portal-access-right{border-left:1px solid #bbf7d080;border-top:none}.about-grid,.prep-grid{grid-template-columns:1fr 1fr;padding:0 28px 28px}.contact-section{padding:0 28px 8px}.contact-card{padding:28px}.contact-methods{grid-template-columns:repeat(3,1fr)}}.quote-footer{color:#718096;color:var(--quote-text-muted);font-size:.9rem;margin-top:20px;text-align:center}.quote-footer a{color:#2c5f4e;color:var(--quote-sage);font-weight:500;text-decoration:none}.quote-footer a:hover{text-decoration:underline}.footer-tagline{font-size:.8rem;margin-top:8px}.form-actions{border-top:1px solid #e2e8f0;border-top:1px solid var(--quote-border);flex-direction:column;margin-top:24px}.form-actions .btn-back{order:2}.form-actions .btn-next,.form-actions .btn-submit{justify-content:center;order:1}@media (min-width:480px){.form-actions{flex-direction:row;gap:16px;justify-content:space-between;margin-top:32px;padding-top:24px}.form-actions .btn-back{order:0}.form-actions .btn-next,.form-actions .btn-submit{justify-content:flex-start;order:0}}.form-section h2{font-size:1.2rem}@media (min-width:480px){.form-section h2{font-size:1.35rem}}@media (min-width:768px){.form-section h2{font-size:1.5rem}}.condition-options{grid-template-columns:repeat(2,1fr)}.terms-section h2{align-items:center;display:flex;gap:12px}.terms-content{margin-bottom:24px}.terms-intro{background:#f0f5f0;border-left:4px solid #2c5f4e;border-left:4px solid var(--quote-sage);border-radius:0 8px 8px 0;border-radius:0 var(--quote-radius-sm) var(--quote-radius-sm) 0;color:#1a2634;color:var(--quote-text);font-size:.95rem;margin-bottom:20px;padding:16px 20px}.terms-scroll{background:#fff;background:var(--quote-white);border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);max-height:400px;overflow-y:auto;padding:20px}.term-section{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--quote-border);margin-bottom:20px;padding-bottom:16px}.term-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.term-section h4{border-bottom:2px solid #b8926a;border-bottom:2px solid var(--quote-gold);color:#1a2634;color:var(--quote-navy);display:inline-block;font-size:.95rem;margin:0 0 8px;padding-bottom:4px}.term-section p{color:#1a2634;color:var(--quote-text);font-size:.9rem;line-height:1.6;margin:0 0 8px}.term-section p:last-child{margin-bottom:0}.terms-scroll .fee-table{background:#fdf8e8;border:1px solid #b8926a;border:1px solid var(--quote-gold);border-radius:8px;border-radius:var(--quote-radius-sm);margin-top:12px;overflow:hidden}.fee-row{border-bottom:1px solid #e8e4df;display:flex;font-size:.85rem;justify-content:space-between;padding:10px 14px}.fee-row:last-child{border-bottom:none}.fee-row.header{background:#2c5f4e;background:var(--quote-sage);color:#fff;font-weight:600}.fee-row span:last-child{font-weight:500;text-align:right}.terms-agreement{background:#f8f7f5;background:var(--quote-cream);border:2px solid #2c5f4e;border:2px solid var(--quote-sage);border-radius:12px;border-radius:var(--quote-radius);margin-top:24px;padding:24px}.terms-agreement h3{color:#1a2634;color:var(--quote-navy);font-size:1.1rem;margin:0 0 20px;text-align:center}.terms-checkbox{margin-bottom:12px}.terms-checkbox label{align-items:flex-start;background:#fff;background:var(--quote-white);border:1px solid #e2e8f0;border:1px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:all .2s ease}.terms-checkbox label:hover{border-color:#2c5f4e;border-color:var(--quote-sage)}.terms-checkbox.error label{background:#fef2f2;border-color:#dc2626;border-color:var(--quote-red)}.terms-checkbox input[type=checkbox]{display:none}.terms-checkbox .checkmark{align-items:center;border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:4px;display:flex;height:22px;justify-content:center;margin-top:2px;min-width:22px;transition:all .2s ease;width:22px}.terms-checkbox input:checked+.checkmark{background:#2c5f4e;background:var(--quote-sage);border-color:#2c5f4e;border-color:var(--quote-sage)}.terms-checkbox input:checked+.checkmark:after{color:#fff;content:"✓";font-size:14px;font-weight:700}.terms-checkbox span:last-child{color:#1a2634;color:var(--quote-text);font-size:.9rem;line-height:1.4}.term-section.highlight-section{background:#fef3c7;border:1px solid #d97706;border-radius:8px;border-radius:var(--quote-radius-sm);margin-left:-16px;margin-right:-16px;padding:16px}.term-section.highlight-section h4{border-bottom-color:#d97706;color:#92400e}.term-section.highlight-section p{color:#78350f}.service-type-selection{text-align:center}.service-type-selection h2{display:block;font-size:1.5rem;justify-content:center}.service-type-options{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr;margin-top:16px}.service-type-card{background:#fff;background:var(--quote-white);border:2px solid #e2e8f0;border:2px solid var(--quote-border);border-radius:12px;border-radius:var(--quote-radius);cursor:pointer;padding:24px 20px;text-align:center;transition:all .2s ease}.service-type-card:hover{border-color:#2c5f4e;border-color:var(--quote-sage);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.service-type-icon{font-size:2rem;margin-bottom:10px}.service-type-card h3{color:#1a2634;color:var(--quote-navy);font-size:1rem;margin:0 0 6px}.service-type-card p{color:#718096;color:var(--quote-text-muted);font-size:.85rem;line-height:1.4;margin:0}@media (min-width:480px){.service-type-options{gap:16px;grid-template-columns:repeat(2,1fr);margin-top:20px}.service-type-card{padding:28px 24px}.service-type-icon{font-size:2.5rem;margin-bottom:12px}.service-type-card h3{font-size:1.1rem;margin:0 0 8px}}.back-to-services{align-items:center;background:none;border:none;color:#2c5f4e;color:var(--quote-sage);cursor:pointer;display:inline-flex;font-size:.9rem;gap:4px;margin-bottom:8px;padding:8px 0}.back-to-services:hover{text-decoration:underline}.simple-quote-form{text-align:left}.simple-quote-form h2{display:block;font-size:1.4rem;margin-bottom:8px;text-align:center}.simple-quote-form .section-description{margin-bottom:24px;text-align:center}.simple-quote-form textarea{min-height:120px;resize:vertical}.field-description{color:#718096;color:var(--quote-text-muted);font-size:.85rem;margin-bottom:12px}.photo-upload-area{gap:16px;margin-bottom:16px}.photo-upload-area,.upload-btn{align-items:center;display:flex}.upload-btn{background:#f8f7f5;background:var(--quote-cream);border:2px dashed #e2e8f0;border:2px dashed var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);color:#2c5f4e;color:var(--quote-sage);cursor:pointer;font-weight:500;gap:8px;padding:12px 20px;transition:all .2s ease}.upload-btn:hover{background:#fff;background:var(--quote-white);border-color:#2c5f4e;border-color:var(--quote-sage)}.photo-count{color:#718096;color:var(--quote-text-muted);font-size:.85rem}.photo-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));margin-top:12px}.photo-item{aspect-ratio:1;border-radius:8px;border-radius:var(--quote-radius-sm);overflow:hidden;position:relative}.photo-item img{height:100%;object-fit:cover;width:100%}.remove-photo{align-items:center;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;position:absolute;right:4px;top:4px;width:24px}.remove-photo:hover{background:#dc2626;background:var(--quote-red)}.btn-submit{justify-content:center;width:100%}.spin{animation:spin 1s linear infinite}.commercial-quote-form{text-align:left}.commercial-quote-form h2{display:block;font-size:1.4rem;margin-bottom:8px;text-align:center}.commercial-quote-form .section-description{margin-bottom:24px;text-align:center}.subsection-title{border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--quote-border);color:#2c5f4e;color:var(--quote-sage);font-size:1rem;margin:24px 0 16px;padding-bottom:8px}.subsection-title:first-of-type{margin-top:0}.commercial-quote-form select{background:#fff;background:var(--quote-white);border:1px solid #e2e8f0;border:1px solid var(--quote-border);border-radius:8px;border-radius:var(--quote-radius-sm);cursor:pointer;font-family:inherit;font-size:1rem;padding:12px 14px;width:100%}.commercial-quote-form select:focus{border-color:#2c5f4e;border-color:var(--quote-sage);outline:none}.labor-analysis{margin:0 auto;max-width:1600px;padding:24px}.labor-header{align-items:flex-start;justify-content:space-between;margin-bottom:24px}.header-controls,.labor-header{display:flex;flex-wrap:wrap;gap:16px}.header-controls{align-items:center}.date-range-selector{background:var(--cream-dark);border-radius:8px;display:flex;gap:4px;padding:4px}.range-btn{background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.range-btn:hover{color:var(--text-dark)}.range-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:var(--sage)}.date-navigator{align-items:center;display:flex;gap:8px}.nav-btn{border-radius:8px;color:var(--text-muted)}.nav-btn:hover{border-color:var(--sage);color:var(--sage)}.date-input{border:1px solid var(--cream-dark);border-radius:8px;font-family:inherit;font-size:.875rem;padding:8px 12px}.target-banner{background:linear-gradient(135deg,var(--navy) 0,var(--navy-light) 100%);color:#fff;gap:24px;margin-bottom:24px;padding:20px 28px}.target-banner,.target-icon{align-items:center;border-radius:12px;display:flex}.target-icon{background:#ffffff26;height:48px;justify-content:center;width:48px}.target-content{display:flex;flex-direction:column}.target-label{font-size:.75rem;letter-spacing:1px;opacity:.7;text-transform:uppercase}.target-value{color:var(--gold);font-size:2rem;font-weight:700}.target-current{border-left:1px solid #fff3;display:flex;flex-direction:column;padding-left:24px}.current-label{font-size:.75rem;letter-spacing:1px;opacity:.7;text-transform:uppercase}.current-value{font-size:2rem;font-weight:700}.target-gap{align-items:center;background:#ffffff1a;border-radius:8px;display:flex;gap:8px;margin-left:auto;padding:10px 16px}.gap-icon{opacity:.9}.gap-icon.red{color:#ff6b6b}.gap-icon.green{color:#51cf66}.gap-text{font-size:.875rem;font-weight:500}.gap-text.green{color:#51cf66}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.stats-grid{grid-template-columns:1fr}}.stat-card{align-items:flex-start;box-shadow:0 1px 3px #0000000d;padding:20px}.stat-icon{border-radius:12px;flex-shrink:0;height:48px;width:48px}.stat-icon.purple{background:#f5f3ff;color:#7c3aed}.stat-content{gap:2px}.stat-value{font-size:1.5rem}.stat-percent,.stat-variance{font-size:.875rem;font-weight:600}.analysis-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 400px;margin-bottom:24px}@media (max-width:1200px){.analysis-grid{grid-template-columns:1fr}}.analysis-card{background:#fff;border:1px solid var(--cream-dark);border-radius:12px;overflow:hidden}.card-header{background:var(--cream);border-bottom:1px solid var(--cream-dark);justify-content:space-between;padding:16px 20px}.card-header,.card-header h2{align-items:center;display:flex}.card-header h2{color:var(--navy);font-size:1rem;font-weight:600;gap:10px;margin:0}.card-header h2 svg{color:var(--text-muted)}.performance-summary{display:flex;gap:16px}.perf-item{align-items:center;display:flex;font-size:.8rem;font-weight:500;gap:6px}.perf-item.green{color:#16a34a}.perf-item.orange{color:#ea580c}.jobs-list{max-height:500px;overflow-y:auto}.job-row{grid-gap:16px;border-bottom:1px solid var(--cream-dark);display:grid;gap:16px;grid-template-columns:1fr 200px 180px;padding:16px 20px;transition:background .2s ease}.job-row:last-child{border-bottom:none}.job-row:hover{background:var(--cream)}.job-row.over{background:#fef2f2}.job-row.warning{background:#fffbeb}.job-info{flex-direction:column;gap:2px}.job-client{color:var(--navy);font-weight:600}.job-address{color:var(--text-muted);font-size:.8rem}.job-time{align-items:center;display:flex;gap:12px}.time-actual,.time-expected{align-items:center;display:flex;flex-direction:column}.time-label{color:var(--text-muted);font-size:.65rem;letter-spacing:.5px;text-transform:uppercase}.time-value{color:var(--navy);font-size:.9rem;font-weight:600}.time-variance{font-size:.85rem;font-weight:600;gap:4px;min-width:70px}.time-variance .pending{color:var(--text-muted);font-style:italic;font-weight:400}.job-financials{align-items:center;display:flex;gap:12px}.financial-item{align-items:flex-end;display:flex;flex-direction:column}.fin-label{color:var(--text-muted);font-size:.65rem;letter-spacing:.5px;text-transform:uppercase}.fin-value{color:var(--navy);font-size:.85rem;font-weight:600}.team-list{padding:8px}.team-row{align-items:center;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:4px;padding:12px;transition:background .2s ease}.team-row:hover{background:var(--cream)}.member-info{gap:12px}.member-avatar,.member-info{align-items:center;display:flex}.member-avatar{background:var(--sage);border-radius:10px;color:#fff;font-size:1rem;font-weight:600;height:40px;justify-content:center;width:40px}.member-details{display:flex;flex-direction:column}.member-name{color:var(--navy);font-weight:600}.member-jobs{color:var(--text-muted);font-size:.75rem}.member-metrics{display:flex;gap:16px}.metric{align-items:flex-end;display:flex;flex-direction:column}.metric-label{color:var(--text-muted);font-size:.65rem;letter-spacing:.5px;text-transform:uppercase}.metric-value{font-size:.875rem;font-weight:600}.alerts-panel{grid-column:1/-1}.alert-header{background:#fef2f2;border-bottom-color:#fecaca}.alert-header h2,.alert-header h2 svg{color:#dc2626}.alert-count{background:#dc2626;border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;padding:2px 10px}.alerts-list{padding:8px}.alert-row{align-items:center;background:#fef2f2;border-radius:8px;display:flex;gap:12px;margin-bottom:8px;padding:12px}.alert-row:last-child{margin-bottom:0}.alert-icon{align-items:center;background:#fee2e2;border-radius:8px;color:#dc2626;display:flex;height:36px;justify-content:center;width:36px}.alert-content{display:flex;flex:1 1;flex-direction:column}.alert-title{color:var(--navy);font-weight:600}.alert-detail{color:#dc2626;font-size:.8rem}.alert-team{background:#fff;border-radius:6px;color:var(--text-muted);font-size:.8rem;padding:4px 10px}.empty-state{padding:48px 24px}.quick-stats{align-items:center;background:var(--cream);border-radius:12px;display:flex;flex-wrap:wrap;gap:24px;padding:16px 24px}.quick-stat{display:flex;flex-direction:column}.qs-label{color:var(--text-muted);font-size:.7rem;letter-spacing:.5px;text-transform:uppercase}.qs-value{color:var(--navy);font-size:1.25rem;font-weight:700}.quick-stat.target{background:#fff;border-radius:8px;margin-left:auto;padding:8px 16px;text-align:right}.quick-stat.target .qs-label{color:var(--sage);font-weight:600}.quick-stat.target .qs-value{color:var(--text-muted);font-size:.85rem;font-weight:500}@media (max-width:900px){.job-row{gap:12px;grid-template-columns:1fr}.job-financials,.job-time{justify-content:flex-start}.target-banner{flex-wrap:wrap}.target-gap{justify-content:center;margin-left:0;margin-top:12px;width:100%}.member-metrics{flex-wrap:wrap;gap:8px}}.invoices-page{margin:0 auto;max-width:1400px;padding:24px}.invoices-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.btn-primary{text-decoration:none}.stats-row{grid-gap:16px;display:grid;grid-template-columns:repeat(4,1fr)}@media (max-width:1000px){.stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.stats-row{grid-template-columns:1fr}}.stat-card{align-items:center;background:#fff;border:1px solid var(--cream-dark);border-radius:12px;display:flex;gap:16px;padding:16px 20px}.stat-card.warning{background:#fef2f2;border-color:#fecaca}.stat-icon{align-items:center;border-radius:10px;display:flex;height:44px;justify-content:center;width:44px}.stat-icon.blue{background:#eff6ff;color:#2563eb}.stat-icon.orange{background:#fff7ed;color:#ea580c}.stat-icon.red{background:#fee2e2;color:#dc2626}.stat-icon.green{background:#f0fdf4;color:#16a34a}.stat-content{display:flex;flex-direction:column}.stat-value{color:var(--navy);font-size:1.25rem;font-weight:700}.stat-label{color:var(--text-muted);font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.search-box{background:#fff;padding:10px 16px}.search-box input{font-size:.875rem}.filter-tabs{background:var(--cream);border-radius:8px;display:flex;gap:4px;padding:4px}.filter-tab{background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:.8rem;font-weight:500;padding:8px 14px;transition:all .2s ease;white-space:nowrap}.filter-tab:hover{color:var(--text-dark)}.filter-tab.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:var(--sage)}.date-filter{background:#fff;border:1px solid var(--cream-dark);border-radius:8px;cursor:pointer;font-size:.875rem;margin-left:auto;padding:10px 16px}.invoices-list{display:flex;flex-direction:column;gap:12px}.invoice-card{grid-gap:20px;align-items:center;background:#fff;border:1px solid var(--cream-dark);border-radius:12px;cursor:pointer;display:grid;gap:20px;grid-template-columns:1fr 180px 120px 40px;padding:16px 20px;transition:all .2s ease}.invoice-card:hover{border-color:var(--sage);box-shadow:0 4px 12px #2c5f4e1a}.invoice-main{display:flex;flex-direction:column;gap:6px}.invoice-number{align-items:center;display:flex;gap:12px}.invoice-number .number{color:var(--navy);font-size:.95rem;font-weight:600}.status-badge{align-items:center;border-radius:6px;display:inline-flex;font-size:.75rem;font-weight:500;gap:6px;padding:4px 10px}.invoice-client,.invoice-property{align-items:center;color:var(--text-muted);display:flex;font-size:.85rem;gap:8px}.invoice-client svg,.invoice-property svg{color:var(--text-muted);opacity:.6}.invoice-dates{gap:4px}.date-item,.invoice-dates{display:flex;flex-direction:column}.date-label{color:var(--text-muted);font-size:.65rem;letter-spacing:.5px;text-transform:uppercase}.date-value{color:var(--navy);font-size:.85rem;font-weight:500}.date-value.overdue{color:#dc2626}.date-item.sent-indicator{border-top:1px solid #f1f5f9;margin-top:4px;padding-top:4px}.date-value.sent{align-items:center;color:#16a34a;display:flex;gap:4px}.date-value.sent small{color:#94a3b8;font-size:.7rem;font-weight:400}.invoice-amount{align-items:flex-end;display:flex;flex-direction:column}.amount-label{color:var(--text-muted);font-size:.65rem;letter-spacing:.5px;text-transform:uppercase}.amount-value{color:var(--navy);font-size:1.1rem;font-weight:700}.amount-balance{color:var(--gold);font-size:.75rem}.invoice-actions{color:var(--text-muted);display:flex;justify-content:center}.empty-state{background:#fff;border:1px solid var(--cream-dark);border-radius:12px}.empty-state svg{color:var(--text-muted)}.empty-state h3{font-size:1.1rem}.empty-state p{margin-bottom:20px}@media (max-width:900px){.invoice-card{grid-template-columns:1fr 100px 40px}.invoice-dates{display:none}.filter-tabs{order:3;overflow-x:auto;width:100%}}@media (max-width:600px){.invoices-header{flex-direction:column;gap:16px}.header-actions{width:100%}.btn-primary{justify-content:center;width:100%}.invoice-card{gap:12px;grid-template-columns:1fr 40px}.invoice-amount{display:none}.search-box{min-width:100%}}.btn-invoice-all{align-items:center;background:var(--gold);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.btn-invoice-all:hover{background:#a17f5a}.btn-invoice-all:disabled{cursor:not-allowed;opacity:.7}.selection-bar{align-items:center;background:var(--sage-pale);border:1px solid var(--sage);border-radius:10px;display:flex;justify-content:space-between;margin-bottom:16px;padding:12px 20px}.selection-count{align-items:center;color:var(--sage);display:flex;font-weight:500;gap:8px}.selection-actions{display:flex;gap:12px}.btn-ghost{background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:8px 16px;transition:all .15s ease}.btn-ghost:hover{background:#0000000d;color:var(--navy)}.btn-send-selected{align-items:center;background:var(--sage);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:8px;padding:8px 16px;transition:all .15s ease}.btn-send-selected:hover{background:var(--sage-light)}.btn-send-selected:disabled{cursor:not-allowed;opacity:.7}.btn-send-selected .spin{animation:spin 1s linear infinite}.send-results-banner{align-items:center;background:#ecfdf5;border:1px solid #10b981;border-radius:10px;display:flex;gap:20px;margin-bottom:16px;padding:14px 20px}.send-results-banner.has-errors{background:#fffbeb;border-color:#f59e0b}.success-count{color:#059669}.failed-count,.success-count{align-items:center;display:flex;font-weight:500;gap:8px}.failed-count{color:#dc2626}.close-banner{align-items:center;background:#0000;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;display:flex;font-size:1.2rem;height:28px;justify-content:center;margin-left:auto;width:28px}.close-banner:hover{background:#0000001a}.draft-helper{background:var(--cream);border-radius:8px;gap:16px;margin-bottom:16px;padding:12px 16px}.btn-select-all,.draft-helper{align-items:center;display:flex}.btn-select-all{background:#fff;border:1px solid var(--cream-dark);border-radius:6px;color:var(--navy);cursor:pointer;font-size:.85rem;gap:8px;padding:8px 14px;transition:all .15s ease}.btn-select-all:hover{border-color:var(--sage);color:var(--sage)}.helper-text{color:var(--text-muted);font-size:.85rem}.stat-card.clickable{cursor:pointer;transition:all .15s ease}.stat-card.clickable:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card.active{border:2px solid var(--sage)}.invoice-checkbox{align-items:center;color:var(--text-muted);cursor:pointer;display:flex;justify-content:center;transition:all .15s ease;width:40px}.invoice-checkbox .checked,.invoice-checkbox:hover{color:var(--sage)}.invoice-card.selected{background:var(--sage-pale);border-color:var(--sage)}.btn-send-single{align-items:center;background:var(--sage-pale);border:1px solid var(--sage);border-radius:8px;color:var(--sage);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .15s ease;width:36px}.btn-send-single:hover{background:var(--sage);color:#fff}.btn-send-single:disabled{cursor:not-allowed;opacity:.5}.btn-mark-paid{align-items:center;background:#f0fdf4;border:1px solid #16a34a;border-radius:8px;color:#16a34a;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .15s ease;width:36px}.btn-mark-paid:hover{background:#16a34a;color:#fff}.stat-icon.gray{background:#f3f4f6;color:#6b7280}@media (max-width:768px){.selection-bar{align-items:flex-start;flex-direction:column;gap:12px}.selection-actions{justify-content:flex-end;width:100%}.draft-helper{align-items:flex-start;flex-direction:column}.invoice-checkbox{width:32px}}.invoice-detail{margin:0 auto;max-width:1400px;padding:24px}.detail-header{align-items:center;margin-bottom:24px}.header-left{gap:16px}.back-btn,.header-left{align-items:center;display:flex}.back-btn{background:#fff;border:1px solid var(--cream-dark);border-radius:10px;color:var(--text-muted);height:40px;justify-content:center;transition:all .2s ease;width:40px}.back-btn:hover{border-color:var(--sage);color:var(--sage)}.header-info{align-items:center;display:flex;gap:16px}.header-info h1{color:var(--navy);font-family:Playfair Display,serif;font-size:1.5rem;margin:0}.status-badge.large{align-items:center;border-radius:8px;display:flex;font-size:.875rem;font-weight:600;gap:8px;padding:8px 16px}.header-actions{gap:12px}.btn-primary,.btn-secondary{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:var(--sage-light)}.btn-secondary{color:var(--navy)}.btn-icon{background:#fff;border-radius:8px;height:40px;width:40px}.btn-icon:hover{border-color:var(--sage);color:var(--sage)}.detail-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 320px}@media (max-width:1000px){.detail-grid{grid-template-columns:1fr}}.invoice-content{background:#fff;border:1px solid var(--cream-dark);border-radius:12px;padding:32px}.invoice-company{align-items:flex-start;border-bottom:2px solid var(--cream-dark);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:24px}.company-logo{align-items:center;display:flex;gap:12px}.logo-icon{font-size:2rem}.company-name{display:flex;flex-direction:column}.company-name .name{color:var(--navy);font-family:Playfair Display,serif;font-size:1.25rem;font-weight:600}.company-name .tagline{color:var(--text-muted);font-size:.75rem;letter-spacing:1px;text-transform:uppercase}.company-contact{color:var(--text-muted);font-size:.85rem;text-align:right}.company-contact p{margin:2px 0}.invoice-parties{grid-gap:40px;display:grid;gap:40px;grid-template-columns:1fr 1fr;margin-bottom:32px}.bill-to h3,.invoice-info h3{color:var(--text-muted);font-size:.7rem;letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.bill-to .client-name{color:var(--navy);font-size:1rem;font-weight:600;margin-bottom:4px}.bill-to p{color:var(--text-dark);font-size:.875rem;margin:2px 0}.invoice-info{text-align:right}.info-row{display:flex;gap:16px;justify-content:flex-end;margin-bottom:6px}.info-row .label{color:var(--text-muted);font-size:.85rem}.info-row .value{color:var(--navy);font-size:.85rem;font-weight:500;min-width:120px;text-align:right}.info-row .value.overdue{color:#dc2626}.line-items-section{margin-bottom:24px}.section-header{margin-bottom:12px}.section-header h3{color:var(--navy);font-size:.875rem;font-weight:600}.btn-text{align-items:center;background:none;border:none;color:var(--sage);cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:6px}.btn-text:hover{color:var(--sage-light)}.line-items-table{border-collapse:collapse;width:100%}.line-items-table th{border-bottom:1px solid var(--cream-dark);color:var(--text-muted);font-size:.7rem;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase}.line-items-table th.center{text-align:center}.line-items-table th.right{text-align:right}.line-items-table td{border-bottom:1px solid var(--cream-dark);color:var(--text-dark);font-size:.9rem;padding:14px 12px}.line-items-table td.center{text-align:center}.line-items-table td.right{text-align:right}.line-items-table td.actions{padding-right:0;width:40px}.btn-icon-sm{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .2s ease;width:28px}.btn-icon-sm:hover{background:#fee2e2;color:#dc2626}.invoice-totals{border-top:2px solid var(--cream-dark);margin-left:auto;max-width:300px;padding-top:16px}.totals-row{color:var(--text-dark);display:flex;font-size:.9rem;justify-content:space-between;padding:8px 0}.totals-row.total{border-top:1px solid var(--cream-dark);color:var(--navy);font-size:1.1rem;font-weight:700;margin-top:4px;padding-top:12px}.totals-row.tip{color:var(--sage)}.totals-row.paid{color:#16a34a}.totals-row.balance{border-top:1px dashed var(--cream-dark);color:var(--gold);font-weight:600;margin-top:4px;padding-top:12px}.invoice-sidebar{display:flex;flex-direction:column;gap:16px}.sidebar-card{background:#fff;border:1px solid var(--cream-dark);border-radius:12px;padding:20px}.sidebar-card h3{color:var(--text-muted);font-size:.75rem;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.payment-status{align-items:center;border-radius:10px;display:flex;gap:12px;padding:16px}.payment-status.paid{background:#f0fdf4;color:#16a34a}.payment-status.pending{background:#fff7ed;color:#ea580c}.payment-status.overdue{background:#fef2f2;color:#dc2626}.status-details{display:flex;flex-direction:column}.status-text{font-size:.95rem;font-weight:600}.status-date,.status-method{font-size:.8rem;opacity:.8}.status-amount{font-size:1.25rem;font-weight:700}.tip-split-list{display:flex;flex-direction:column;gap:8px}.tip-split-row{background:var(--cream);border-radius:6px;display:flex;font-size:.875rem;justify-content:space-between;padding:8px 12px}.employee-name{color:var(--navy)}.employee-amount{color:var(--sage);font-weight:600}.tip-split-total{border-top:1px solid var(--cream-dark);color:var(--navy);display:flex;font-weight:600;justify-content:space-between;margin-top:8px;padding-top:8px}.related-job{display:flex;flex-direction:column;gap:8px}.job-info{align-items:center;color:var(--text-dark);display:flex;font-size:.85rem;gap:10px}.job-info svg{color:var(--text-muted)}.client-link{align-items:center;background:var(--cream);border-radius:8px;color:var(--navy);display:flex;font-weight:500;gap:10px;padding:12px;text-decoration:none;transition:all .2s ease}.client-link:hover{background:var(--sage-pale)}.client-link svg:last-child{color:var(--text-muted);margin-left:auto}.stripe-link{align-items:center;color:var(--sage);display:flex;font-size:.9rem;font-weight:500;gap:8px;text-decoration:none}.stripe-link:hover{color:var(--sage-light)}.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-content{background:#fff;border-radius:16px;max-height:90vh;max-width:480px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid var(--cream-dark);display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{color:var(--navy);font-family:Playfair Display,serif;font-size:1.25rem;margin:0}.close-btn{align-items:center;background:var(--cream);border:none;border-radius:8px;color:var(--text-muted);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.close-btn:hover{background:var(--cream-dark);color:var(--navy)}.modal-body{padding:24px}.modal-body p{color:var(--text-dark);font-size:.9rem;margin-bottom:12px}.send-summary{background:var(--cream);border-radius:10px;margin-top:20px;padding:16px}.summary-row{display:flex;font-size:.9rem;justify-content:space-between;padding:8px 0}.summary-row span:first-child{color:var(--text-muted)}.summary-row span:last-child{color:var(--navy);font-weight:600}.form-group{margin-bottom:16px}.form-group label{color:var(--navy);display:block;font-size:.8rem;margin-bottom:6px}.form-group input,.form-group select{border:1px solid var(--cream-dark);border-radius:8px;font-family:inherit;padding:10px 14px;transition:border-color .2s ease;width:100%}.form-hint{color:var(--sage);display:block;font-size:.75rem;margin-top:6px}.line-item-total{background:var(--cream);border-radius:8px;color:var(--navy);display:flex;font-weight:600;justify-content:space-between;padding:12px 16px}.modal-actions{border-top:1px solid var(--cream-dark);display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.not-found{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:80px 24px;text-align:center}.not-found svg{color:var(--text-muted);margin-bottom:16px;opacity:.3}.not-found h2{color:var(--navy);margin-bottom:20px}@media (max-width:768px){.detail-header{align-items:flex-start;flex-direction:column;gap:16px}.header-actions{flex-wrap:wrap;width:100%}.invoice-parties{gap:24px;grid-template-columns:1fr}.invoice-info{text-align:left}.info-row{justify-content:flex-start}.info-row .value{text-align:left}.invoice-totals{max-width:100%}.form-row{grid-template-columns:1fr}}.send-method-selection{margin-bottom:20px}.send-method-label{color:var(--text-secondary);display:block;font-weight:500;margin-bottom:10px}.send-method-options{display:flex;gap:12px}.send-method-btn{align-items:center;background:var(--background);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;display:flex;flex:1 1;font-size:.95rem;font-weight:500;gap:8px;justify-content:center;padding:14px 20px;transition:all var(--transition-fast)}.send-method-btn.active,.send-method-btn:hover:not(:disabled){border-color:var(--sage);color:var(--sage)}.send-method-btn.active{background:var(--sage-light)}.send-method-btn:disabled{cursor:not-allowed;opacity:.5}.send-method-btn .no-contact{font-size:.75rem;opacity:.7}.send-description{color:var(--text-secondary);font-size:.95rem;margin:16px 0}.edit-input{border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.9rem;padding:8px 10px;width:100%}.edit-input.small{text-align:right;width:80px}.edit-input:focus{border-color:var(--sage);outline:none}.btn-icon-sm.danger:hover{background:#fef2f2;color:#dc2626}.deposit-edit-section{border-top:1px dashed var(--border-color);margin-top:16px;padding-top:16px}.deposit-toggle{align-items:center;color:var(--navy);cursor:pointer;display:flex;font-weight:500;gap:10px}.deposit-toggle input{cursor:pointer;height:18px;width:18px}.deposit-options{border-radius:var(--radius-md);margin-top:12px;padding:12px}.deposit-type-row{align-items:center;display:flex;gap:8px;margin-bottom:10px}.deposit-type-row select{font-size:.85rem}.deposit-type-row input,.deposit-type-row select{border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:6px 10px}.deposit-type-row input{text-align:right;width:80px}.deposit-type-row span{color:var(--text-muted);font-weight:500}.deposit-due-row{align-items:center;display:flex;gap:8px}.deposit-due-row label{color:var(--text-secondary);font-size:.85rem}.deposit-due-row input{border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:6px 10px}.deposit-info{border-top:1px dashed var(--border-color);margin-top:12px;padding-top:12px}.totals-row.deposit{color:var(--sage);font-weight:500}.totals-row.deposit-paid{color:var(--success)}.totals-row.deposit-due{color:var(--text-muted);font-size:.85rem}.btn-gold{align-items:center;background:var(--gold);border:none;border-radius:var(--radius-md);color:var(--white);cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:8px;padding:10px 18px;transition:all var(--transition-fast)}.btn-gold:hover{background:#a07a5a}.btn-warning{align-items:center;background:#dc2626;border:none;border-radius:var(--radius-md);color:var(--white);cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:8px;padding:10px 18px;transition:all var(--transition-fast)}.btn-warning:hover:not(:disabled){background:#b91c1c}.btn-warning:disabled{cursor:not-allowed;opacity:.6}.btn-success{align-items:center;background:#16a34a;display:inline-flex;font-size:.9rem;gap:8px;padding:10px 18px}.btn-success:hover:not(:disabled){background:#15803d}.btn-success:disabled{cursor:not-allowed;opacity:.6}.late-fee-info{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-lg);margin-bottom:20px;padding:16px}.overdue-badge{align-items:center;background:#dc2626;border-radius:20px;color:#fff;display:inline-flex;font-size:.875rem;font-weight:600;gap:8px;margin-bottom:8px;padding:6px 12px}.overdue-note{color:#991b1b;font-size:.875rem;margin:0}.late-fee .fee-amount{color:#dc2626;font-weight:600}.checkbox-group{border-top:1px solid var(--cream-dark);margin-top:16px;padding-top:16px}.checkbox-label{align-items:center;cursor:pointer;display:flex;font-size:.9rem;gap:10px}.checkbox-label input[type=checkbox]{cursor:pointer;height:18px;width:18px}.deposit-summary{background:var(--sage-light);border-radius:var(--radius-lg);margin-bottom:20px;padding:16px}.deposit-summary .summary-row .amount{color:var(--sage);font-size:1.25rem;font-weight:700}.deposit-note{background:#fef3c7;border-radius:var(--radius-md);color:#92400e;font-size:.85rem;margin-top:16px;padding:12px}.invoice-type-selection{border-bottom:1px solid var(--border-color);margin-bottom:20px;padding-bottom:20px}.invoice-type-selection .send-method-options{display:flex;flex-direction:column;gap:10px}.invoice-type-selection .send-method-btn{justify-content:flex-start;padding:16px 20px}.invoice-type-selection .send-method-btn .btn-amount{font-size:1.1rem;font-weight:700;margin-left:auto}.send-method-btn.deposit-btn.active{background:#b8926a1a;border-color:var(--gold);color:var(--gold)}.deposit-note-inline{background:#fef3c7;border-radius:var(--radius-md);color:#92400e;font-size:.85rem;margin-top:10px;padding:10px 14px}.send-summary .summary-row.remaining{border-top:1px dashed var(--border-color);color:var(--text-muted);margin-top:10px;padding-top:10px}.section-actions{gap:12px}.btn-text.discount-btn{color:var(--gold)}.btn-text.discount-btn:hover{color:#a07a5a}.discount-row{background:#fef3c7}.discount-row td{color:#92400e}.discount-amount{color:#16a34a!important;font-weight:600}.discount-type-options{display:flex;gap:12px}.discount-type-btn{align-items:center;background:var(--background);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;display:flex;flex:1 1;font-size:.95rem;font-weight:500;gap:8px;justify-content:center;padding:14px 20px;transition:all var(--transition-fast)}.discount-type-btn.active,.discount-type-btn:hover{border-color:var(--sage);color:var(--sage)}.discount-type-btn.active{background:var(--sage-light)}.discount-input{gap:8px}.discount-input input{border:1px solid var(--border-color);border-radius:var(--radius-md);flex:1 1;font-size:1rem;padding:10px 12px}.discount-input .prefix,.discount-input .suffix{color:var(--text-muted);font-size:1.1rem;font-weight:600}.discount-preview{background:var(--background);border-radius:var(--radius-lg);margin-top:20px;padding:16px}.discount-preview .preview-row{display:flex;font-size:.95rem;justify-content:space-between;padding:8px 0}.discount-preview .preview-row.discount{color:#16a34a}.discount-preview .preview-row.total{border-top:1px solid var(--border-color);color:var(--navy);font-size:1.1rem;font-weight:700;margin-top:8px;padding-top:12px}.resend-modal{max-width:450px}.reminder-options{gap:12px}.reminder-options h4{color:#64748b;font-size:.9rem;margin:0 0 12px}.reminder-option{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;gap:16px;padding:16px;text-align:left;transition:all .2s;width:100%}.reminder-option:hover:not(:disabled){background:#f0fdf4;border-color:var(--sage)}.reminder-option:disabled{cursor:not-allowed;opacity:.5}.reminder-option .option-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.reminder-option .option-icon.email{background:#dbeafe;color:#2563eb}.reminder-option .option-icon.text{background:#d1fae5;color:#059669}.reminder-option .option-icon.copy{background:#fef3c7;color:#d97706}.reminder-option .option-content{display:flex;flex:1 1;flex-direction:column}.reminder-option .option-title{color:var(--navy);font-size:1rem;font-weight:600}.reminder-option .option-detail{color:#64748b;font-size:.85rem;margin-top:2px}.reminder-option .spinner{animation:spin 1s linear infinite;color:var(--sage)}.last-reminder{background:#fef9c3;border-radius:8px;color:#92400e;font-size:.85rem;margin-top:16px;padding:12px}.btn-icon.delete{color:#dc2626}.btn-icon.delete:hover{background:#fef2f2;color:#b91c1c}.invoice-new-page{margin:0 auto;max-width:900px}.invoice-new-page .page-header{margin-bottom:24px}.invoice-new-page .page-header .back-btn{align-items:center;background:none;border:none;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:.9rem;gap:8px;margin-bottom:12px;padding:0;transition:color var(--transition-fast)}.invoice-new-page .page-header .back-btn:hover{color:var(--sage)}.invoice-new-page .page-header h1{color:var(--navy);font-family:var(--font-heading);font-size:1.75rem;margin:0}.error-banner{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-lg);color:#dc2626;display:flex;gap:12px;margin-bottom:24px;padding:12px 16px}.error-banner button{background:none;border:none;color:inherit;cursor:pointer;margin-left:auto;opacity:.7;padding:4px}.error-banner button:hover{opacity:1}.invoice-form{display:flex;flex-direction:column;gap:24px}.form-section{background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:24px}.form-section h2{align-items:center;border-bottom:1px solid var(--border-color);color:var(--navy);display:flex;font-size:1.1rem;font-weight:600;gap:10px;margin:0 0 20px;padding-bottom:12px}.form-section h2 svg{color:var(--sage)}.section-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.section-header h2{border:none;margin:0;padding:0}.selected-client{align-items:center;background:var(--sage-light);border-radius:var(--radius-lg);display:flex;justify-content:space-between;padding:16px}.selected-client .client-info{display:flex;flex-direction:column;gap:4px}.selected-client .client-info strong{color:var(--navy);font-size:1rem}.selected-client .client-info span{color:var(--text-muted);font-size:.85rem}.btn-change{border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);padding:8px 16px;transition:all var(--transition-fast)}.client-search-container{position:relative}.search-input-wrapper{align-items:center;background:var(--background);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;gap:10px;padding:12px 16px}.search-input-wrapper svg{color:var(--text-muted)}.search-input-wrapper input{background:none;border:none;flex:1 1;font-size:.95rem;outline:none}.client-search-results{background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);left:0;margin-top:4px;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.client-result{border-bottom:1px solid var(--border-color);cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:12px 16px}.client-result:last-child{border-bottom:none}.client-result:hover{background:var(--sage-light)}.client-result strong{color:var(--navy)}.client-result span{color:var(--text-muted);font-size:.85rem}.no-results{color:var(--text-muted);padding:16px;text-align:center}.link-options{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.link-group label{color:var(--text-secondary);display:block;font-size:.85rem;font-weight:500;margin-bottom:6px}.link-group select{background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9rem;padding:10px 12px;width:100%}.form-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.form-group label{color:var(--text-secondary);font-weight:500}.form-group input,.form-group select{border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9rem;padding:10px 12px}.form-group input:focus,.form-group select:focus{border-color:var(--sage);outline:none}.line-items-table{border:1px solid var(--border-color);border-radius:var(--radius-lg)}.table-header{background:var(--background)}.table-header,.table-row{grid-gap:12px;gap:12px;grid-template-columns:120px 1fr 70px 100px 90px 40px}.table-row{border-bottom:1px solid var(--border-color);padding:12px 16px}.table-row input,.table-row select{border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.9rem;padding:8px 10px}.table-row .col-desc{width:100%}.table-row .col-qty{text-align:center;width:100%}.price-input{gap:4px}.price-input span{color:var(--text-muted)}.price-input input{width:80px}.btn-remove{background:none;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:6px;transition:all var(--transition-fast)}.btn-remove:hover{background:#fef2f2;color:#dc2626}.no-items{color:var(--text-muted);padding:32px;text-align:center}.table-footer{align-items:center;background:var(--background);border-top:1px solid var(--border-color);display:flex;gap:16px;justify-content:flex-end;padding:16px}.subtotal-label{color:var(--text-secondary);font-weight:500}.subtotal-value{color:var(--navy);font-size:1.25rem;font-weight:700}.btn-add-item{align-items:center;background:var(--sage-light);border:none;border-radius:var(--radius-md);color:var(--sage);cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:500;gap:6px;padding:8px 14px;transition:all var(--transition-fast)}.btn-add-item:hover{background:var(--sage);color:var(--white)}.deposit-toggle{margin-bottom:16px}.toggle-label{color:var(--navy);font-weight:500;gap:12px}.toggle-label input{display:none}.toggle-slider{background:#e5e7eb;border-radius:24px;height:24px;position:relative;width:44px}.toggle-slider,.toggle-slider:before{transition:all var(--transition-fast)}.toggle-slider:before{background:var(--white);border-radius:50%;box-shadow:0 1px 3px #0003;content:"";height:20px;left:2px;position:absolute;top:2px;width:20px}.toggle-label input:checked+.toggle-slider{background:var(--sage)}.toggle-label input:checked+.toggle-slider:before{transform:translateX(20px)}.deposit-options{background:var(--sage-light);border-radius:var(--radius-lg);padding:20px}.radio-group{display:flex;gap:12px}.radio-group label{align-items:center;background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:8px;padding:10px 16px;transition:all var(--transition-fast)}.radio-group label input{display:none}.radio-group label.active{background:var(--white);border-color:var(--sage);color:var(--sage)}.radio-group label svg{opacity:.7}.deposit-input{align-items:center;display:flex;gap:4px}.deposit-input span{color:var(--text-muted);font-weight:500}.deposit-input input{border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.95rem;padding:10px 12px;width:100px}.deposit-summary{border-top:1px solid #2c5f4e33;margin-top:20px;padding-top:16px}.deposit-summary .summary-row{display:flex;font-size:.95rem;justify-content:space-between;padding:8px 0}.deposit-summary .summary-row .amount{color:var(--navy);font-weight:600}.form-section textarea{border:1px solid var(--border-color);border-radius:var(--radius-md);font-family:inherit;font-size:.9rem;padding:12px;resize:vertical;width:100%}.form-section textarea:focus{border-color:var(--sage);outline:none}.form-actions{border-top:1px solid var(--border-color);padding:24px 0}.btn-secondary{border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:.95rem;font-weight:500;padding:12px 24px;transition:all var(--transition-fast)}.btn-secondary:hover{border-color:var(--navy);color:var(--navy)}.btn-primary{background:var(--navy);border-radius:var(--radius-md);font-size:.95rem;padding:12px 24px;transition:all var(--transition-fast)}.btn-primary:hover{background:#1a2634}.btn-primary:disabled,.btn-secondary:disabled,.btn-success:disabled{cursor:not-allowed;opacity:.6}.btn-success{background:var(--sage);border:none;border-radius:var(--radius-md);color:var(--white);cursor:pointer;font-size:.95rem;font-weight:500;padding:12px 24px;transition:all var(--transition-fast)}.btn-success:hover{background:#234a3d}@media (max-width:768px){.table-header,.table-row{gap:8px;grid-template-columns:1fr}.table-header{display:none}.table-row{border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:8px;padding:16px}.price-input,.table-row input,.table-row select{width:100%}.price-input input{flex:1 1}.form-actions{flex-direction:column}.form-actions button{width:100%}}.tips-report{margin:0 auto;max-width:1200px;padding:24px}.header-title h1{color:var(--navy);margin:0}.header-title .subtitle{color:var(--text-muted);font-size:.875rem;margin-top:4px}.btn-primary{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.filters-section{align-items:flex-end;background:#fff;border:1px solid var(--cream-dark);border-radius:12px;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px;padding:20px}.filter-group{flex-direction:column;gap:6px}.filter-group label{color:var(--text-muted);font-size:.75rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.filter-group input,.filter-group select{border:1px solid var(--cream-dark);border-radius:8px;font-family:inherit;font-size:.875rem;min-width:150px;padding:10px 14px}.filter-group input:focus,.filter-group select:focus{border-color:var(--sage);outline:none}.date-range-display{border-radius:8px;color:var(--text-dark);font-size:.875rem;margin-left:auto}.date-range-display svg{color:var(--text-muted)}.summary-cards{grid-template-columns:repeat(3,1fr);margin-bottom:24px}@media (max-width:768px){.summary-cards{grid-template-columns:1fr}}.summary-card{border:1px solid var(--cream-dark)}.summary-card.total{background:linear-gradient(135deg,var(--sage) 0,var(--sage-light) 100%);border:none;color:#fff}.summary-card.total .card-icon{background:#fff3;color:#fff}.summary-card.total .card-label{color:#fffc}.card-icon{align-items:center;background:var(--cream);border-radius:12px;color:var(--sage);display:flex;height:48px;justify-content:center;width:48px}.card-content{display:flex;flex-direction:column}.card-value{color:var(--navy);font-size:1.5rem;font-weight:700}.summary-card.total .card-value{color:#fff}.card-label{color:var(--text-muted);font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.employee-summary{margin-bottom:24px}.employee-summary h2{color:var(--navy);font-size:1rem;font-weight:600;margin-bottom:16px}.employee-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.employee-card{border:1px solid var(--cream-dark);gap:12px;padding:14px 16px}.emp-avatar,.employee-card{align-items:center;border-radius:10px;display:flex}.emp-avatar{background:var(--sage);color:#fff;font-size:1rem;font-weight:600;height:40px;justify-content:center;width:40px}.emp-info{display:flex;flex:1 1;flex-direction:column}.emp-name{color:var(--navy);font-size:.9rem;font-weight:600}.emp-count{color:var(--text-muted);font-size:.75rem}.emp-total{color:var(--sage);font-size:1.1rem;font-weight:700}.tips-table-section{background:#fff;border:1px solid var(--cream-dark);border-radius:12px;overflow:hidden}.tips-table-section h2{border-bottom:1px solid var(--cream-dark);color:var(--navy);font-size:1rem;font-weight:600;margin:0;padding:16px 20px}.tips-table{border-collapse:collapse;width:100%}.tips-table th{background:var(--cream);border-bottom:1px solid var(--cream-dark);color:var(--text-muted);font-size:.7rem;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase}.tips-table th.right{text-align:right}.tips-table td{border-bottom:1px solid var(--cream-dark);color:var(--text-dark);font-size:.875rem;padding:14px 16px}.tips-table td.right{text-align:right}.tips-table td.amount{color:var(--sage);font-weight:600}.tips-table td.muted{color:var(--text-muted);font-size:.8rem}.tips-table tbody tr:hover{background:var(--cream)}.invoice-num{color:var(--text-muted);font-family:monospace;font-size:.8rem}.employee-cell{gap:8px}.emp-badge,.employee-cell{align-items:center;display:flex}.emp-badge{background:var(--sage-pale);border-radius:6px;color:var(--sage);font-size:.7rem;font-weight:600;height:24px;justify-content:center;width:24px}.team-note{color:var(--text-muted);font-size:.7rem}.tips-table tfoot td{background:var(--cream);font-size:.9rem;padding:16px}.empty-state{color:var(--text-muted);padding:60px 24px}.empty-state svg{opacity:.3}.empty-state p{font-size:.9rem}@media (max-width:768px){.filters-section{align-items:stretch;flex-direction:column}.filter-group input,.filter-group select{width:100%}.date-range-display{justify-content:center;margin-left:0}.tips-table{font-size:.8rem}.tips-table td,.tips-table th{padding:10px 12px}}.reports-page{padding:0}.reports-page .page-header{margin-bottom:24px}.reports-controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:16px}.report-tabs{display:flex;flex-wrap:wrap;gap:8px}.report-tab{align-items:center;background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:8px;padding:12px 20px;transition:all var(--transition-fast)}.report-tab:hover{border-color:var(--sage);color:var(--sage)}.report-tab.active{background:var(--sage);border-color:var(--sage);color:var(--white)}.report-tab svg{flex-shrink:0}.date-filter{align-items:center;display:flex;gap:12px}.date-filter select{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);color:var(--navy);cursor:pointer;font-size:.9rem;padding:12px 16px}.date-filter select:focus{border-color:var(--sage);outline:none}.custom-dates{align-items:center;display:flex;gap:8px}.custom-dates input{border:1px solid var(--cream-dark);border-radius:var(--radius-sm);font-size:.9rem;padding:10px 12px}.custom-dates span,.date-range-display{color:var(--text-muted);font-size:.85rem}.date-range-display{align-items:center;background:var(--cream);border-radius:var(--radius-sm);display:flex;gap:8px;margin-bottom:24px;padding:10px 16px}.date-range-display svg{color:var(--sage)}.kpi-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.kpi-card{align-items:center;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;gap:16px;padding:24px}.kpi-card.primary{background:linear-gradient(135deg,var(--sage) 0,#3a7d66 100%)}.kpi-card.primary .kpi-label,.kpi-card.primary .kpi-value{color:var(--white)}.kpi-card.primary .kpi-icon{background:#fff3;color:var(--white)}.kpi-card.success{border-left:4px solid var(--green)}.kpi-card.warning{border-left:4px solid var(--orange)}.kpi-card.danger{border-left:4px solid var(--red)}.kpi-icon{align-items:center;background:var(--sage-pale);border-radius:var(--radius-md);color:var(--sage);display:flex;flex-shrink:0;height:56px;justify-content:center;width:56px}.kpi-data{flex:1 1}.kpi-value{color:var(--navy);display:block;font-size:1.75rem;font-weight:700;line-height:1.2}.kpi-label{font-size:.85rem;margin-top:4px}.kpi-label,.kpi-target{color:var(--text-muted);display:block}.kpi-target{font-size:.75rem;margin-top:2px}.report-section{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:24px}.report-section h3{align-items:center;color:var(--navy);display:flex;font-family:var(--font-body);font-size:1rem;font-weight:600;gap:10px;margin-bottom:20px}.report-section h3 svg{color:var(--sage)}.report-section.warning-section{border-left:4px solid var(--orange)}.report-section.warning-section h3,.report-section.warning-section h3 svg{color:var(--orange)}.chart-container{padding:20px 0}.bar-chart{align-items:flex-end;display:flex;gap:12px;height:200px;justify-content:space-between}.bar-item{align-items:center;display:flex;flex:1 1;flex-direction:column;height:100%}.bar-value{color:var(--navy);font-size:.75rem;font-weight:600;margin-bottom:8px}.bar{background:linear-gradient(180deg,var(--sage) 0,var(--sage-light) 100%);border-radius:var(--radius-sm) var(--radius-sm) 0 0;max-width:60px;min-height:4px;transition:height .3s ease;width:100%}.bar-label{color:var(--text-muted);font-size:.75rem;margin-top:8px}.day-chart{align-items:flex-end;display:flex;gap:16px;height:150px;justify-content:space-between;padding:20px 0}.day-bar{align-items:center;display:flex;flex:1 1;flex-direction:column;height:100%}.day-value{color:var(--navy);font-size:.85rem;font-weight:600;margin-bottom:8px}.day-fill{background:var(--sage);border-radius:var(--radius-sm) var(--radius-sm) 0 0;max-width:50px;min-height:4px;transition:height .3s ease;width:100%}.day-label{color:var(--text-muted);font-size:.8rem;font-weight:500;margin-top:8px}.data-table{border:1px solid var(--cream);border-radius:var(--radius-md);overflow:hidden}.table-header{grid-gap:16px;background:var(--cream);color:var(--text-muted);gap:16px;grid-template-columns:2fr repeat(3,1fr);letter-spacing:.5px;padding:14px 20px}.payroll-table .table-header{grid-template-columns:2fr repeat(6,1fr)}.table-row{grid-gap:16px;align-items:center;border-bottom:1px solid var(--cream);color:var(--navy);display:grid;font-size:.9rem;gap:16px;grid-template-columns:2fr repeat(3,1fr);padding:14px 20px}.payroll-table .table-row{grid-template-columns:2fr repeat(6,1fr)}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--cream)}.table-row.totals{font-weight:600}.table-row.totals,.table-row.totals:hover{background:var(--sage-pale)}.employee-name,.service-type{font-weight:500}.revenue{color:var(--sage);font-weight:600}.labor-pct{font-weight:500}.labor-pct.high{color:var(--red);font-weight:600}.completed{color:var(--green)}.cancelled{color:var(--orange)}.tips{color:var(--gold)}.gross-pay{color:var(--sage);font-weight:600}.performance-metrics{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(2,1fr);padding:20px 0}.metric-card{background:var(--cream);border-radius:var(--radius-md);padding:20px;text-align:center}.metric-circle{align-items:center;background:conic-gradient(var(--sage) calc(var(--percent)*1%),var(--cream-dark) calc(var(--percent)*1%));border-radius:50%;display:flex;height:120px;justify-content:center;margin:0 auto 16px;position:relative;width:120px}.metric-circle:before{background:var(--cream);border-radius:50%;content:"";height:90px;position:absolute;width:90px}.metric-value{color:var(--navy);font-size:1.5rem;font-weight:700;position:relative;z-index:1}.metric-label{color:var(--navy);display:block;font-weight:600;margin-bottom:4px}.metric-detail{color:var(--text-muted);display:block;font-size:.85rem}.time-variance{align-items:center;display:flex;font-size:2rem;font-weight:700;gap:8px;justify-content:center;margin-bottom:12px}.time-variance.over{color:var(--orange)}.time-variance.under{color:var(--green)}.export-section{margin-bottom:20px}.export-section .btn{align-items:center;display:inline-flex;gap:8px}@media (max-width:1200px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:900px){.reports-controls{align-items:stretch;flex-direction:column}.date-filter,.report-tabs{justify-content:center}.date-filter{flex-wrap:wrap}.performance-metrics{grid-template-columns:1fr}}@media (max-width:768px){.kpi-grid{grid-template-columns:1fr}.kpi-card{padding:20px}.kpi-value{font-size:1.5rem}.table-header,.table-row{font-size:.8rem;gap:8px;padding:12px 14px}.payroll-table .table-header,.payroll-table .table-row,.table-header,.table-row{grid-template-columns:1.5fr repeat(3,1fr)}.payroll-table .table-header span:nth-child(4),.payroll-table .table-header span:nth-child(5),.payroll-table .table-header span:nth-child(6),.payroll-table .table-row span:nth-child(4),.payroll-table .table-row span:nth-child(5),.payroll-table .table-row span:nth-child(6){display:none}.bar-chart{height:150px}.bar-value{font-size:.65rem}.report-tab{font-size:.8rem;padding:10px 14px}.report-tab span{display:none}}@media (max-width:480px){.report-tabs{display:grid;grid-template-columns:repeat(4,1fr);width:100%}.report-tab{justify-content:center;padding:12px}}.job-log-list{display:flex;flex-direction:column;gap:8px}.job-log-card{background:#fff;border:1px solid #e8e4df;border:1px solid var(--cream-dark,#e8e4df);border-radius:10px;overflow:hidden;transition:all .15s}.job-log-card.expanded{border-color:#2c5f4e;border-color:var(--sage,#2c5f4e);box-shadow:0 2px 12px #2c5f4e14}.job-log-header{align-items:center;cursor:pointer;display:flex;gap:16px;padding:14px 16px;transition:background .12s}.job-log-header:hover{background:#f8f7f5;background:var(--cream,#f8f7f5)}.job-log-left{flex:1 1;min-width:0}.job-log-date{color:#2c5f4e;color:var(--sage,#2c5f4e);font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.job-log-client{color:#1a2634;color:var(--navy,#1a2634);font-size:.95rem;font-weight:600;margin:2px 0}.job-log-address{align-items:center;color:#6b7280;color:var(--text-muted,#6b7280);display:flex;font-size:.78rem;gap:4px}.job-log-right{flex-shrink:0;text-align:right}.job-log-price{color:#1a2634;color:var(--navy,#1a2634);font-size:.95rem;font-weight:700}.job-payment-badge{border-radius:6px;display:inline-block;font-size:.65rem;font-weight:600;letter-spacing:.3px;margin-top:2px;padding:2px 8px;text-transform:uppercase}.job-payment-badge.draft,.job-payment-badge.unbilled{background:#f3f4f6;color:#6b7280}.job-payment-badge.billed{background:#eff6ff;color:#3b82f6}.job-payment-badge.pastdue{background:#fef2f2;color:#dc2626}.job-payment-badge.paid{background:#f0fdf4;color:#16a34a}.job-log-duration{align-items:center;color:#6b7280;color:var(--text-muted,#6b7280);display:flex;font-size:.75rem;gap:4px;justify-content:flex-end}.job-log-photo-badge{align-items:center;background:#2c5f4e14;border-radius:10px;color:#2c5f4e;color:var(--sage,#2c5f4e);display:inline-flex;font-size:.68rem;gap:3px;margin-top:4px;padding:2px 8px}.job-log-chevron{color:#6b7280;color:var(--text-muted,#6b7280);flex-shrink:0;transition:transform .2s}.job-log-chevron.rotated{transform:rotate(90deg)}.job-log-detail{border-top:1px solid #e8e4df;border-top:1px solid var(--cream-dark,#e8e4df);margin-top:0;padding:0 16px 16px}.job-log-timeline{margin-top:14px}.job-log-damage h4,.job-log-notes h4,.job-log-photos h4,.job-log-timeline h4{align-items:center;color:#6b7280;color:var(--text-muted,#6b7280);display:flex;font-size:.78rem;font-weight:700;gap:6px;letter-spacing:.04em;margin:0 0 10px;text-transform:uppercase}.timeline-steps{flex-wrap:wrap;gap:0}.timeline-step,.timeline-steps{align-items:center;display:flex}.timeline-step{background:#f8f7f5;background:var(--cream,#f8f7f5);border-radius:8px;gap:8px;margin-bottom:6px;margin-right:8px;padding:8px 14px}.timeline-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.timeline-icon.en-route{background:#fef3c7;color:#d97706}.timeline-icon.started{background:#dbeafe;color:#2563eb}.timeline-icon.completed.overridden,.timeline-icon.started.overridden{background:#fef3c7;border:2px dashed #f59e0b}.timeline-header-row{align-items:center;display:flex;gap:8px;margin-bottom:10px}.timeline-header-row h4{margin:0!important}.time-edit-btn{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:5px;color:#6b7280;color:var(--text-muted,#6b7280);cursor:pointer;display:flex;font-size:.65rem;font-weight:600;gap:4px;margin-left:auto;padding:3px 10px;transition:all .15s}.time-edit-btn:hover{background:#f0fdf4;border-color:var(--sage);color:var(--sage)}.time-override-badge{align-items:center;background:#fef3c7;border-radius:4px;color:#92400e;display:inline-flex;font-size:.6rem;font-weight:700;gap:3px;letter-spacing:.03em;padding:2px 8px;text-transform:uppercase}.time-override-note{align-items:center;background:#fefbf3;border:1px solid #fde68a;border-radius:6px;color:#92400e;display:flex;font-size:.7rem;gap:5px;margin-bottom:8px;padding:6px 10px}.override-timestamp{color:#b45309;font-size:.62rem}.time-edit-form{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 2px 8px #0000000f;margin-bottom:10px;padding:14px}.time-edit-row{align-items:flex-end;display:flex;gap:12px;margin-bottom:10px}.time-edit-field{display:flex;flex-direction:column;gap:3px}.time-edit-field label{color:var(--text-muted);font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.time-edit-field input[type=time]{border:1px solid #e5e7eb;border-radius:6px;color:var(--navy);font-size:.82rem;font-weight:600;min-width:120px;padding:6px 10px}.time-edit-field input[type=time]:focus{border-color:var(--sage);box-shadow:0 0 0 2px #3d8b6e1a;outline:none}.time-edit-preview{background:#f8f7f5;background:var(--cream,#f8f7f5);border-radius:6px;font-size:.82rem;font-weight:700;padding:6px 12px}.preview-good{color:var(--sage)}.preview-bad{color:#dc2626}.time-edit-note-row{margin-bottom:10px}.time-edit-note-row label{color:var(--text-muted);display:block;font-size:.62rem;font-weight:700;letter-spacing:.04em;margin-bottom:4px;text-transform:uppercase}.time-edit-note-row .required{color:#dc2626}.time-edit-note-input{border:1px solid #e5e7eb;border-radius:6px;box-sizing:border-box;color:var(--navy);font-size:.78rem;padding:7px 10px;width:100%}.time-edit-note-input:focus{border-color:var(--sage);box-shadow:0 0 0 2px #3d8b6e1a;outline:none}.time-edit-note-input::placeholder{color:#cbd5e1}.time-edit-original{background:#f8f7f5;border-radius:5px;color:var(--text-muted);font-size:.65rem;font-style:italic;margin-bottom:10px;padding:5px 8px}.time-edit-actions{display:flex;gap:8px;justify-content:flex-end}.btn-cancel{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:.72rem;font-weight:600;padding:6px 14px}.btn-cancel:hover{background:#f8f7f5}.btn-save-time{align-items:center;background:#3d8b6e;background:var(--sage,#3d8b6e);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.72rem;font-weight:600;gap:5px;padding:6px 16px;transition:background .15s}.btn-save-time:hover{background:#2c7a5e}.btn-save-time:disabled{cursor:not-allowed;opacity:.5}.timeline-icon.completed{background:#d1fae5;color:#059669}.timeline-label{color:#6b7280;color:var(--text-muted,#6b7280);display:block;font-size:.72rem;font-weight:600}.timeline-time{color:#1a2634;color:var(--navy,#1a2634);display:block;font-size:.85rem;font-weight:700}.job-log-details-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-top:14px}.detail-item{display:flex;flex-direction:column;gap:2px}.detail-label{color:#6b7280;color:var(--text-muted,#6b7280);font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.detail-value{color:#1a2634;color:var(--navy,#1a2634);font-size:.82rem;text-transform:capitalize}.detail-value.verified{color:#059669}.detail-value.flagged{color:#d97706}.job-log-photos{margin-top:16px}.photo-group{margin-bottom:12px}.photo-group.damage .photo-group-label{color:#dc2626}.photo-group-label{color:#2c5f4e;color:var(--sage,#2c5f4e);display:block;font-size:.72rem;font-weight:600;margin-bottom:6px}.photo-thumbs{display:flex;flex-wrap:wrap;gap:8px}.photo-thumb{border:2px solid #0000;border-radius:8px;cursor:pointer;height:72px;overflow:hidden;transition:all .12s;width:72px}.photo-thumb:hover{border-color:#2c5f4e;border-color:var(--sage,#2c5f4e);transform:scale(1.05)}.photo-thumb img{height:100%;object-fit:cover;width:100%}.job-log-damage{margin-top:14px}.damage-report-item{background:#fef2f2;border-left:3px solid #dc2626;border-radius:0 8px 8px 0;margin-bottom:8px;padding:10px 14px}.damage-type{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.damage-type.existing{color:#d97706}.damage-type.new{color:#dc2626}.damage-report-item p{color:#1a2634;color:var(--navy,#1a2634);font-size:.82rem;margin:4px 0}.damage-time{color:#6b7280;color:var(--text-muted,#6b7280);font-size:.7rem}.job-log-notes{margin-top:14px}.note-text{color:#1a2634;color:var(--navy,#1a2634);font-size:.82rem;line-height:1.5;margin:4px 0}.empty-report{color:#6b7280;color:var(--text-muted,#6b7280);font-size:.9rem;padding:40px 20px;text-align:center}.photo-viewer-overlay{align-items:center;background:#000000d9;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:9999}.photo-viewer-modal{align-items:center;display:flex;flex-direction:column;max-height:90vh;max-width:90vw;position:relative}.photo-viewer-modal img{border-radius:8px;max-height:80vh;max-width:100%;object-fit:contain}.photo-viewer-close{align-items:center;background:#fff;border:none;border-radius:50%;box-shadow:0 2px 8px #0000004d;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;right:-12px;top:-12px;width:36px;z-index:1}.photo-viewer-info{color:#fff;display:flex;gap:16px;margin-top:10px}.photo-viewer-type{font-size:.85rem;font-weight:600;text-transform:capitalize}.photo-viewer-time{font-size:.8rem;opacity:.7}.job-log-team{align-items:center;color:#3d8b6e;color:var(--sage,#3d8b6e);display:flex;font-size:.72rem;font-weight:600;gap:4px;margin-top:2px}.job-log-helpers{color:#f59e0b;font-size:.68rem;font-style:italic;font-weight:600;margin-top:1px}.kpi-sub{font-size:.7rem;margin-top:2px}.kpi-sub,.ta-sort-label{color:#94a3b8;color:var(--text-muted,#94a3b8)}.ta-sort-label{font-size:.68rem;font-weight:500;margin-left:6px}.ta-header-row{border-bottom:1px solid #f3f4f6;color:#94a3b8;color:var(--text-muted,#94a3b8);display:grid;font-size:.62rem;font-weight:700;grid-template-columns:40px 1fr 90px 90px 90px 90px;letter-spacing:.05em;padding:8px 16px;text-transform:uppercase}.ta-col-rank{align-items:center;display:flex;justify-content:center}.ta-col-name{flex:1 1;min-width:0}.ta-col-num{align-items:flex-end;display:flex;flex-direction:column;justify-content:center;text-align:right}.ta-row-wrap{border-bottom:1px solid #f3f4f6}.ta-row-wrap:last-child{border-bottom:none}.ta-row-wrap.worst>.ta-row{background:#fefbf3}.ta-row{align-items:center;cursor:pointer;display:grid;grid-template-columns:40px 1fr 90px 90px 90px 90px;padding:12px 16px;transition:background .1s}.ta-row:hover{background:#f8f7f5;background:var(--cream,#f8f7f5)}.ta-row.expanded{background:#fafafa}.ta-rank-0{color:#f59e0b}.ta-rank-1{color:#94a3b8}.ta-rank-2{color:#b87333}.ta-rank-3{color:#cbd5e1;font-size:.78rem;font-weight:700}.ta-name-line{align-items:baseline;display:flex;gap:8px;margin-bottom:4px}.ta-emp-name{color:var(--navy);font-size:.85rem;font-weight:600}.ta-emp-meta{color:var(--text-muted);font-size:.65rem}.ta-stacked-bar{background:#f3f4f6;border-radius:3px;display:flex;height:6px;overflow:hidden}.ta-bar-job{background:#3d8b6e;background:var(--sage,#3d8b6e);transition:width .4s}.ta-bar-drive{background:#6366f1;transition:width .4s}.ta-bar-down{background:#f59e0b;transition:width .4s}.ta-val{font-size:.82rem;font-weight:600}.ta-val.sage{color:#3d8b6e;color:var(--sage,#3d8b6e)}.ta-val.purple{color:#6366f1}.ta-val.gold{color:#f59e0b}.ta-val.red{color:#dc2626}.ta-pct,.ta-val.muted{color:var(--text-muted)}.ta-pct{font-size:.6rem}.ta-totals-row{align-items:center;background:#f8f7f5;background:var(--cream,#f8f7f5);border-top:2px solid #e5e7eb;display:grid;font-weight:700;grid-template-columns:40px 1fr 90px 90px 90px 90px;padding:12px 16px}.ta-totals-label{color:var(--navy);font-size:.78rem;font-weight:800;letter-spacing:.04em}.ta-expanded{background:#fafafa;border-top:1px solid #f0f0ee;padding:10px 16px 14px 56px}.ta-expanded-title{color:var(--text-muted);font-size:.62rem;font-weight:700;letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}.ta-day-row{align-items:center;border-bottom:1px solid #f0f0ee;display:grid;font-size:.78rem;grid-template-columns:110px 1fr 70px 70px 70px 60px;padding:7px 0}.ta-day-row:last-child{border-bottom:none}.ta-day-label{color:#475569;font-weight:600}.ta-day-bar{background:#e5e7eb;border-radius:3px;display:flex;height:5px;margin-right:12px;overflow:hidden}.ta-day-val{font-weight:500;text-align:right}.ta-day-val.sage{color:#3d8b6e;color:var(--sage,#3d8b6e)}.ta-day-val.purple{color:#6366f1}.ta-day-val.gold{color:#f59e0b;font-weight:600}.ta-day-val.red{color:#dc2626;font-weight:600}.ta-legend-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-top:20px}.ta-legend-card{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:10px;padding:16px 20px}.ta-legend-card h4{color:var(--navy);font-size:.8rem;font-weight:700;margin:0 0 10px}.ta-legend-item{align-items:center;color:var(--text-muted);display:flex;font-size:.75rem;gap:8px;line-height:1.5;margin-bottom:5px}.ta-legend-dot{border-radius:3px;flex-shrink:0;height:10px;width:10px}.ta-legend-note{color:var(--text-muted);font-size:.65rem;font-style:italic;margin-top:8px}.ta-callout{align-items:center;background:#fefbf3;border-left:3px solid #f59e0b;border-radius:8px;color:#92400e;display:flex;font-size:.68rem;gap:6px;margin-top:8px;padding:8px 12px}@media (max-width:768px){.ta-header-row,.ta-row,.ta-totals-row{font-size:.7rem;grid-template-columns:30px 1fr 70px 70px 70px 70px}.ta-day-row{grid-template-columns:90px 1fr 55px 55px 55px 50px}.ta-legend-grid{grid-template-columns:1fr}}.calendar-page{max-width:1400px;padding:0}.cal-header-bar{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px}.cal-title{color:#1a2634;color:var(--navy,#1a2634);font-size:1.6rem;font-weight:700;margin:0}.cal-subtitle{color:#94a3b8;font-size:.9rem;margin:4px 0 0}.cal-nav{align-items:center;display:flex;gap:12px}.cal-view-toggle{background:#f1f5f9;border-radius:8px;display:flex;padding:3px}.cal-view-toggle button{background:none;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 20px;transition:all .15s}.cal-view-toggle button.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#2c5f4e;color:var(--sage,#2c5f4e)}.cal-arrows{gap:4px}.cal-arrows,.cal-arrows button{align-items:center;display:flex}.cal-arrows button{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;height:36px;justify-content:center;transition:all .15s;width:36px}.cal-arrows button:hover{border-color:#2c5f4e;border-color:var(--sage,#2c5f4e);color:#2c5f4e;color:var(--sage,#2c5f4e)}.cal-today-btn{font-size:.8rem;font-weight:600;padding:0 16px!important;width:auto!important}.cal-stats{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.cal-stat{align-items:center;background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000000f;display:flex;flex:1 1;gap:10px;min-width:120px;padding:14px 20px}.cal-stat svg{color:#2c5f4e;color:var(--sage,#2c5f4e);flex-shrink:0}.cal-stat div{display:flex;flex-direction:column}.cal-stat strong{color:#1a2634;color:var(--navy,#1a2634);font-size:1.15rem;line-height:1.2}.cal-stat span{color:#94a3b8;font-size:.7rem;font-weight:500;letter-spacing:.3px;text-transform:uppercase}.cal-stat.highlight{background:linear-gradient(135deg,#2c5f4e,#3a7d66);background:linear-gradient(135deg,var(--sage,#2c5f4e) 0,#3a7d66 100%)}.cal-stat.highlight span,.cal-stat.highlight strong,.cal-stat.highlight svg{color:#fff}.cal-body{background:#fff;border-radius:12px;box-shadow:0 1px 4px #00000014;overflow:hidden}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);min-height:500px}.cal-day-col{border-right:1px solid #f1f5f9;display:flex;flex-direction:column}.cal-day-col:last-child{border-right:none}.cal-day-col.today{background:#f0faf6}.cal-day-col.past{opacity:.65}.cal-day-col.weekend{background:#fafafa}.cal-day-col.today.weekend{background:#f0faf6}.cal-day-header{border-bottom:1px solid #f1f5f9;cursor:pointer;padding:12px 10px;position:relative;transition:background .15s}.cal-day-header:hover{background:#f8fafc}.cal-day-header:hover .cal-dispatch-link{opacity:1}.cal-dispatch-link{color:#94a3b8;opacity:0;position:absolute;right:8px;top:8px;transition:opacity .15s}.cal-day-label{align-items:center;display:flex;gap:6px;margin-bottom:4px}.cal-day-name{color:#94a3b8;font-size:.7rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.cal-day-num{color:#1a2634;color:var(--navy,#1a2634);font-size:1.2rem;font-weight:700}.cal-day-num.today-num{align-items:center;background:#2c5f4e;background:var(--sage,#2c5f4e);border-radius:50%;color:#fff;display:inline-flex;font-size:.95rem;height:32px;justify-content:center;width:32px}.cal-day-stats{align-items:center;display:flex;gap:8px}.cal-job-count{color:#64748b;font-size:.7rem;font-weight:500}.cal-day-rev{color:#2c5f4e;color:var(--sage,#2c5f4e);font-size:.8rem;font-weight:700}.cal-day-jobs{display:flex;flex:1 1;flex-direction:column;gap:4px;overflow-y:auto;padding:6px}.cal-no-jobs{align-items:center;color:#cbd5e1;display:flex;flex:1 1;font-size:.8rem;font-style:italic;justify-content:center}.cal-job{background:#f8fafc;border-left:3px solid #2c5f4e;border-left:3px solid var(--sage,#2c5f4e);border-radius:6px;cursor:pointer;padding:8px;transition:all .15s}.cal-job:hover{box-shadow:0 2px 6px #0000001a;transform:translateY(-1px)}.cal-job.completed{background:#f0fdf4;border-left-color:#16a34a}.cal-job.en-route,.cal-job.in-progress{background:#fffbeb;border-left-color:#f59e0b}.cal-job.cancelled{background:#fef2f2;border-left-color:#dc2626;opacity:.5}.cal-job-time{color:#94a3b8;font-size:.65rem;font-weight:600;margin-bottom:2px}.cal-job-info{display:flex;flex-direction:column;min-width:0}.cal-job-client{color:#1a2634;color:var(--navy,#1a2634);font-size:.78rem;font-weight:600}.cal-job-client,.cal-job-team{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-job-team{color:#94a3b8;font-size:.65rem}.cal-job-right{align-items:center;display:flex;gap:6px;margin-top:4px}.cal-job-price{color:#2c5f4e;color:var(--sage,#2c5f4e);font-size:.75rem;font-weight:700}.cal-job-dur{background:#e2e8f0;border-radius:4px;color:#94a3b8;font-size:.65rem;padding:1px 5px}.cal-day-footer{border-top:1px solid #f1f5f9;color:#94a3b8;font-size:.7rem;font-weight:500;padding:8px 10px;text-align:center}.cal-month-header{border-bottom:1px solid #e2e8f0;display:grid;grid-template-columns:repeat(7,1fr)}.cal-month-hcell{color:#94a3b8;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:12px;text-align:center;text-transform:uppercase}.cal-month-body{display:flex;flex-direction:column}.cal-month-row{border-bottom:1px solid #f1f5f9;display:grid;grid-template-columns:repeat(7,1fr)}.cal-month-row:last-child{border-bottom:none}.cal-month-cell{border-right:1px solid #f1f5f9;cursor:pointer;min-height:100px;padding:8px;transition:background .12s}.cal-month-cell:last-child{border-right:none}.cal-month-cell:hover{background:#f8fafc}.cal-month-cell.today{background:#f0faf6}.cal-month-cell.outside{background:#fafafa;opacity:.4}.cal-month-cell.has-jobs{cursor:pointer}.cal-mcell-num{color:#1a2634;color:var(--navy,#1a2634);font-size:.85rem;font-weight:600}.cal-mcell-num.today-badge{align-items:center;background:#2c5f4e;background:var(--sage,#2c5f4e);border-radius:50%;color:#fff;display:inline-flex;font-size:.8rem;height:26px;justify-content:center;width:26px}.cal-mcell-content{display:flex;flex-direction:column;gap:3px;margin-top:6px}.cal-mcell-count{color:#64748b;font-size:.7rem;font-weight:500}.cal-mcell-rev{color:#2c5f4e;color:var(--sage,#2c5f4e);font-size:.8rem;font-weight:700}.cal-mcell-dots{align-items:center;display:flex;flex-wrap:wrap;gap:3px}.cal-dot{border-radius:50%;display:inline-block;height:8px;width:8px}.cal-dot.scheduled{background:#2c5f4e;background:var(--sage,#2c5f4e)}.cal-dot.completed{background:#16a34a}.cal-dot.en-route,.cal-dot.in-progress{background:#f59e0b}.cal-dot.cancelled{background:#dc2626}.cal-dot-more{color:#94a3b8;font-size:.6rem}.cal-legend{display:flex;gap:20px;justify-content:center;margin-top:12px;padding:14px}.cal-legend span{align-items:center;color:#64748b;display:flex;font-size:.8rem;gap:6px}.cal-legend .dot{border-radius:50%;display:inline-block;height:10px;width:10px}.cal-legend .dot.scheduled{background:#2c5f4e;background:var(--sage,#2c5f4e)}.cal-legend .dot.completed{background:#16a34a}.cal-legend .dot.in-progress{background:#f59e0b}@media (max-width:1100px){.cal-week{display:flex;flex-direction:column}.cal-day-col{border-bottom:1px solid #f1f5f9;border-right:none}.cal-day-col:last-child{border-bottom:none}.cal-day-header{align-items:center;display:flex;gap:12px}.cal-day-label{margin-bottom:0}.cal-day-jobs{padding:8px 12px}.cal-job{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:70px 1fr auto}.cal-job-time{margin-bottom:0}.cal-job-right{margin-top:0}.cal-no-jobs{justify-content:flex-start;padding:12px}.cal-day-footer{padding-left:14px;text-align:left}}@media (max-width:768px){.cal-header-bar{flex-direction:column}.cal-nav{justify-content:space-between;width:100%}.cal-stats{display:grid;grid-template-columns:1fr 1fr}.cal-month-cell{min-height:70px;padding:4px}.cal-mcell-count{display:none}.cal-month-hcell{font-size:.65rem;padding:8px 4px}}@media (max-width:480px){.cal-stats{gap:8px;grid-template-columns:1fr 1fr}.cal-stat{padding:10px 14px}.cal-stat strong{font-size:1rem}}.messages-page{background:#f8f9fa;display:flex;flex-direction:column;height:100vh;overflow:hidden}.messages-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.messages-title{align-items:center;display:flex;gap:12px}.messages-title h1{color:#111827;font-size:24px;font-weight:600;margin:0}.messages-title svg{color:#2c5f4e}.messages-stats{display:flex;gap:16px}.stat-badge{align-items:center;border-radius:8px;display:flex;font-size:14px;gap:8px;padding:8px 16px}.stat-badge.new{background:#fee2e2;color:#b91c1c}.stat-badge.in-progress{background:#fef3c7;color:#b45309}.stat-badge.resolved{background:#d1fae5;color:#047857}.stat-count{font-size:18px;font-weight:700}.stat-label{font-weight:500}.messages-filters{background:#fff;border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:16px;padding:16px 24px}.search-box{background:#f3f4f6;border-radius:8px;gap:8px;max-width:300px;min-width:200px;padding:8px 12px}.search-box svg{color:#6b7280}.search-box input{font-size:14px}.filter-dropdowns{display:flex;flex-wrap:wrap;gap:12px}.filter-select{background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:14px;min-width:120px;padding:8px 12px}.filter-select:focus{border-color:#2c5f4e;outline:none}.messages-content{display:flex;flex:1 1;overflow:hidden}.message-list{background:#fff;border-right:1px solid #e5e7eb;min-width:350px;overflow-y:auto;width:400px}.message-card{border-bottom:1px solid #e5e7eb;cursor:pointer;padding:16px 20px;transition:background .15s ease}.message-card:hover{background:#f9fafb}.message-card.selected{background:#f0fdf4;border-left:3px solid #2c5f4e}.message-card.unread{background:#fefce8}.message-card.unread.selected{background:#f0fdf4}.message-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.client-name{color:#111827;font-size:15px;font-weight:600}.message-time{color:#6b7280;font-size:12px}.message-subject{color:#374151;font-size:14px;font-weight:500;margin-bottom:4px}.message-preview{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#6b7280;display:-webkit-box;font-size:13px;line-height:1.4;margin-bottom:8px;overflow:hidden}.message-card-footer{align-items:center;display:flex;justify-content:space-between}.message-badges{display:flex;flex-wrap:wrap;gap:6px}.badge{border-radius:4px;font-size:11px;font-weight:500;padding:2px 8px;text-transform:capitalize}.assigned-to{align-items:center;display:flex;font-size:12px;gap:4px}.assigned-to,.empty-state{color:#6b7280}.empty-state h3{color:#374151;font-size:18px}.empty-state p{font-size:14px;margin:0}.conversation-panel{background:#fff;display:flex;flex:1 1;flex-direction:column;overflow:hidden}.no-selection{color:#6b7280;height:100%}.no-selection h3{color:#374151;margin:0 0 8px}.no-selection p{font-size:14px;margin:0}.conversation-header{align-items:center;background:#fafafa;border-bottom:1px solid #e5e7eb;display:flex;gap:16px;padding:16px 24px}.back-btn{background:none;border:none;border-radius:8px;cursor:pointer;display:none;padding:8px}.back-btn:hover{background:#f3f4f6}.conversation-client-info{flex:1 1}.conversation-client-info h2{color:#111827;font-size:18px;margin:0 0 4px}.client-contact{display:flex;gap:16px}.client-contact a{align-items:center;color:#2c5f4e;display:flex;font-size:13px;gap:4px;text-decoration:none}.client-contact a:hover{text-decoration:underline}.view-client-btn{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;color:#374151;display:flex;font-size:14px;gap:6px;padding:8px 16px;text-decoration:none;transition:all .15s ease}.view-client-btn:hover{background:#e5e7eb}.message-actions-bar{align-items:flex-end;background:#fafafa;border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:16px;padding:12px 24px}.action-group{display:flex;flex-direction:column;gap:4px}.action-group label{color:#6b7280;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.action-group select{background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;font-size:13px;padding:6px 10px}.action-group select:focus{border-color:#2c5f4e;outline:none}.resolve-btn{align-items:center;background:#2c5f4e;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;margin-left:auto;padding:8px 16px;transition:background .15s ease}.resolve-btn:hover{background:#234a3d}.conversation-subject{background:#f9fafb;border-bottom:1px solid #e5e7eb;color:#374151;font-size:14px;padding:12px 24px}.conversation-thread{display:flex;flex:1 1;flex-direction:column;gap:16px;overflow-y:auto;padding:24px}.thread-message{border-radius:12px;max-width:70%;padding:12px 16px}.thread-message.client{align-self:flex-start;background:#f3f4f6;border-bottom-left-radius:4px}.thread-message.admin{align-self:flex-end;background:#2c5f4e;border-bottom-right-radius:4px;color:#fff}.thread-message-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:6px}.sender-name{font-size:13px;font-weight:600}.thread-message.client .sender-name{color:#374151}.thread-message.admin .sender-name{color:#ffffffe6}.message-timestamp{font-size:11px}.thread-message.client .message-timestamp{color:#6b7280}.thread-message.admin .message-timestamp{color:#ffffffb3}.thread-message-body{font-size:14px;line-height:1.5;white-space:pre-wrap}.reply-box{background:#fafafa;border-top:1px solid #e5e7eb;padding:16px 24px}.reply-box textarea{border:1px solid #e5e7eb;border-radius:8px;font-family:inherit;font-size:14px;min-height:80px;padding:12px;resize:vertical;width:100%}.reply-box textarea:focus{border-color:#2c5f4e;outline:none}.reply-actions{align-items:center;display:flex;justify-content:space-between;margin-top:12px}.keyboard-hint{color:#9ca3af;font-size:12px}.send-btn{align-items:center;background:#2c5f4e;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:background .15s ease}.send-btn:hover:not(:disabled){background:#234a3d}.send-btn:disabled{background:#9ca3af;cursor:not-allowed}@media (max-width:900px){.messages-content{position:relative}.message-list{min-width:100%;width:100%}.conversation-panel{bottom:0;left:0;position:absolute;right:0;top:0;transform:translateX(100%);transition:transform .3s ease}.conversation-panel.active{transform:translateX(0)}.back-btn.mobile-only{display:flex}.messages-header{align-items:flex-start;flex-direction:column;gap:12px}.messages-stats{justify-content:space-between;width:100%}.stat-badge{flex:1 1;justify-content:center}.filter-dropdowns{width:100%}.filter-select{flex:1 1;min-width:0}.search-box{max-width:none;width:100%}.message-actions-bar{gap:12px}.action-group{flex:1 1;min-width:100px}.thread-message{max-width:85%}}@media (max-width:600px){.messages-header{padding:16px}.messages-filters{padding:12px 16px}.stat-badge{flex-direction:column;gap:2px;padding:8px 12px}.stat-count{font-size:16px}.stat-label{font-size:11px}.conversation-header,.message-actions-bar{padding:12px 16px}.conversation-thread{padding:16px}.reply-box{padding:12px 16px}}.compose-btn{align-items:center;background:var(--sage);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:var(--font-sans);font-size:.85rem;font-weight:600;gap:6px;padding:10px 20px;transition:opacity .12s;white-space:nowrap}.compose-btn:hover{opacity:.9}.compose-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.compose-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:560px;overflow:hidden;width:100%}.compose-header{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:20px 24px}.compose-header h2{color:var(--navy);font-family:var(--font-heading);font-size:1.2rem;font-weight:600;margin:0}.compose-close{background:none;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;padding:4px}.compose-close:hover{background:#f1f5f9;color:#1a2634}.compose-body{display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding:20px 24px}.compose-field label{color:#64748b;display:block;font-size:.72rem;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.compose-field input,.compose-field textarea{border:2px solid #e8ecf1;border-radius:8px;font-family:var(--font-sans);font-size:.9rem;outline:none;padding:10px 14px;resize:vertical;transition:border-color .15s;width:100%}.compose-field input:focus,.compose-field textarea:focus{border-color:var(--sage)}.compose-client-search{align-items:center;background:#fff;border:2px solid #e8ecf1;border-radius:8px;display:flex;gap:8px;padding:0 12px;transition:border-color .15s}.compose-client-search:focus-within{border-color:var(--sage)}.compose-client-search svg{color:#94a3b8;flex-shrink:0}.compose-client-search input{border:none!important;margin:0;padding:10px 0!important}.compose-client-list{border:1px solid #e8ecf1;border-radius:8px;margin-top:4px;max-height:200px;overflow-y:auto}.compose-client-option{align-items:center;background:none;border:none;cursor:pointer;display:flex;font-family:var(--font-sans);gap:10px;padding:10px 14px;text-align:left;transition:background .1s;width:100%}.compose-client-option:hover{background:var(--cream)}.compose-client-avatar{align-items:center;background:var(--sage);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:32px;justify-content:center;width:32px}.compose-client-info{display:flex;flex-direction:column}.compose-client-name{color:#1a2634;font-size:.85rem;font-weight:600}.compose-client-email{color:#94a3b8;font-size:.72rem}.compose-client-empty{color:#94a3b8;font-size:.82rem;padding:16px;text-align:center}.compose-selected-client{align-items:center;background:#2c5f4e0f;border:2px solid #2c5f4e26;border-radius:8px;display:flex;justify-content:space-between;padding:10px 14px}.compose-selected-client span{color:var(--sage);font-size:.9rem;font-weight:600}.compose-selected-client button{background:none;border:none;color:#94a3b8;cursor:pointer;padding:2px}.compose-footer{border-top:1px solid #f1f5f9;padding:16px 24px 20px}.compose-note{color:#94a3b8;font-size:.72rem;margin:0 0 12px}.compose-actions{display:flex;gap:8px;justify-content:flex-end}.compose-cancel{background:none;border:1px solid #e8ecf1;border-radius:8px;color:#64748b;padding:10px 18px}.compose-cancel,.compose-send{cursor:pointer;font-family:var(--font-sans);font-size:.85rem}.compose-send{align-items:center;background:var(--sage);border:none;border-radius:8px;color:#fff;display:flex;font-weight:600;gap:6px;padding:10px 22px;transition:opacity .12s}.compose-send:disabled{cursor:not-allowed;opacity:.5}.compose-send:hover:not(:disabled){opacity:.9}.source-badge{align-items:center;display:inline-flex;font-weight:600;gap:3px}.channel-tag{border-radius:3px;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.3px;margin-left:6px;padding:1px 5px;text-transform:uppercase;vertical-align:middle}.channel-tag.sms{background:#3b82f626;color:#2563eb}.thread-message.admin .channel-tag.sms{background:#fff3;color:#ffffffd9}.channel-tag.email{background:#f59e0b1f;color:#b45309}.thread-message.admin .channel-tag.email{background:#fff3;color:#ffffffd9}.thread-message-media{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.media-link{align-items:center;background:#0000000f;border-radius:6px;color:#374151;display:inline-flex;font-size:12px;gap:4px;padding:4px 10px;text-decoration:none;transition:background .12s}.thread-message.admin .media-link{background:#ffffff26;color:#ffffffe6}.media-link:hover{background:#0000001a}.reply-channel-selector{align-items:center;display:flex;gap:6px;margin-bottom:10px}.reply-channel-label{margin-right:4px}.channel-btn,.reply-channel-label{color:#6b7280;font-size:12px;font-weight:600}.channel-btn{align-items:center;background:#fff;border:1.5px solid #e5e7eb;border-radius:6px;cursor:pointer;display:inline-flex;font-family:inherit;gap:4px;padding:5px 12px;transition:all .12s}.channel-btn:hover:not(:disabled){border-color:#2c5f4e;color:#2c5f4e}.channel-btn.active{background:#2c5f4e;border-color:#2c5f4e;color:#fff}.channel-btn.sms.active{background:#2563eb;border-color:#2563eb}.channel-btn.both.active{background:#7c3aed;border-color:#7c3aed}.channel-btn:disabled{cursor:not-allowed;opacity:.4}.sms-char-count{color:#9ca3af;font-size:11px;margin-top:4px;text-align:right}.send-btn.sms-send{background:#2563eb}.send-btn.sms-send:hover:not(:disabled){background:#1d4ed8}.compose-send.sms-send{background:#2563eb}.compose-send.sms-send:hover:not(:disabled){background:#1d4ed8}.compose-channel-selector{display:flex;gap:6px}.compose-channel-selector .channel-btn{flex:1 1;font-size:13px;justify-content:center;padding:8px 12px}.compose-client-option.disabled{cursor:not-allowed;opacity:.45}.compose-client-option.disabled:hover{background:none}.notification-toggle-btn{align-items:center;background:#fff;border:1.5px solid #e5e7eb;border-radius:8px;color:#9ca3af;cursor:pointer;display:flex;height:38px;justify-content:center;transition:all .15s;width:38px}.notification-toggle-btn.enabled,.notification-toggle-btn:hover{border-color:#2c5f4e;color:#2c5f4e}.notification-toggle-btn.enabled{background:#f0fdf4}.archive-toggle-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#64748b;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:7px 14px;transition:all .15s;white-space:nowrap}.archive-toggle-btn:hover{border-color:#94a3b8;color:#334155}.archive-toggle-btn.active{background:#fef3c7;border-color:#f59e0b;color:#92400e}.archive-count{background:#94a3b8;border-radius:10px;color:#fff;font-size:11px;font-weight:700;min-width:18px;padding:1px 6px;text-align:center}.archive-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#64748b;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:6px 14px;transition:all .15s;white-space:nowrap}.archive-btn:hover{background:#fffbeb;border-color:#f59e0b;color:#92400e}.archive-btn.unarchive{background:#f0fdf4;border-color:#86efac;color:#166534}.archive-btn.unarchive:hover{background:#dcfce7}.staff-messages-page{margin:0 auto;max-width:1600px;padding:24px}.staff-messages-page .page-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px}.staff-messages-page .page-header h1{align-items:center;color:var(--navy);display:flex;font-family:var(--font-heading);font-size:1.75rem;gap:12px;margin-bottom:4px}.staff-messages-page .page-header .subtitle{color:var(--gray-500);font-size:.9rem}.staff-messages-page .header-actions{display:flex;gap:12px}.stats-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px}.stats-row .stat-card{align-items:center;background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;gap:12px;min-width:140px;padding:16px 20px;transition:all .15s}.stats-row .stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stats-row .stat-card .stat-icon{color:var(--sage)}.stats-row .stat-card .stat-value{color:var(--navy);font-size:1.5rem;font-weight:700}.stats-row .stat-card .stat-label{color:var(--gray-500);font-size:.8rem}.stats-row .stat-card.warning{background:var(--gold-light)}.stats-row .stat-card.warning .stat-icon{color:var(--gold)}.messages-layout{grid-gap:24px;display:grid;gap:24px;grid-template-columns:400px 1fr;height:calc(100vh - 280px);min-height:500px}.messages-list-panel{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden}.list-toolbar{border-bottom:1px solid var(--gray-100);padding:16px}.search-box{background:var(--gray-50);border-radius:var(--radius-sm);margin-bottom:12px}.search-box svg{color:var(--gray-400)}.search-box input{background:none;flex:1 1}.search-box input:focus{outline:none}.filter-buttons{display:flex;flex-wrap:wrap;gap:8px}.filter-btn{align-items:center;background:none;border:1px solid var(--gray-200);border-radius:var(--radius-sm);color:var(--gray-600);cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:6px;padding:6px 12px;transition:all .15s}.filter-btn:hover{background:var(--gray-50);border-color:var(--gray-300)}.filter-btn.active{background:var(--sage-light);border-color:var(--sage);color:var(--sage)}.messages-list{flex:1 1;overflow-y:auto}.message-item{border-bottom:1px solid var(--gray-100);cursor:pointer;padding:16px;transition:all .15s}.message-item:hover{background:var(--gray-50)}.message-item.selected{background:var(--sage-light);border-left:3px solid var(--sage)}.message-item.pinned{background:var(--gold-light)}.message-item.pinned.selected{background:var(--sage-light)}.message-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.message-type{align-items:center;display:flex;gap:6px}.type-icon{color:var(--gray-500)}.type-icon.announcement{color:var(--gold)}.type-icon.direct{color:var(--sage)}.type-icon.schedule{color:var(--blue)}.pin-icon{color:var(--gold)}.message-time{color:var(--gray-400);font-size:.75rem}.message-subject{color:var(--navy);font-size:.9rem;font-weight:600;margin-bottom:6px}.message-meta{align-items:center;color:var(--gray-500);display:flex;font-size:.75rem;gap:12px}.message-meta .recipient{flex:1 1}.message-meta .ack-status,.message-meta .read-status{align-items:center;display:flex;gap:4px}.message-meta .ack-status.complete{color:var(--green)}.message-detail-panel{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden}.detail-header{border-bottom:1px solid var(--gray-100);justify-content:space-between;padding:20px 24px}.detail-header,.detail-title{align-items:flex-start;display:flex}.detail-title{gap:12px}.detail-title svg{color:var(--sage);margin-top:4px}.detail-title h2{color:var(--navy);font-family:var(--font-heading);font-size:1.25rem}.detail-actions{gap:8px}.btn-icon{border:1px solid var(--gray-200);transition:all .15s}.btn-icon:hover{background:var(--gray-50);color:var(--navy)}.btn-icon.active{background:var(--gold-light);border-color:var(--gold);color:var(--gold)}.btn-icon.danger:hover{border-color:var(--red)}.detail-meta{background:var(--gray-50);color:var(--gray-600);display:flex;flex-wrap:wrap;font-size:.85rem;gap:16px;padding:12px 24px}.meta-item{align-items:center;display:flex;gap:6px}.detail-body{flex:1 1;overflow-y:auto;padding:24px}.message-content p{color:var(--navy);line-height:1.7;margin-bottom:16px}.message-content p:last-child{margin-bottom:0}.ack-section,.read-section{border-top:1px solid var(--gray-100);padding:16px 24px}.ack-section h4,.read-section h4{align-items:center;color:var(--gray-600);display:flex;font-size:.9rem;gap:8px;margin-bottom:12px}.ack-list,.read-list{display:flex;flex-wrap:wrap;gap:8px}.ack-item,.read-item{align-items:center;background:var(--gray-100);border-radius:var(--radius-sm);display:flex;font-size:.8rem;gap:8px;padding:6px 12px}.ack-item.acknowledged,.read-item.read{background:var(--green-light);color:var(--green)}.ack-avatar,.read-avatar{align-items:center;background:var(--sage-light);border-radius:50%;color:var(--sage);display:flex;font-size:.7rem;font-weight:600;height:24px;justify-content:center;width:24px}.ack-check{color:var(--green)}.ack-pending{color:var(--gray-400)}.replies-section{border-top:1px solid var(--gray-100);padding:16px 24px}.replies-section h4{color:var(--gray-600);font-size:.9rem;margin-bottom:12px}.replies-list{display:flex;flex-direction:column;gap:12px}.reply-item{background:var(--gray-50);border-radius:var(--radius-sm);padding:12px}.reply-header{display:flex;font-size:.85rem;justify-content:space-between;margin-bottom:6px}.reply-header strong{color:var(--navy)}.reply-header span{color:var(--gray-400)}.reply-body{color:var(--gray-600);font-size:.9rem}.no-selection{align-items:center;color:var(--gray-400);display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:40px;text-align:center}.no-selection svg{margin-bottom:16px;opacity:.3}.no-selection h3{color:var(--gray-500);font-family:var(--font-heading);margin-bottom:8px}.empty-state{flex:1 1;padding:40px}.empty-state svg{color:var(--gray-300)}.empty-state h3{color:var(--navy);font-family:var(--font-heading);margin-bottom:8px}.empty-state p{color:var(--gray-500);margin-bottom:16px}.delete-confirm{padding:20px;text-align:center}.delete-confirm .warning-icon{color:var(--red);margin-bottom:16px}.delete-confirm p{color:var(--navy);margin-bottom:8px}.delete-confirm .message-preview{color:var(--gray-500);font-style:italic;margin-bottom:16px}.delete-confirm .warning-text{color:var(--red);font-size:.85rem}.confirm-actions{display:flex;gap:12px;justify-content:center;margin-top:24px}@media (max-width:1024px){.messages-layout{grid-template-columns:1fr;height:auto}.messages-list-panel{max-height:400px}.message-detail-panel{min-height:400px}}@media (max-width:640px){.stats-row{gap:8px}.stats-row .stat-card{flex:1 1;min-width:auto;padding:12px}.staff-messages-page .page-header{align-items:stretch;flex-direction:column}.staff-messages-page .header-actions{justify-content:stretch}.staff-messages-page .header-actions .btn{flex:1 1;justify-content:center}}.custom-estimate-page{margin:0 auto;max-width:1000px;padding:24px}.custom-estimate-page .page-header{align-items:center;display:flex;gap:16px;margin-bottom:24px}.custom-estimate-page .btn-back{align-items:center;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);color:var(--gray-600);cursor:pointer;display:flex;height:40px;justify-content:center;width:40px}.custom-estimate-page .btn-back:hover{background:var(--gray-50);color:var(--navy)}.custom-estimate-page h1{color:var(--navy);font-size:1.5rem;margin:0}.custom-estimate-page .header-subtitle{color:var(--gray-500);font-size:.9rem;margin:4px 0 0}.estimate-builder{display:flex;flex-direction:column;gap:24px}.builder-section{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.builder-section h2{align-items:center;border-bottom:1px solid var(--gray-100);color:var(--navy);display:flex;font-size:1.1rem;gap:10px;margin:0 0 20px;padding-bottom:12px}.builder-section h2 svg{color:var(--sage)}.client-selector .search-wrapper{position:relative}.client-selector input{border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.95rem;padding:12px 16px;width:100%}.client-selector input:focus{border-color:var(--sage);outline:none}.client-dropdown{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);left:0;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.client-option{background:none;border:none;border-bottom:1px solid var(--gray-100);cursor:pointer;padding:12px 16px;text-align:left;width:100%}.client-option:hover{background:var(--sage-light)}.client-option:last-child{border-bottom:none}.client-option.new-client{align-items:center;color:var(--sage);display:flex;font-weight:500;gap:8px}.client-name{color:var(--navy);font-weight:500}.business-name{color:var(--gray-500);font-weight:400}.client-meta{color:var(--gray-500);font-size:.85rem;margin-top:4px}.selected-client-card{align-items:center;background:var(--sage-light);border-radius:var(--radius-sm);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:16px;padding:16px}.selected-client-card .client-info{color:var(--navy)}.selected-client-card .client-details{color:var(--gray-600);display:flex;font-size:.85rem;gap:16px}.selected-client-card .client-details span{align-items:center;display:flex;gap:6px}.btn-change{background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-sm);color:var(--gray-600);cursor:pointer;font-size:.85rem;padding:6px 12px}.btn-change:hover{border-color:var(--sage);color:var(--sage)}.new-client-form{gap:16px}.form-field,.new-client-form{display:flex;flex-direction:column}.form-field{gap:6px}.form-field.flex-2{flex:2 1}.form-field label{color:var(--gray-600);font-size:.85rem;font-weight:500}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.95rem;padding:10px 12px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--sage);outline:none}.btn-link{background:none;border:none;color:var(--sage);cursor:pointer;font-size:.9rem;padding:0;text-align:left}.btn-link:hover{text-decoration:underline}.line-items-section .section-header{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.line-items-section .section-header h2{border:none;margin:0;padding:0}.section-actions{display:flex;gap:8px}.btn-preset{align-items:center;background:var(--gray-100);border:none;border-radius:var(--radius-sm);color:var(--gray-600);cursor:pointer;display:flex;font-size:.85rem;gap:6px;padding:8px 12px}.btn-preset:hover{background:var(--gray-200)}.btn-add{align-items:center;background:var(--sage);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:flex;font-size:.85rem;gap:6px;padding:8px 12px}.btn-add:hover{background:var(--sage-dark)}.presets-panel{background:var(--gray-50);border-radius:var(--radius-sm);margin-bottom:16px;overflow:hidden}.preset-category{border-bottom:1px solid var(--gray-200)}.preset-category:last-child{border-bottom:none}.category-header{align-items:center;background:none;border:none;color:var(--navy);cursor:pointer;display:flex;font-weight:500;justify-content:space-between;padding:12px 16px;width:100%}.category-header:hover{background:var(--gray-100)}.preset-items{background:var(--white);border-top:1px solid var(--gray-200)}.preset-item{align-items:center;background:none;border:none;border-bottom:1px solid var(--gray-100);cursor:pointer;display:flex;font-size:.9rem;justify-content:space-between;padding:10px 16px 10px 32px;width:100%}.preset-item:hover{background:var(--sage-light)}.preset-item:last-child{border-bottom:none}.preset-price{color:var(--gray-500);font-size:.85rem}.line-items-table{border:1px solid var(--gray-200);border-radius:var(--radius-sm);overflow:hidden}.table-header{background:var(--gray-50);color:var(--gray-600);font-size:.8rem;font-weight:600;text-transform:uppercase}.line-item-row,.table-header{grid-gap:8px;display:grid;gap:8px;grid-template-columns:2fr 100px 80px 120px 100px 70px;padding:12px 16px}.line-item-row{align-items:center;border-bottom:1px solid var(--gray-100)}.line-item-row:last-child{border-bottom:none}.line-item-row input,.line-item-row select{border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.9rem;padding:8px 10px;width:100%}.line-item-row input:focus,.line-item-row select:focus{border-color:var(--sage);outline:none}.col-price input,.col-qty input{text-align:right}.price-input{align-items:center;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);display:flex;overflow:hidden}.price-input .currency{background:var(--gray-50);color:var(--gray-500);font-size:.9rem;padding:8px}.price-input input{border:none;padding:8px;width:100%}.price-input input:focus{outline:none}.col-total{color:var(--navy);font-weight:600;text-align:right}.col-actions{display:flex;gap:4px;justify-content:flex-end}.btn-icon{background:var(--gray-100);border:none;color:var(--gray-500);height:28px;width:28px}.btn-icon:hover{background:var(--gray-200);color:var(--gray-700)}.btn-icon.danger:hover{background:var(--red-light);color:var(--red)}.btn-icon:disabled{cursor:not-allowed;opacity:.3}.discount-section{background:var(--gray-50);border-radius:var(--radius-sm);margin-top:20px;padding:16px}.discount-section h4{align-items:center;color:var(--gray-600);display:flex;font-size:.9rem;gap:8px;margin:0 0 12px}.discount-controls{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.discount-controls select{font-size:.9rem;padding:8px 12px}.discount-controls select,.discount-input{border:1px solid var(--gray-200);border-radius:var(--radius-sm)}.discount-input{align-items:center;background:var(--white);display:flex;overflow:hidden;width:120px}.discount-input span{background:var(--gray-100);color:var(--gray-500);padding:8px}.discount-input input{border:none;padding:8px;text-align:right;width:100%}.discount-reason-input{border:1px solid var(--gray-200);border-radius:var(--radius-sm);flex:1 1;min-width:150px;padding:8px 12px}.total-row.discount,.total-row.discount span:last-child{color:var(--red)}.discount-note{color:var(--gray-500);font-size:.85rem;font-weight:400}.form-row-3{grid-template-columns:1fr 1fr 1fr}.checkbox-field{margin-top:16px}.checkbox-field label{align-items:center;color:var(--gray-600);cursor:pointer;display:flex;font-size:.9rem;gap:8px}.checkbox-field input[type=checkbox]{cursor:pointer;height:18px;width:18px}.billing-address-section{background:var(--gray-50);border-radius:var(--radius-sm);margin-top:16px;padding:16px}.billing-address-section h4{color:var(--gray-600);font-size:.9rem;margin:0 0 12px}.save-success{color:var(--green);font-weight:500;margin-right:12px}.preview-modal{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;max-width:700px;overflow-y:auto;width:90%}.preview-header{align-items:center;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;padding:20px 24px}.preview-header h2{font-size:1.2rem;margin:0}.btn-close{background:none;border:none;color:var(--gray-500);cursor:pointer;padding:4px}.btn-close:hover{color:var(--gray-700)}.preview-content{padding:24px}.preview-company{border-bottom:2px solid var(--sage);margin-bottom:24px;padding-bottom:16px;text-align:center}.preview-company h1{color:var(--sage);font-size:1.5rem;margin:0}.preview-company p{color:var(--gold);font-style:italic;margin:4px 0 0}.preview-title{margin-bottom:20px}.preview-title h2{color:var(--navy);margin:0 0 8px}.preview-title p{align-items:center;color:var(--gray-600);display:flex;font-size:.9rem;gap:6px;margin:4px 0}.preview-address{background:var(--gray-50);border-radius:var(--radius-sm);margin-bottom:20px;padding:16px}.preview-address h4{align-items:center;color:var(--gray-600);display:flex;font-size:.85rem;gap:6px;margin:0 0 8px}.preview-address p{color:var(--gray-700);margin:4px 0}.preview-table{border-collapse:collapse;margin-bottom:20px;width:100%}.preview-table td,.preview-table th{border-bottom:1px solid var(--gray-200);padding:12px;text-align:left}.preview-table th{background:var(--gray-50);color:var(--gray-600);font-size:.8rem;text-transform:uppercase}.preview-table td:last-child,.preview-table th:last-child{text-align:right}.preview-table tfoot tr{font-weight:500}.preview-table .subtotal-row td{border-top:2px solid var(--gray-300)}.preview-table .discount-row td{color:var(--red)}.preview-table .total-row td{background:var(--sage-light);color:var(--sage);font-size:1.1rem;font-weight:600}.preview-notes{background:var(--gray-50);border-radius:var(--radius-sm);margin-bottom:16px;padding:16px}.preview-notes h4{color:var(--gray-600);font-size:.85rem;margin:0 0 8px}.preview-notes p{color:var(--gray-700);margin:0;white-space:pre-wrap}.preview-validity{color:var(--gray-500);font-size:.85rem;text-align:center}.totals-section{border-top:2px solid var(--gray-200);margin-top:16px;padding-top:16px}.total-row{display:flex;font-size:.95rem;gap:32px;justify-content:flex-end;padding:8px 16px}.total-row span:first-child{color:var(--gray-600)}.total-row span:last-child{color:var(--navy);font-weight:600;min-width:100px;text-align:right}.total-row.grand-total{background:var(--sage-light);border-radius:var(--radius-sm);font-size:1.1rem;margin-top:8px}.total-row.grand-total span:last-child{color:var(--sage)}.builder-section textarea{border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.95rem;padding:12px;resize:vertical;width:100%}.builder-section textarea:focus{border-color:var(--sage);outline:none}.builder-actions{justify-content:flex-end;padding:24px 0}.builder-actions .btn{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-weight:500;gap:8px;padding:12px 20px}.builder-actions .btn-secondary{background:var(--white);border:1px solid var(--gray-300);color:var(--gray-600)}.builder-actions .btn-secondary:hover{border-color:var(--sage);color:var(--sage)}.builder-actions .btn-primary{background:var(--sage);border:none;color:#fff}.builder-actions .btn-primary:hover{background:var(--sage-dark)}.builder-actions .btn-primary:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.table-header{display:none}.line-item-row{display:flex;flex-direction:column;gap:12px;padding:16px}.line-item-row>div{width:100%}.col-description input{font-size:1rem}.line-item-row .col-actions{justify-content:flex-start}.form-row{grid-template-columns:1fr}.builder-actions{flex-direction:column}.builder-actions .btn{justify-content:center;width:100%}}.builder-actions{flex-wrap:wrap;justify-content:space-between}.actions-right,.builder-actions{align-items:center;display:flex;gap:12px}.btn-danger-outline{align-items:center;border:1px solid #dc2626;border-radius:var(--radius-sm);color:#dc2626;cursor:pointer;display:flex;font-weight:500;gap:6px;padding:10px 16px;transition:all .2s ease}.btn-danger-outline:hover{background:#fee2e2}.delete-modal-container{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:500px;overflow:hidden;width:90%}.delete-modal-header{align-items:center;background:#fee2e2;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;padding:20px 24px}.delete-modal-header h2{align-items:center;color:#991b1b;display:flex;font-size:1.2rem;gap:8px;margin:0}.delete-modal-content{padding:24px}.delete-warning{background:#fef3c7;border-radius:var(--radius-sm);color:#92400e;display:flex;gap:12px;margin-bottom:16px;padding:16px}.delete-warning svg{flex-shrink:0;margin-top:2px}.delete-warning strong{display:block;margin-bottom:4px}.delete-warning p{font-size:.9rem;margin:0;opacity:.9}.delete-warning.critical{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.delete-summary{background:var(--gray-50);border-radius:var(--radius-sm);margin-bottom:16px;padding:16px}.delete-summary p{color:var(--gray-600);font-size:.9rem;margin:0 0 8px}.delete-summary p:last-child{margin-bottom:0}.delete-summary strong{color:var(--gray-700)}.delete-confirm-checkbox{align-items:flex-start;background:#fef3c7;border:2px solid #0000;border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:10px;margin-bottom:20px;padding:16px;transition:all .2s ease}.delete-confirm-checkbox:hover{border-color:#f59e0b}.delete-confirm-checkbox input[type=checkbox]{accent-color:#dc2626;cursor:pointer;height:20px;margin-top:2px;width:20px}.delete-confirm-checkbox span{color:#92400e;font-size:.95rem;font-weight:500}.delete-modal-actions{display:flex;gap:12px;justify-content:flex-end}.btn-danger{align-items:center;background:#dc2626;border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:flex;font-weight:500;gap:6px;padding:10px 20px}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-danger:disabled{background:#fca5a5;cursor:not-allowed;opacity:.7}.spinning{animation:spin 1s linear infinite}.on-site-appointments{--forest:#2c5f4e;--forest-dark:#234a3d;--forest-light:#3d7a66;--sage:#2c5f4e;--sage-light:#e8f0ed;--sage-pale:#f0f5f3;--gold:#b8926a;--gold-dark:#9a7854;--gold-light:#d4b896;--gold-pale:#f5f0e8;--cream:#f8f7f5;--cream-dark:#e8e6e3;--white:#fff;--charcoal:#1a2634;--text-dark:#1a2634;--text-muted:#6b7280;--text-light:#9ca3af;--success:#16a34a;--success-light:#f0fdf4;--warning:#f59e0b;--warning-light:#fef3c7;--error:#dc2626;--error-light:#fef2f2;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;background:var(--cream);min-height:100vh;padding:24px}.loading-state{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;justify-content:center;padding:80px 20px}.loading-state svg.spinning{animation:spin 1s linear infinite;color:var(--forest);margin-bottom:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.page-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.header-title h1{color:var(--charcoal);font-family:Playfair Display,serif;font-size:1.75rem;font-weight:600;margin:0 0 4px}.header-title p{color:var(--text-muted);font-size:.9rem;margin:0}.btn{font-family:Montserrat,sans-serif;font-weight:600;padding:10px 18px;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,var(--forest) 0,var(--forest-light) 100%);box-shadow:0 4px 12px #2c5f4e40}.btn-primary:hover{box-shadow:0 6px 16px #2c5f4e59}.btn-primary:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-secondary:hover{border-color:var(--forest);color:var(--forest)}.btn-danger-outline{background:#0000;border:1px solid var(--error-light);color:var(--error)}.btn-danger-outline:hover{background:var(--error-light)}.btn-icon{align-items:center;background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.btn-icon:hover{background:var(--sage-light);border-color:var(--forest);color:var(--forest)}.filters-bar{flex-wrap:wrap;gap:16px;margin-bottom:20px}.filters-bar,.search-box{align-items:center;display:flex}.search-box{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);flex:1 1;gap:10px;max-width:400px;min-width:250px;padding:10px 14px}.search-box svg{color:var(--text-muted);flex-shrink:0}.search-box input{background:#0000;border:none;font-family:inherit;font-size:.9rem;outline:none;width:100%}.filter-group{align-items:center;display:flex;gap:12px}.status-filter{background:var(--white);cursor:pointer;font-family:inherit;font-size:.9rem;padding:10px 14px}.status-filter,.view-toggle{border:1px solid var(--cream-dark);border-radius:var(--radius-md)}.view-toggle{display:flex;overflow:hidden}.view-toggle button{background:var(--white);border:none;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:500;padding:10px 16px;transition:all .2s ease}.view-toggle button:not(:last-child){border-right:1px solid var(--cream-dark)}.view-toggle button.active{background:var(--forest);color:#fff}.view-toggle button:hover:not(.active){background:var(--sage-light);color:var(--forest)}.calendar-nav{align-items:center;border:1px solid var(--cream-dark);border-radius:var(--radius-md);display:flex;gap:16px;margin-bottom:20px;padding:12px 16px}.calendar-nav,.nav-btn{background:var(--white)}.nav-btn{border:1px solid var(--cream-dark);border-radius:var(--radius-sm);color:var(--text-dark);height:36px;transition:all .2s ease;width:36px}.nav-btn:hover{background:var(--sage-light);border-color:var(--forest);color:var(--forest)}.current-range{color:var(--charcoal);font-family:Playfair Display,serif;font-size:1.1rem;font-weight:600}.today-btn{background:#0000;border:1px solid var(--forest);border-radius:var(--radius-sm);color:var(--forest);font-family:inherit;font-size:.85rem;transition:all .2s ease}.today-btn:hover{background:var(--forest)}.week-view{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(7,1fr);min-height:400px}.day-column{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);overflow:hidden}.day-column.today{border-color:var(--forest);box-shadow:0 0 0 1px var(--forest)}.day-header{background:var(--cream);border-bottom:1px solid var(--cream-dark);text-align:center}.day-column.today .day-header{background:var(--sage-light)}.day-name{color:var(--text-muted);display:block;letter-spacing:.5px}.day-number{color:var(--charcoal);display:block;font-family:Playfair Display,serif;font-size:1.25rem;font-weight:600}.day-column.today .day-number{color:var(--forest)}.day-appointments{display:flex;flex-direction:column;gap:8px;min-height:200px;padding:8px}.no-appointments{color:var(--text-light);font-size:.8rem;padding:20px 8px;text-align:center}.appointment-card{background:var(--white);border:1px solid var(--cream-dark);border-left:4px solid var(--gold);border-radius:var(--radius-sm);cursor:pointer;padding:10px;transition:all .2s ease}.appointment-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.appointment-card.compact{padding:8px}.apt-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.apt-time{color:var(--charcoal);font-size:.85rem;font-weight:600}.apt-status{align-items:center;border-radius:20px;display:inline-flex;font-size:.7rem;font-weight:600;gap:4px;padding:3px 8px}.apt-address,.apt-client,.apt-phone{align-items:center;color:var(--text-dark);display:flex;font-size:.8rem;gap:6px;margin-bottom:4px}.apt-client{font-weight:500}.apt-address,.apt-phone{color:var(--text-muted);font-size:.75rem}.apt-address svg,.apt-phone svg{flex-shrink:0}.appointment-card.compact .apt-address,.appointment-card.compact .apt-phone{display:none}.day-view{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);overflow:hidden}.time-slot{border-bottom:1px solid var(--cream-dark);display:flex;min-height:60px}.time-slot:last-child{border-bottom:none}.slot-time{background:var(--cream);border-right:1px solid var(--cream-dark);color:var(--text-muted);flex-shrink:0;font-size:.85rem;font-weight:500;padding:12px;width:100px}.slot-appointments{display:flex;flex:1 1;flex-direction:column;gap:8px;padding:8px}.list-view{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-md);overflow:hidden}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.empty-state svg{color:var(--text-light);margin-bottom:16px}.empty-state h3{color:var(--charcoal);font-family:Playfair Display,serif;margin:0 0 8px}.empty-state p{color:var(--text-muted);margin:0 0 20px}.appointments-list{display:flex;flex-direction:column}.list-item{align-items:center;border-bottom:1px solid var(--cream-dark);cursor:pointer;display:flex;gap:16px;padding:16px 20px;transition:background .2s ease}.list-item:last-child{border-bottom:none}.list-item:hover{background:var(--sage-pale)}.list-date{align-items:center;background:var(--gold-pale);border-radius:var(--radius-sm);display:flex;flex-direction:column;flex-shrink:0;height:50px;justify-content:center;width:50px}.date-day{color:var(--gold-dark);font-family:Playfair Display,serif;font-size:1.25rem;font-weight:600;line-height:1}.date-month{color:var(--gold);font-size:.7rem;font-weight:600;text-transform:uppercase}.list-time{color:var(--charcoal);flex-shrink:0;font-weight:600;width:80px}.list-info{flex:1 1;min-width:0}.list-client{color:var(--charcoal);display:block;font-weight:600;margin-bottom:2px}.list-address{color:var(--text-muted);display:block;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-status{border-radius:20px;flex-shrink:0;font-size:.8rem;font-weight:600;padding:6px 12px}.list-actions{display:flex;gap:8px}.appointment-form{padding:0}.form-section{border-bottom:1px solid var(--cream-dark);padding:20px 0}.form-section:first-child{padding-top:0}.form-section:last-of-type{border-bottom:none}.form-section h3{align-items:center;color:var(--charcoal);display:flex;font-size:1rem;font-weight:600;gap:8px;margin:0 0 16px}.form-section h3 svg{color:var(--forest)}.section-note{color:var(--text-muted);font-size:.85rem;margin:-8px 0 16px}.toggle-row{margin-bottom:16px}.toggle-label{align-items:center;color:var(--text-dark);cursor:pointer;display:inline-flex;font-size:.9rem;gap:10px}.toggle-label input[type=checkbox]{accent-color:var(--forest);height:18px;width:18px}.form-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.full-width{grid-column:1/-1}.form-group.half{grid-column:span 1}.form-group label{color:var(--text-dark);font-size:.85rem;font-weight:600}.form-group input,.form-group select,.form-group textarea{background:var(--white);border:1px solid var(--cream-dark);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;padding:10px 12px;transition:all .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--forest);box-shadow:0 0 0 3px var(--sage-light);outline:none}.form-group textarea{min-height:70px;resize:vertical}.form-hint{color:var(--text-muted);font-size:.8rem;font-style:italic}.reminder-channels{display:flex;gap:20px;margin-bottom:16px}.channel-toggle{align-items:center;background:var(--cream);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;gap:8px;padding:10px 16px;transition:all .2s ease}.channel-toggle:has(input:checked){background:var(--sage-light);color:var(--forest)}.channel-toggle input{display:none}.channel-toggle svg{height:18px;width:18px}.reminder-options{display:flex;flex-direction:column;gap:10px}.reminder-option{align-items:center;cursor:pointer;display:flex;font-size:.9rem;gap:10px}.reminder-option input[type=checkbox]{accent-color:var(--forest);height:18px;width:18px}.form-actions{border-top:1px solid var(--cream-dark);display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:20px}.appointment-detail{padding:0}.status-banner{align-items:center;display:flex;font-size:1rem;font-weight:600;gap:10px;justify-content:center;margin:-20px -24px 20px;padding:16px}.detail-section{border-bottom:1px solid var(--cream-dark);padding:16px 0}.detail-section:last-of-type{border-bottom:none}.detail-section h4{color:var(--text-muted);font-size:.75rem;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.detail-row{align-items:flex-start;color:var(--text-dark);display:flex;font-size:.95rem;gap:12px;margin-bottom:10px}.detail-row:last-child{margin-bottom:0}.detail-row svg{color:var(--forest);flex-shrink:0;margin-top:2px}.detail-row>div{display:flex;flex-direction:column}.detail-row strong{color:var(--charcoal)}.detail-row span{color:var(--text-muted);font-size:.85rem}.detail-row.clickable a{align-items:center;color:var(--forest);display:inline-flex;gap:6px;text-decoration:none}.detail-row.clickable a:hover{text-decoration:underline}.reminders-list{display:flex;flex-direction:column;gap:8px}.reminder-item{align-items:center;background:var(--cream);border-radius:var(--radius-sm);display:flex;font-size:.85rem;gap:10px;padding:10px 12px}.reminder-item.sent{background:var(--success-light)}.reminder-item svg{color:var(--text-muted);height:14px;width:14px}.reminder-item.sent svg{color:var(--success)}.reminder-status{align-items:center;color:var(--text-muted);display:inline-flex;font-size:.75rem;gap:4px;margin-left:auto}.reminder-item.sent .reminder-status{color:var(--success)}.note-block{background:var(--cream);border-radius:var(--radius-sm);margin-bottom:10px;padding:12px}.note-block:last-child{margin-bottom:0}.note-block.internal{background:var(--warning-light)}.note-label{color:var(--text-muted);display:block;font-size:.7rem;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.note-block p{color:var(--text-dark);font-size:.9rem;margin:0;white-space:pre-wrap}.status-buttons{display:flex;flex-wrap:wrap;gap:8px}.status-btn{border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:600;padding:8px 14px;transition:all .2s ease}.status-btn:hover{transform:scale(1.02)}.status-btn.active{box-shadow:0 2px 8px #00000026}.detail-actions{border-top:1px solid var(--cream-dark);display:flex;gap:12px;justify-content:space-between;margin-top:20px;padding-top:20px}@media (max-width:1024px){.week-view{grid-template-columns:repeat(4,1fr)}.day-column:nth-child(n+5){display:none}}@media (max-width:768px){.on-site-appointments{padding:16px}.page-header{gap:16px}.filters-bar,.page-header{align-items:stretch;flex-direction:column}.search-box{max-width:none}.filter-group{justify-content:space-between}.week-view{display:none}.calendar-nav{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.detail-actions{flex-direction:column}.detail-actions .btn{justify-content:center}}.time-card-report{margin:0 auto;max-width:1400px;padding:24px}.report-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.report-header h1{align-items:center;color:var(--navy);display:flex;font-size:1.75rem;gap:12px;margin:0}.report-header h1 svg{color:var(--sage)}.report-header p{color:#64748b;margin:4px 0 0}.header-actions{display:flex;gap:10px}.week-nav{border-radius:12px;box-shadow:0 2px 8px #0000000f;gap:12px;margin-bottom:24px;padding:12px 16px}.nav-btn,.week-nav{align-items:center;background:#fff;display:flex}.nav-btn{border:1px solid #e2e8f0;border-radius:10px;color:#64748b;cursor:pointer;height:40px;justify-content:center;width:40px}.nav-btn:hover{background:#f8fafc;color:var(--navy)}.week-display{align-items:center;color:var(--navy);display:flex;font-size:1.1rem;font-weight:600;gap:10px}.today-btn,.week-display svg{color:var(--sage)}.today-btn{background:var(--sage-light);border:1px solid var(--sage);border-radius:8px;cursor:pointer;font-weight:600;margin-left:auto;padding:8px 16px}.today-btn:hover{background:var(--sage);color:#fff}.summary-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:32px}.summary-card{background:#fff;box-shadow:0 2px 8px #0000000f;gap:16px;padding:20px}.summary-card,.summary-card .card-icon{align-items:center;border-radius:12px;display:flex}.summary-card .card-icon{height:56px;justify-content:center;width:56px}.summary-card .card-icon.hours{background:#dbeafe;color:#2563eb}.summary-card .card-icon.labor{background:#fef3c7;color:#d97706}.summary-card .card-icon.revenue{background:#d1fae5;color:#059669}.summary-card .card-icon.profit{background:#f0fdf4;color:#16a34a}.summary-card.negative .card-icon.profit{background:#fef2f2;color:#dc2626}.summary-card .card-content{display:flex;flex-direction:column}.summary-card .card-value{color:var(--navy);font-size:1.5rem;font-weight:700}.summary-card .card-label{color:#64748b;font-size:.85rem}.section{margin-bottom:32px}.section h2{align-items:center;color:var(--navy);display:flex;font-size:1.25rem;gap:10px;margin:0 0 16px}.section h2 svg{color:var(--sage)}.empty-state,.loading-state{align-items:center;background:#fff;border-radius:12px;color:#94a3b8;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.empty-state svg{margin-bottom:12px;opacity:.5}.employee-cards{display:flex;flex-direction:column;gap:16px}.employee-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;overflow:hidden}.employee-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:16px 20px}.employee-avatar{align-items:center;background:var(--sage);border-radius:12px;color:#fff;display:flex;font-size:1rem;font-weight:700;height:48px;justify-content:center;width:48px}.employee-info{flex:1 1}.employee-info h3{color:var(--navy);font-size:1.1rem;margin:0}.employee-info .rate{color:#64748b;font-size:.85rem}.employee-totals{text-align:right}.employee-totals .total-hours{color:var(--navy);display:block;font-size:1.25rem;font-weight:700}.employee-totals .total-pay{color:var(--sage);display:block;font-size:.9rem;font-weight:600}.time-entries{padding:12px 20px}.time-entry{grid-gap:16px;gap:16px;grid-template-columns:120px 1fr 80px 40px}.time-entry:last-child{border-bottom:none}.entry-date{color:var(--navy);font-size:.9rem;font-weight:600}.entry-times{display:flex;gap:24px}.entry-times span{align-items:center;display:flex;font-size:.85rem;gap:6px}.clock-in svg{color:#16a34a}.clock-out svg{color:#dc2626}.clock-out:has(.still-in){color:#d97706}.entry-hours{color:var(--navy);font-weight:600;text-align:right}.entry-location{color:#94a3b8;cursor:help}.entry-location:hover{color:var(--sage)}.profitability-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(7,1fr)}.day-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;overflow:hidden}.day-card.today{border:2px solid var(--sage)}.day-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;flex-direction:column;padding:12px}.day-card.today .day-header{background:var(--sage-light)}.day-name{color:#64748b;font-size:.75rem;font-weight:600;text-transform:uppercase}.day-date{color:var(--navy);font-size:.9rem;font-weight:700}.no-routes{color:#94a3b8;font-size:.85rem;padding:20px;text-align:center}.route-list{display:flex;flex-direction:column;gap:10px;padding:12px}.route-profit-card{background:#f8fafc;border-radius:8px;padding:10px}.route-profit-card .route-name{color:var(--navy);font-size:.75rem;font-weight:600;margin-bottom:4px;text-transform:uppercase}.route-team-info{align-items:center;color:#64748b;display:flex;font-size:.7rem;gap:4px;line-height:1.4;margin-bottom:8px}.profit-details{font-size:.75rem}.profit-row{display:flex;justify-content:space-between;padding:2px 0}.profit-row span{color:#64748b}.profit-row .value{color:var(--navy);font-weight:600}.profit-row .value.cost{color:#dc2626}.profit-row.total{border-top:1px solid #e2e8f0;margin-top:4px;padding-top:4px}.profit-row.total.positive .value{color:#16a34a}.profit-row.total.negative .value{color:#dc2626}.margin-bar{background:#e2e8f0;border-radius:3px;height:6px;margin:6px 0 4px;overflow:hidden}.margin-fill{border-radius:3px;height:100%;transition:width .3s}.margin-fill.good{background:#16a34a}.margin-fill.ok{background:#d97706}.margin-fill.poor{background:#dc2626}.margin-text{color:#64748b;display:block;font-size:.7rem;text-align:center}.profit-row.per-person{border-top:1px dashed #e2e8f0;font-weight:600;margin-top:2px;padding-top:2px}.profit-row.per-person span:first-child{align-items:center;color:#64748b;display:flex;font-size:.7rem;gap:2px}.profit-row.per-person.positive .value{color:#16a34a;font-weight:700}.profit-row.per-person.negative .value{color:#dc2626;font-weight:700}.route-team-info .helper-tag{background:#dbeafe;border-radius:4px;color:#2563eb;display:inline-block;font-size:.65rem;font-weight:600;margin-left:4px;padding:1px 5px;white-space:nowrap}@media (max-width:1200px){.profitability-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:900px){.profitability-grid,.summary-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.time-card-report{padding:16px}.report-header{flex-direction:column;gap:16px}.profitability-grid,.summary-cards,.time-entry{grid-template-columns:1fr}.time-entry{gap:8px}}.quick-clock-panel{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:24px;padding:20px}.quick-clock-panel h3{align-items:center;color:var(--navy);display:flex;font-size:1rem;gap:8px;margin:0 0 16px}.quick-clock-panel h3 svg{color:var(--sage)}.quick-clock-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.quick-clock-card{align-items:center;background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;display:flex;gap:12px;padding:12px;transition:all .2s}.quick-clock-card.clocked-in{background:#f0fdf4;border-color:#86efac}.quick-clock-card .emp-avatar{align-items:center;background:var(--sage);border-radius:8px;color:#fff;display:flex;font-size:.8rem;font-weight:600;height:36px;justify-content:center;width:36px}.quick-clock-card .emp-info{display:flex;flex:1 1;flex-direction:column}.quick-clock-card .emp-name{color:var(--navy);font-size:.9rem;font-weight:600}.quick-clock-card .clock-time{color:#16a34a;font-size:.75rem}.clock-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:.8rem;font-weight:600;gap:4px;padding:6px 12px;transition:all .2s}.clock-btn.in{background:#d1fae5;color:#059669}.clock-btn.in:hover:not(:disabled){background:#059669;color:#fff}.clock-btn.out{background:#fef2f2;color:#dc2626}.clock-btn.out:hover{background:#dc2626;color:#fff}.clock-btn:disabled{cursor:not-allowed;opacity:.4}.time-entry{grid-gap:12px;align-items:center;border-bottom:1px solid #f1f5f9;display:grid;gap:12px;grid-template-columns:140px 1fr 80px 40px 60px;padding:10px 0}.time-entry.edited{background:#fffbeb;border-radius:6px;margin:0 -12px;padding:10px 12px}.entry-badge{border-radius:4px;display:inline-block;font-size:.65rem;font-weight:600;margin-left:6px;padding:2px 6px}.entry-badge.manual{background:#dbeafe;color:#2563eb}.entry-badge.manager{background:#fef3c7;color:#d97706}.entry-actions{display:flex;gap:4px}.action-btn{align-items:center;background:#f1f5f9;border:none;border-radius:6px;color:#64748b;cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .2s;width:28px}.action-btn:hover{background:#e2e8f0}.action-btn.edit:hover{background:var(--sage-light);color:var(--sage)}.action-btn.history{background:#fef9c3;color:#d97706}.add-modal,.clock-modal,.edit-modal{max-width:450px}.clock-employee-info{padding:20px;text-align:center}.emp-avatar.large{align-items:center;background:var(--sage);border-radius:16px;color:#fff;display:flex;font-size:1.5rem;font-weight:700;height:64px;justify-content:center;margin:0 auto 12px;width:64px}.clock-employee-info h3{color:var(--navy);margin:0}.clock-summary{background:#f8fafc;border-radius:10px;margin-bottom:16px;padding:16px}.clock-summary p{color:#64748b;margin:4px 0}.clock-warning,.manual-note{align-items:center;background:#fef9c3;border-radius:8px;color:#92400e;display:flex;font-size:.85rem;gap:8px;padding:12px}.edit-info{background:#f8fafc;border-radius:8px;margin-bottom:16px;padding:12px}.edit-info p{color:var(--navy);margin:0}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.hours-preview{background:#f0fdf4;border-radius:8px;color:#16a34a;margin-bottom:16px;padding:12px;text-align:center}.edit-history{background:#f8fafc;border-radius:10px;margin-top:20px;padding:16px}.edit-history h4{align-items:center;color:#64748b;display:flex;font-size:.85rem;gap:6px;margin:0 0 12px}.history-entry{border-bottom:1px solid #e2e8f0;font-size:.8rem;padding:8px 0}.history-entry:last-child{border-bottom:none}.history-date{color:var(--navy);font-weight:500}.history-by{color:#94a3b8;margin-left:8px}.history-reason{color:#64748b;display:block;font-style:italic;margin-top:4px}@media (max-width:768px){.time-entry{gap:8px}.quick-clock-grid,.time-entry{grid-template-columns:1fr}}.todos-page{display:flex;flex-direction:column;gap:16px;max-width:900px}.todos-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:4px}.todos-header h1{color:var(--navy);font-family:var(--font-heading);font-size:1.65rem;font-weight:600;margin:0 0 2px}.todos-subtitle{color:var(--text-muted);font-size:.85rem;margin:0}.todos-urgent{color:var(--red);font-weight:600}.todos-add-btn{align-items:center;background:var(--sage);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:var(--font-sans);font-size:.85rem;font-weight:600;gap:6px;padding:10px 20px;transition:opacity .12s}.todos-add-btn:hover{opacity:.9}.todos-add-card{background:var(--white);border:2px solid var(--sage);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px}.todos-add-row{margin-bottom:12px}.todos-add-input{border:2px solid var(--cream-dark);border-radius:8px;font-family:var(--font-sans);font-size:.95rem;outline:none;padding:12px 14px;transition:border-color .15s;width:100%}.todos-add-input:focus{border-color:var(--sage)}.todos-add-controls{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.todos-add-selects{display:flex;flex-wrap:wrap;gap:8px}.todos-add-selects select,.todos-date-input{background:var(--white);border:1px solid var(--cream-dark);border-radius:6px;font-family:var(--font-sans);font-size:.82rem;padding:8px 12px}.todos-add-actions{display:flex;gap:8px}.todos-save-btn{background:var(--sage);border:none;border-radius:6px;color:#fff;font-weight:600;padding:8px 20px}.todos-cancel-btn,.todos-save-btn{cursor:pointer;font-family:var(--font-sans);font-size:.82rem}.todos-cancel-btn{background:none;border:1px solid var(--cream-dark);border-radius:6px;color:var(--text-muted);padding:8px 16px}.todos-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.todos-search-wrap{align-items:center;background:var(--white);border:1px solid var(--cream-dark);border-radius:8px;display:flex;gap:8px;min-width:200px;padding:0 12px}.todos-search-wrap svg{color:var(--text-muted);flex-shrink:0}.todos-search-wrap input{background:#0000;border:none;flex:1 1;font-family:var(--font-sans);font-size:.82rem;outline:none;padding:8px 0}.todos-category-pills,.todos-filter-pills{display:flex;gap:5px}.todos-pill{background:#f1f5f9;border:none;border-radius:6px;color:#64748b;cursor:pointer;font-family:var(--font-sans);font-size:.75rem;font-weight:600;padding:6px 14px;text-transform:capitalize;transition:all .12s;white-space:nowrap}.todos-pill.sm{font-size:.7rem;padding:5px 10px}.todos-pill.active{background:var(--sage);color:#fff}.todos-list{display:flex;flex-direction:column;gap:4px}.todos-empty{background:var(--white);border-radius:var(--radius-lg);color:var(--text-muted);font-size:.9rem;padding:40px 0;text-align:center}.todos-item{align-items:flex-start;background:var(--white);border-radius:10px;box-shadow:0 1px 2px #0000000a;display:flex;gap:12px;padding:14px 16px;transition:all .12s}.todos-item:hover{box-shadow:var(--shadow-sm)}.todos-item.done{opacity:.5}.todos-check{align-items:center;border:2px solid var(--gold);border-radius:5px;cursor:pointer;display:flex;flex-shrink:0;height:22px;justify-content:center;margin-top:1px;transition:all .12s;width:22px}.todos-check:hover{opacity:.7}.todos-check.checked{background:var(--green);border:none;color:#fff}.todos-item-body{flex:1 1;min-width:0}.todos-item-text{color:var(--navy);cursor:pointer;font-size:.9rem;line-height:1.4;margin-bottom:4px}.todos-item.done .todos-item-text{color:var(--text-muted);text-decoration:line-through}.todos-item-meta{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.todos-cat-tag{color:var(--text-muted);font-size:.68rem;font-weight:500}.todos-due-tag{color:var(--gold);font-weight:500}.todos-assignee-tag,.todos-due-tag{align-items:center;display:flex;font-size:.68rem;gap:3px}.todos-assignee-tag{color:#2c5f4e;color:var(--sage,#2c5f4e);font-weight:600}.todos-created{color:#c0c7d0;font-size:.65rem}.todos-priority-tag{border-radius:4px;flex-shrink:0;font-size:.62rem;font-weight:600;margin-top:2px;padding:3px 8px;text-transform:uppercase}.todos-item-actions{display:flex;gap:2px;opacity:0;transition:opacity .12s}.todos-item:hover .todos-item-actions{opacity:1}.todos-icon-btn{background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;display:flex;padding:4px;transition:all .12s}.todos-icon-btn:hover{background:var(--cream);color:var(--navy)}.todos-icon-btn.danger:hover{background:#ef44440f;color:var(--red)}.todos-icon-btn.save{color:var(--sage)}.todos-edit-row{align-items:center;display:flex;gap:6px}.todos-edit-input{border:2px solid var(--sage);border-radius:6px;flex:1 1;font-family:var(--font-sans);font-size:.9rem;outline:none;padding:6px 10px}.todos-footer{display:flex;justify-content:center;padding-top:8px}.todos-clear-btn{align-items:center;background:none;border:1px solid var(--cream-dark);border-radius:8px;color:var(--text-muted);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:.78rem;gap:6px;padding:8px 16px;transition:all .12s}.todos-clear-btn:hover{background:#ef44440a;border-color:var(--red);color:var(--red)}@media (max-width:768px){.todos-header{flex-direction:column;gap:10px}.todos-toolbar{align-items:stretch;flex-direction:column}.todos-search-wrap{min-width:auto}.todos-add-controls{flex-direction:column}.todos-item-actions{opacity:1}.todos-edit-selects{flex-direction:column}}.todos-assignee-filter{align-items:center;color:#2c5f4e;color:var(--sage,#2c5f4e);display:flex;gap:6px}.todos-assignee-filter select{background:#fff;border:2px solid #e8e4df;border:2px solid var(--cream-dark,#e8e4df);border-radius:8px;color:#1a2634;color:var(--navy,#1a2634);cursor:pointer;font-family:sans-serif;font-family:var(--font-sans,sans-serif);font-size:.78rem;outline:none;padding:5px 10px}.todos-assignee-filter select:focus,.todos-item.editing{border-color:#2c5f4e;border-color:var(--sage,#2c5f4e)}.todos-item.editing{background:#fff;box-shadow:0 2px 12px #2c5f4e14;padding:14px 16px}.todos-edit-form{display:flex;flex-direction:column;gap:10px;width:100%}.todos-edit-selects{display:flex;flex-wrap:wrap;gap:8px}.todos-edit-selects .todos-date-input,.todos-edit-selects select{background:#fff;border:2px solid #e8e4df;border:2px solid var(--cream-dark,#e8e4df);border-radius:8px;color:#1a2634;color:var(--navy,#1a2634);font-family:sans-serif;font-family:var(--font-sans,sans-serif);font-size:.78rem;outline:none;padding:6px 10px}.todos-edit-selects .todos-date-input:focus,.todos-edit-selects select:focus{border-color:#2c5f4e;border-color:var(--sage,#2c5f4e)}.todos-edit-actions{display:flex;gap:8px;justify-content:flex-end}:root{--sage:#2c5f4e;--sage-light:#3a7d66;--sage-pale:#2c5f4e14;--gold:#b8926a;--gold-pale:#b8926a26;--navy:#1a2634;--teal:#3d6b6b;--cream:#f8f7f5;--cream-dark:#e8e6e3;--white:#fff;--green:#22c55e;--green-light:#22c55e1a;--red:#ef4444;--red-light:#ef44441a;--orange:#f97316;--orange-light:#f973161a;--text-dark:#1a2634;--text-muted:#6b7280;--font-heading:"Playfair Display",serif;--font-body:"Montserrat",sans-serif;--font-display:"Playfair Display",serif;--font-sans:"Montserrat",-apple-system,BlinkMacSystemFont,sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 30px #0000001f;--transition-fast:0.15s ease;--transition-normal:0.25s ease}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;font-size:16px}body{background:#f8f7f5;background:var(--cream);color:#1a2634;color:var(--text-dark);font-family:Montserrat,sans-serif;font-family:var(--font-body);line-height:1.6}a{color:inherit;text-decoration:none}button{background:none;border:none;cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}h1,h2,h3,h4,h5,h6{font-family:Playfair Display,serif;font-family:var(--font-heading);font-weight:600;line-height:1.3}.text-muted{color:#6b7280;color:var(--text-muted)}.text-sage{color:#2c5f4e;color:var(--sage)}.text-gold{color:#b8926a;color:var(--gold)}.bg-sage{background:#2c5f4e;background:var(--sage)}.bg-gold{background:#b8926a;background:var(--gold)}.bg-teal{background:#3d6b6b;background:var(--teal)}.bg-navy{background:#1a2634;background:var(--navy)}.btn{align-items:center;border:none;border-radius:10px;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:8px;padding:12px 24px;transition:all .15s ease;transition:all var(--transition-fast)}.btn-primary{background:#2c5f4e;background:var(--sage);color:#fff;color:var(--white)}.btn-primary:hover{background:#3a7d66;background:var(--sage-light);box-shadow:0 4px 15px #2c5f4e4d;transform:translateY(-2px)}.btn-secondary{background:#fff;background:var(--white);border:1px solid #e8e6e3;border:1px solid var(--cream-dark);color:#1a2634;color:var(--text-dark)}.btn-secondary:hover{border-color:#2c5f4e;border-color:var(--sage)}.btn-sage,.btn-secondary:hover{color:#2c5f4e;color:var(--sage)}.btn-sage{background:#2c5f4e14;background:var(--sage-pale);border:2px solid #2c5f4e;border:2px solid var(--sage)}.btn-sage:hover{background:#2c5f4e;background:var(--sage);color:#fff;color:var(--white)}.btn-danger{background:#ef44441a;background:var(--red-light);color:#ef4444;color:var(--red)}.btn-danger:hover{background:#ef4444;background:var(--red);color:#fff;color:var(--white)}.btn-success{background:#22c55e1a;background:var(--green-light);color:#22c55e;color:var(--green)}.btn-success:hover{background:#22c55e;background:var(--green);color:#fff;color:var(--white)}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f8f7f5;background:var(--cream)}::-webkit-scrollbar-thumb{background:#e8e6e3;background:var(--cream-dark);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ccc}
/*# sourceMappingURL=main.660195a9.css.map*/