*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;min-height:100vh}#root{width:100%;min-height:100vh}.messages-badge-container{position:relative}.messages-badge-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;background:#f3f4f6;border-radius:10px;cursor:pointer;position:relative;transition:all .2s ease;border:1px solid #e5e7eb;color:#374151}.messages-badge-btn:hover{background:#e5e7eb;border-color:#d1d5db;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.messages-badge-btn:active{transform:translateY(0);background:#d1d5db}.messages-badge-btn.has-unread{animation:pulse-badge 2s ease-in-out infinite}@keyframes pulse-badge{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 6px #ef444400}}.messages-icon{font-size:18px;display:flex;align-items:center;justify-content:center}.messages-count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:10px;font-weight:700;border-radius:9px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #ef444466;border:2px solid white}.messages-dropdown-backdrop{position:fixed;inset:0;z-index:999}.messages-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:340px;background:#fff;border-radius:14px;box-shadow:0 20px 50px #0003,0 0 0 1px #0000000d;z-index:1000;overflow:hidden;animation:dropdown-slide .2s ease}@keyframes dropdown-slide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.messages-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-bottom:1px solid #e5e7eb}.messages-dropdown-header h3{margin:0;font-size:.9375rem;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:.5rem}.messages-dropdown-header h3:before{content:"💬";font-size:1rem}.unread-total{font-size:.75rem;color:#fff;font-weight:600;background:linear-gradient(135deg,#ef4444,#dc2626);padding:.25rem .625rem;border-radius:20px;box-shadow:0 2px 4px #ef44444d}.messages-empty{padding:2.5rem 1.5rem;text-align:center;color:#6b7280}.messages-empty:before{content:"✓";display:block;font-size:2rem;margin-bottom:.75rem;color:#10b981}.messages-list{max-height:400px;overflow-y:auto}.message-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.875rem 1.25rem;border:none;background:none;cursor:pointer;text-align:left;transition:all .15s ease;border-bottom:1px solid #f3f4f6}.message-item:hover{background:linear-gradient(135deg,#f9fafb,#f3f4f6)}.message-item:last-child{border-bottom:none}.message-item-info{display:flex;flex-direction:column;gap:3px}.message-item-client{font-size:.875rem;font-weight:600;color:#1f2937}.message-item-project{font-size:.75rem;color:#6b7280;font-family:SF Mono,Monaco,Inconsolata,monospace}.message-item-count{min-width:26px;height:26px;padding:0 8px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:.75rem;font-weight:700;border-radius:13px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #ef44444d}:root{--portal-primary: #1e40af;--portal-accent: #f59e0b;--portal-bg: #ffffff;--portal-card-bg: #ffffff;--portal-text: #1f2937;--portal-text-muted: #6b7280;--portal-border: #e5e7eb;--portal-success: #10b981;--portal-error: #ef4444}.portal-page{min-height:100vh;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.portal-hero{position:relative;background-image:var(--hero-bg);background-size:cover;background-position:center;background-color:var(--hero-primary, #1e40af);border-radius:16px;overflow:hidden;margin-bottom:24px;min-height:200px}.portal-hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,#000000b3,#0006,#0009)}.portal-hero.no-image .portal-hero-overlay{background:linear-gradient(135deg,#00000026,#0000000d,#0003)}.portal-hero-content{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;padding:32px;min-height:136px}.hero-project-info{color:#fff}.hero-label{display:block;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;opacity:.8;margin-bottom:6px}.hero-address{font-size:1.75rem;font-weight:700;margin:0;line-height:1.2;text-shadow:0 2px 4px rgba(0,0,0,.2)}.hero-location{font-size:1rem;margin:6px 0 0;opacity:.9}.hero-estimate-info{text-align:right;color:#fff}.hero-total{font-size:2rem;font-weight:700;line-height:1.1;text-shadow:0 2px 4px rgba(0,0,0,.2)}.hero-project-id{display:block;font-size:.8rem;opacity:.7;margin-top:4px}.portal-hero-logo{position:absolute;top:16px;right:20px;height:40px;width:auto;opacity:.9;filter:brightness(0) invert(1);z-index:1}@media(max-width:640px){.portal-hero{border-radius:12px;min-height:180px}.portal-hero-content{flex-direction:column;align-items:flex-start;gap:20px;padding:24px}.hero-address{font-size:1.4rem}.hero-estimate-info{text-align:left}.hero-total{font-size:1.5rem}.portal-hero-logo{height:32px;top:12px;right:16px}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--portal-text-muted)}.loading-spinner{width:40px;height:40px;border:3px solid var(--portal-border);border-top-color:var(--portal-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.portal-error-card{text-align:center;padding:60px 40px;background:var(--portal-card-bg);border-radius:12px;max-width:400px;margin:40px auto}.error-icon{width:60px;height:60px;background:#fef2f2;color:var(--portal-error);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;margin:0 auto 20px}.success-icon{width:60px;height:60px;background:#ecfdf5;color:var(--portal-success);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;margin:0 auto 20px}.portal-btn-primary{background:var(--portal-primary);color:#fff;border:none;padding:14px 28px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s;width:100%}.portal-btn-primary:hover:not(:disabled){opacity:.9}.portal-btn-primary:disabled{opacity:.5;cursor:not-allowed}.portal-btn-secondary{background:transparent;color:var(--portal-text);border:1px solid var(--portal-border);padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.portal-btn-secondary:hover{background:var(--portal-bg)}.portal-back-btn{background:none;border:none;color:var(--portal-text);font-size:14px;cursor:pointer;padding:8px 0}.portal-back-btn:hover{color:var(--portal-primary)}.portal-login-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.portal-login-card{background:var(--portal-card-bg);border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;width:100%;max-width:420px;overflow:hidden}.portal-login-header{background:var(--portal-primary);color:#fff;padding:32px;text-align:center}.portal-login-header h1{margin:0 0 8px;font-size:24px}.portal-login-header p{margin:0;opacity:.9}.portal-login-form{padding:32px}.portal-login-form .form-group{margin-bottom:20px}.portal-login-form label{display:block;font-size:14px;font-weight:500;color:var(--portal-text);margin-bottom:8px}.portal-login-form input{width:100%;padding:14px 16px;border:1px solid var(--portal-border);border-radius:8px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.portal-login-form input:focus{outline:none;border-color:var(--portal-primary)}.portal-login-hint{margin-top:20px;font-size:13px;color:var(--portal-text-muted);text-align:center}.portal-login-success{padding:40px 32px;text-align:center}.portal-login-success h2{margin:0 0 12px;color:var(--portal-text)}.portal-login-success p{margin:0 0 8px;color:var(--portal-text-muted)}.portal-login-success .hint{font-size:13px;margin-bottom:24px}.portal-login-footer{margin-top:24px;text-align:center;color:var(--portal-text-muted);font-size:14px}.portal-login-footer a{color:var(--portal-primary);text-decoration:none}.portal-error{background:#fef2f2;color:var(--portal-error);padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.portal-verify-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.portal-verify-card{background:var(--portal-card-bg);border-radius:16px;padding:48px;text-align:center;max-width:400px}.portal-verify-error h2{margin:0 0 12px;color:var(--portal-text)}.portal-verify-error p{margin:0 0 24px;color:var(--portal-text-muted)}.portal-dashboard-container{max-width:1200px;margin:0 auto;padding:20px}.portal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding:16px 0;border-bottom:1px solid var(--portal-border)}.portal-header-left h1{margin:0;font-size:24px;color:var(--portal-text)}.portal-welcome{margin:4px 0 0;color:var(--portal-text-muted);font-size:14px}.portal-logout-btn{padding:8px 16px}.portal-dashboard-content h2{font-size:18px;margin:0 0 20px;color:var(--portal-text)}.portal-empty-state{text-align:center;padding:60px 20px;color:var(--portal-text-muted)}.portal-empty-state .hint{font-size:13px;margin-top:8px}.portal-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.portal-project-card{background:var(--portal-card-bg);border-radius:12px;padding:20px;cursor:pointer;transition:transform .2s,box-shadow .2s;border:1px solid var(--portal-border)}.portal-project-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.project-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.project-status{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase}.status-complete{background:#ecfdf5;color:#059669}.status-active{background:#eff6ff;color:#2563eb}.status-pending{background:#fef3c7;color:#d97706}.status-declined{background:#fef2f2;color:#dc2626}.status-draft{background:#f3f4f6;color:#6b7280}.unread-badge{background:var(--portal-error);color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;min-width:20px;text-align:center}.project-card-body h3{margin:0 0 4px;font-size:18px;color:var(--portal-text)}.project-location{margin:0 0 4px;color:var(--portal-text-muted);font-size:14px}.project-id{margin:0;color:var(--portal-text-muted);font-size:13px}.project-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--portal-border)}.project-date{font-size:13px;color:var(--portal-text-muted)}.project-value{font-size:16px;font-weight:600;color:var(--portal-text)}.portal-project-container{max-width:1100px;margin:0 auto;padding:24px}.portal-project-header{border-radius:12px;padding:32px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center}.project-header-info h1{margin:0 0 8px;font-size:28px}.project-header-info p{margin:0 0 4px;opacity:.9}.project-header-total{text-align:right}.total-label{display:block;font-size:14px;opacity:.8;margin-bottom:4px}.total-value{font-size:32px;font-weight:700}.portal-section{background:transparent;border-radius:0;padding:32px 0;margin-bottom:0;border-bottom:1px solid #e5e7eb}.portal-section:last-of-type{border-bottom:none}.portal-section h2{margin:0 0 24px;font-size:1.125rem;font-weight:600;color:var(--portal-text);display:flex;align-items:center;gap:10px;line-height:1.3}.portal-section h2 .section-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:linear-gradient(135deg,var(--portal-primary, #1e40af) 0%,#3b82f6 100%);border-radius:6px;font-size:.875rem;flex-shrink:0}.portal-timeline{display:flex;justify-content:space-between;position:relative;padding:0 20px}.timeline-item{display:flex;flex-direction:column;align-items:center;position:relative;flex:1}.timeline-marker{width:40px;height:40px;border-radius:50%;background:#f3f4f6;border:2px solid #d1d5db;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px;font-weight:600;z-index:1;box-shadow:0 2px 4px #0000000f;transition:all .2s ease}.marker-number{font-size:.875rem;font-weight:600}.timeline-item.completed .timeline-marker{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;color:#fff;box-shadow:0 2px 8px #10b9814d}.timeline-item.current .timeline-marker{color:#fff;box-shadow:0 0 0 4px rgba(var(--portal-accent-rgb, 245, 158, 11),.25),0 2px 8px #0000001a;animation:timeline-pulse 2s ease-in-out infinite}@keyframes timeline-pulse{0%,to{box-shadow:0 0 0 4px rgba(var(--portal-accent-rgb, 245, 158, 11),.25),0 2px 8px #0000001a}50%{box-shadow:0 0 0 8px rgba(var(--portal-accent-rgb, 245, 158, 11),.15),0 2px 12px #00000026}}.timeline-content{margin-top:12px;text-align:center;max-width:80px}.timeline-label{font-size:.75rem;font-weight:500;color:#6b7280;line-height:1.3;letter-spacing:-.01em}.timeline-item.completed .timeline-label{color:#047857;font-weight:600}.timeline-item.current .timeline-label{color:#1f2937;font-weight:600}.timeline-connector{position:absolute;top:19px;left:calc(50% + 24px);right:calc(-50% + 24px);height:3px;background:#e5e7eb;border-radius:2px}.timeline-connector.completed{background:linear-gradient(90deg,#10b981,#34d399)}.portal-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.detail-label{font-size:12px;color:var(--portal-text-muted);text-transform:uppercase;margin-bottom:4px}.detail-value{font-size:15px;color:var(--portal-text)}.portal-pricing-summary{border:1px solid var(--portal-border);border-radius:8px;overflow:hidden}.pricing-row{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--portal-border)}.pricing-row:last-child{border-bottom:none}.pricing-row.discount{color:var(--portal-success)}.pricing-row.total{background:var(--portal-bg);font-weight:600;font-size:18px}.portal-messages-section{padding-bottom:32px;border-bottom:none}.portal-messages-container{display:flex;flex-direction:column}.portal-no-messages{text-align:center;padding:48px 24px;color:var(--portal-text-muted);background:#f9fafb;border-radius:12px;border:2px dashed #e5e7eb}.portal-no-messages p{margin:0;font-size:.9375rem}.portal-messages-list{max-height:450px;overflow-y:auto;padding:20px 0;display:flex;flex-direction:column;gap:20px}.portal-message{display:flex;gap:12px;max-width:85%;animation:messageSlideIn .3s ease-out}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.8125rem;font-weight:600;flex-shrink:0;box-shadow:0 2px 4px #0000001a}.message-body{flex:1;min-width:0}.message-customer{flex-direction:row-reverse;align-self:flex-end}.message-customer .message-body{background:linear-gradient(135deg,var(--portal-primary, #1e40af) 0%,#3b82f6 100%);color:#fff;padding:14px 16px;border-radius:16px 16px 4px;box-shadow:0 2px 8px #1e40af26}.message-customer .message-header{opacity:.85}.message-admin{align-self:flex-start}.message-admin .message-body{background:#fff;color:var(--portal-text);padding:14px 16px;border-radius:16px 16px 16px 4px;border:1px solid #e5e7eb;box-shadow:0 2px 4px #0000000a}.message-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;font-size:.75rem}.message-sender{font-weight:600;font-size:.8125rem}.message-time{opacity:.7;font-size:.7rem}.message-content{font-size:.9375rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.portal-message-form{padding:20px 0 24px;border-top:1px solid var(--portal-border);margin-top:16px;background:transparent}.portal-message-form textarea{width:100%;padding:14px 16px;border:2px solid #e5e7eb;border-radius:12px;font-size:.9375rem;resize:vertical;min-height:90px;box-sizing:border-box;font-family:inherit;background:#fff;transition:border-color .2s,box-shadow .2s}.portal-message-form textarea:focus{outline:none;border-color:var(--portal-primary);box-shadow:0 0 0 3px #1e40af1a}.portal-message-form textarea::placeholder{color:#9ca3af}.portal-message-form .portal-btn-primary{margin-top:12px;width:auto;padding:12px 28px;font-size:.9375rem}.portal-contact-footer{border-radius:16px;padding:32px;margin-top:8px;color:var(--contact-text, white)}.contact-footer-content{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}.contact-footer-brand{display:flex;align-items:center;gap:14px}.contact-footer-logo{height:72px;width:auto}.contact-footer-company{display:flex;flex-direction:column}.contact-footer-company .company-name{font-size:1.125rem;font-weight:700}.contact-footer-company .company-tagline{font-size:.8125rem;opacity:.7}.contact-footer-methods{display:flex;gap:16px}.contact-method{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#ffffff1a;border-radius:12px;text-decoration:none;color:#fff;transition:all .2s}.contact-method:hover{background:#ffffff2e;transform:translateY(-2px)}.contact-method-icon{font-size:1.5rem}.contact-method-details{display:flex;flex-direction:column}.contact-method-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;opacity:.7}.contact-method-value{font-size:.9375rem;font-weight:600}.contact-footer-cta{text-align:right}.contact-footer-cta p{margin:0;font-size:.9375rem;font-weight:500}.contact-footer-cta span{font-size:.8125rem;opacity:.6}@media(max-width:900px){.contact-footer-content{flex-direction:column;text-align:center}.contact-footer-brand{flex-direction:column}.contact-footer-methods{flex-direction:column;width:100%}.contact-method{justify-content:center}.contact-footer-cta{text-align:center}}.portal-contact{text-align:center}.portal-contact p{margin:0 0 12px;color:var(--portal-text-muted)}.contact-info{display:flex;justify-content:center;gap:24px}.contact-info a{color:var(--portal-primary);text-decoration:none;font-weight:500}.contact-info a:hover{text-decoration:underline}.portal-action-section{border:none;border-bottom:none;background:linear-gradient(135deg,#fffbeb,#fff,#fef3c7);overflow:hidden;margin:32px -24px;padding:40px 24px!important;border-top:3px solid var(--portal-accent)}.portal-action-section h2{color:var(--portal-accent, #f59e0b)}.action-header{text-align:center;margin-bottom:28px}.action-header h2{justify-content:center;border-left:none;padding-left:0;font-size:1.375rem}.action-description{color:var(--portal-text-muted);font-size:1rem;max-width:500px;margin:12px auto 0}.action-content{max-width:550px;margin:0 auto}.signature-section{margin-bottom:24px}.signature-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.signature-section label{font-size:.9375rem;font-weight:600;color:var(--portal-text)}.clear-signature-btn{background:none;border:none;color:var(--portal-text-muted);font-size:.8125rem;cursor:pointer;padding:4px 10px;border-radius:4px;transition:all .2s}.clear-signature-btn:hover{color:var(--portal-error);background:#fef2f2}.signature-canvas-wrapper{position:relative;background:#fff;border:2px solid #e5e7eb;border-radius:12px;overflow:hidden;box-shadow:inset 0 2px 4px #0000000a;transition:border-color .2s,box-shadow .2s}.signature-canvas-wrapper:hover{border-color:#d1d5db}.signature-canvas-wrapper:focus-within{border-color:var(--portal-accent);box-shadow:0 0 0 3px #f59e0b26,inset 0 2px 4px #0000000a}.signature-canvas{display:block;width:100%;height:150px;cursor:crosshair;touch-action:none}.signature-placeholder{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#9ca3af;font-size:.9375rem;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:6px}.signature-placeholder .placeholder-icon{font-size:1.5rem;opacity:.7}.action-buttons{display:flex;gap:12px;margin-top:20px}.accept-btn{flex:2;display:flex;align-items:center;justify-content:center;gap:10px;padding:18px 32px;font-size:1.125rem;font-weight:700;border:none;border-radius:12px;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #00000026}.accept-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #0003}.accept-btn:active:not(:disabled){transform:translateY(0)}.accept-btn:disabled{opacity:.5;cursor:not-allowed}.accept-btn .btn-icon{font-size:1.25rem}.decline-btn{flex:1;padding:18px 20px;font-size:.9375rem;font-weight:500;background:transparent;border:2px solid #e5e7eb;border-radius:12px;color:#6b7280;cursor:pointer;transition:all .2s}.decline-btn:hover:not(:disabled){border-color:var(--portal-error);color:var(--portal-error);background:#fef2f2}.decline-btn:disabled{opacity:.5;cursor:not-allowed}.trust-indicators{display:flex;justify-content:center;gap:24px;margin-top:28px;padding-top:20px;border-top:1px solid rgba(0,0,0,.08)}.trust-item{display:flex;align-items:center;gap:6px;font-size:.8125rem;color:#6b7280}.trust-icon{font-size:1rem}.portal-status-accepted,.portal-status-declined{text-align:center;padding:40px}.status-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 20px}.status-icon.accepted{background:#ecfdf5;color:var(--portal-success)}.status-icon.declined{background:#fef2f2;color:var(--portal-error)}.portal-status-accepted h2,.portal-status-declined h2{margin-bottom:12px}.portal-status-accepted p,.portal-status-declined p{color:var(--portal-text-muted);margin:0}.saved-signature{margin-top:24px;padding-top:24px;border-top:1px solid var(--portal-border)}.saved-signature label{display:block;font-size:12px;color:var(--portal-text-muted);text-transform:uppercase;margin-bottom:8px}.saved-signature img{max-width:300px;height:auto;border:1px solid var(--portal-border);border-radius:4px;background:#fff}.signed-date{font-size:13px;color:var(--portal-text-muted);margin-top:8px}.portal-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.portal-modal{background:var(--portal-card-bg);border-radius:12px;padding:32px;max-width:480px;width:100%}.portal-modal h3{margin:0 0 12px;font-size:20px;color:var(--portal-text)}.portal-modal p{color:var(--portal-text-muted);margin:0 0 20px}.portal-modal textarea{width:100%;padding:12px 16px;border:1px solid var(--portal-border);border-radius:8px;font-size:14px;resize:vertical;min-height:80px;box-sizing:border-box;font-family:inherit;margin-bottom:16px}.portal-modal textarea:focus{outline:none;border-color:var(--portal-primary)}.modal-buttons{display:flex;gap:12px;justify-content:flex-end}.modal-buttons .portal-btn-secondary,.modal-buttons .portal-btn-primary{padding:10px 20px;width:auto}.decline-confirm-btn{background:var(--portal-error)!important}.portal-form-group{margin-bottom:16px}.portal-form-label{display:block;font-size:14px;font-weight:600;color:var(--portal-text);margin-bottom:8px}.portal-form-label .optional-text{font-weight:400;color:var(--portal-text-muted);font-size:13px}.portal-select{width:100%;padding:12px 40px 12px 16px;border:2px solid var(--portal-border);border-radius:8px;font-size:15px;font-family:inherit;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;color:var(--portal-text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box}.portal-select:focus{outline:none;border-color:var(--portal-primary)}.portal-select:hover{border-color:#9ca3af}.portal-textarea{width:100%;padding:12px 16px;border:2px solid var(--portal-border);border-radius:8px;font-size:14px;font-family:inherit;resize:vertical;box-sizing:border-box;background-color:#fff}.portal-textarea:focus{outline:none;border-color:var(--portal-primary)}.portal-estimate-document{background:var(--portal-card-bg);border-radius:12px;overflow:hidden;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.estimate-doc-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px;gap:20px}.estimate-doc-header .header-left{display:flex;align-items:center;gap:16px}.estimate-doc-header .company-logo{width:80px;height:auto;object-fit:contain}.estimate-doc-header .company-info{font-size:13px;line-height:1.5}.estimate-doc-header .company-name{font-size:20px;font-weight:700;margin-bottom:4px}.estimate-doc-header .header-right{text-align:right;font-size:13px;line-height:1.5}.estimate-title{font-size:24px;font-weight:700;margin:24px;padding-bottom:16px;border-bottom:2px solid var(--portal-border)}.estimate-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:0 24px 24px}.estimate-info-grid .info-column{font-size:14px;line-height:1.5}.estimate-info-grid .info-label{font-size:12px;font-weight:600;text-transform:uppercase;margin-bottom:6px}.estimate-info-grid .info-value{font-weight:500}.estimate-items-table{margin:0 24px 24px;border:1px solid var(--portal-border);border-radius:8px;overflow:hidden}.estimate-items-table .item-header{display:flex;justify-content:space-between;padding:12px 16px;font-weight:600;font-size:14px}.estimate-items-table .item-header .price-col{width:100px;text-align:right}.item-row{display:flex;border-top:1px solid var(--portal-border);padding:16px}.item-row .item-content{flex:1}.item-row .item-content.full-width{width:100%}.item-row .item-title{font-weight:600;font-size:15px;margin-bottom:8px}.item-row .item-details{font-size:14px;color:var(--portal-text-muted);line-height:1.6}.item-row .item-details p{margin:0 0 8px}.item-row .item-details p:last-child{margin-bottom:0}.item-row .item-details ul{margin:8px 0;padding-left:20px}.item-row .item-details li{margin-bottom:4px}.item-row .item-details .highlight{background:#fef3c7;padding:2px 6px;border-radius:3px;font-weight:500}.item-row .item-price{width:100px;text-align:right;font-weight:600;font-size:15px;display:flex;align-items:center;justify-content:flex-end}.item-row.highlight-row{background:#fffbeb}.item-row.side-row{background:#f9fafb}.item-row.subtotal-row{background:#f3f4f6;border-top:2px solid #e5e7eb}.item-row.subtotal-row .item-title{font-weight:600}.item-row.discount-row{background:#ecfdf5}.item-row.discount-row .item-price{color:#059669;font-weight:600}.item-row.tax-row{background:#f3f4f6}.item-row.total-row,.item-row.total-row .item-title{font-size:18px}.site-drawings-row{flex-direction:column}.site-drawings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:16px}.site-drawing-item{text-align:center}.site-drawing-item .drawing-label{font-weight:600;font-size:13px;color:var(--portal-text);margin-bottom:8px}.site-drawing-item .drawing-image{width:100%;height:150px;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .2s}.site-drawing-item .drawing-image:hover{transform:scale(1.02)}.site-drawing-item .drawing-notes{font-size:12px;color:var(--portal-text-muted);margin-top:6px}.portal-annotation-summary{margin-top:8px;padding:8px;background:#fef3c7;border-radius:6px;border:1px solid #fcd34d}.portal-annotation-summary .summary-label{display:block;font-weight:600;color:#92400e;font-size:11px;margin-bottom:4px}.portal-annotation-summary .damage-tags{display:flex;flex-wrap:wrap;gap:4px}.portal-annotation-summary .damage-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;color:#fff;font-size:10px;font-weight:500;box-shadow:0 1px 2px #0000001a}.portal-invoice-document{background:#fff;padding:24px;border-radius:8px}.invoice-brand-header{display:flex;align-items:center;gap:16px;padding-bottom:16px;border-bottom:3px solid #1e40af;margin-bottom:0}.invoice-logo{height:48px;width:auto}.invoice-company-name{font-size:24px;font-weight:700;letter-spacing:1px}.invoice-payment-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 20px;font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.invoice-payment-banner.status-paid{background:#dcfce7;color:#166534}.invoice-payment-banner.status-partial{background:#fef3c7;color:#92400e}.invoice-payment-banner.status-pending{background:#fef9c3;color:#854d0e}.invoice-payment-banner .banner-icon{font-size:18px}.invoice-content-body{padding:24px 0}.invoice-content-body .invoice-title{font-size:20px;font-weight:600;color:#374151;margin:0 0 20px}.invoice-details-grid{display:flex;justify-content:space-between;margin-bottom:24px;gap:24px}.invoice-to{flex:1}.invoice-to .detail-label{font-size:12px;color:#6b7280;text-transform:uppercase;margin-bottom:4px}.invoice-to .detail-value{font-size:16px;font-weight:600;color:#111827}.invoice-to .detail-address{font-size:14px;color:#374151}.invoice-dates{text-align:right}.invoice-dates .date-row{display:flex;justify-content:space-between;gap:24px;margin-bottom:4px}.invoice-dates .date-label{font-size:13px;color:#6b7280}.invoice-dates .date-value{font-size:13px;font-weight:500;color:#111827}.portal-invoice-document .invoice-table{width:100%;border-collapse:collapse;margin-bottom:20px}.portal-invoice-document .invoice-table th,.portal-invoice-document .invoice-table td{padding:12px;text-align:left;border-bottom:1px solid #e5e7eb}.portal-invoice-document .invoice-table th{font-size:13px;font-weight:600;text-transform:uppercase;border-bottom:none;background:transparent}.portal-invoice-document .invoice-table td{font-size:14px}.portal-invoice-document .invoice-table .num-col{text-align:right;width:100px}.invoice-totals{margin-left:auto;width:280px}.invoice-totals .totals-row{display:flex;justify-content:space-between;padding:8px 12px;font-size:14px}.invoice-totals .totals-row.discount-row{background:#ecfdf5;border-radius:4px;color:#059669;font-weight:600}.invoice-totals .totals-row.total-row{font-weight:700;font-size:16px;border-radius:4px;margin-top:8px}.invoice-totals .totals-label{color:#6b7280}.invoice-totals .totals-value{font-weight:500;color:#111827}.invoice-totals .total-row .totals-label,.invoice-totals .total-row .totals-value{color:inherit}.estimate-terms{padding:24px;border-top:1px solid var(--portal-border);font-size:13px;line-height:1.6;color:var(--portal-text-muted)}.estimate-terms h4{color:var(--portal-text);font-size:14px;margin:0 0 12px}.estimate-terms p{margin:0 0 8px}.estimate-terms ul{margin:8px 0;padding-left:20px}.estimate-terms li{margin-bottom:4px}@media(max-width:640px){.portal-timeline{flex-direction:column;padding:0;gap:12px}.timeline-item{flex-direction:row;gap:14px}.timeline-marker{width:36px;height:36px;flex-shrink:0}.timeline-content{margin-top:0;text-align:left;max-width:none}.timeline-label{font-size:.875rem}.timeline-connector{display:none}.timeline-item.current .timeline-marker{animation:none}.portal-project-header{flex-direction:column;text-align:center;gap:20px}.project-header-total{text-align:center}.portal-header{flex-direction:column;gap:12px;text-align:center}.portal-projects-grid{grid-template-columns:1fr}.portal-message{max-width:95%}.message-avatar{width:34px;height:34px;font-size:.75rem}.message-customer .message-body,.message-admin .message-body{padding:12px 14px}.estimate-doc-header{flex-direction:column;text-align:center}.estimate-doc-header .header-left{flex-direction:column}.estimate-doc-header .header-right{text-align:center}.estimate-info-grid{grid-template-columns:repeat(2,1fr)}.action-buttons{flex-direction:column}.accept-btn,.decline-btn{flex:none;width:100%}.trust-indicators{flex-wrap:wrap;gap:16px}.trust-item{font-size:.75rem}.site-drawings-grid{grid-template-columns:1fr 1fr}}.portal-collapsible{background:transparent;border-radius:0;overflow:hidden;margin-bottom:0;padding:24px 0;border-bottom:1px solid #e5e7eb}.collapsible-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;color:var(--portal-text);transition:all .2s}.collapsible-header:hover{background:#f3f4f6;border-color:var(--portal-primary)}.toggle-icon{font-size:.75rem;transition:transform .3s ease;color:var(--portal-text-muted)}.toggle-icon.open{transform:rotate(180deg)}.collapsible-content{padding:0;border:1px solid #e5e7eb;border-top:none;border-radius:0 0 8px 8px;background:#fff}.collapsible-content .portal-estimate-document,.collapsible-content .portal-invoice-document{margin:0;border-radius:0 0 10px 10px}.portal-invoice-document{background:var(--portal-card-bg);border-radius:12px;overflow:hidden}.subtotal-row{background:#f9fafb;font-weight:500}.subtotal-row .item-title{font-weight:600}.portal-status-accepted-inline{text-align:center;padding:1.5rem;background:#f0fdf4;border-top:1px solid #bbf7d0;margin-top:1rem}.portal-status-accepted-inline .status-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto .75rem;background:#10b981;color:#fff}.portal-status-accepted-inline h3{margin:0 0 .5rem;color:#166534;font-size:1.1rem}.portal-status-accepted-inline p{color:#15803d;margin:0 0 1rem;font-size:.9rem}.portal-status-accepted-inline .saved-signature{margin-top:1rem;padding-top:1rem;border-top:1px solid #bbf7d0}.portal-status-accepted-inline .saved-signature label{display:block;font-size:.75rem;color:#6b7280;margin-bottom:.5rem}.portal-status-accepted-inline .saved-signature img{max-width:200px;max-height:80px;border:1px solid #e5e7eb;border-radius:4px;background:#fff}.portal-status-accepted-inline .signed-date{font-size:.75rem;color:#6b7280;margin-top:.5rem}.message-images{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.message-image{max-width:150px;max-height:150px;object-fit:cover;border-radius:8px;cursor:pointer;border:1px solid var(--portal-border);transition:transform .2s}.message-image:hover{transform:scale(1.05)}.image-preview-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.image-preview{position:relative;width:80px;height:80px}.image-preview img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--portal-border)}.remove-image-btn{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--portal-error);color:#fff;border:none;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}.image-error{color:var(--portal-error);font-size:.8rem;margin-top:.25rem}.message-form-actions{display:flex;gap:.5rem;margin-top:.5rem}.attach-image-btn{padding:.5rem 1rem;background:#f3f4f6;border:1px solid var(--portal-border);border-radius:8px;cursor:pointer;font-size:.875rem;color:var(--portal-text);transition:background .2s}.attach-image-btn:hover:not(:disabled){background:#e5e7eb}.attach-image-btn:disabled{opacity:.5;cursor:not-allowed}.message-form-actions .portal-btn-primary{flex:1}.collapsible-header-row{display:flex;gap:.5rem;align-items:stretch}.collapsible-header-row .collapsible-header{flex:1}.print-btn{padding:.75rem 1rem;background:#f3f4f6;border:2px solid #d1d5db;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;color:#374151;transition:all .2s;white-space:nowrap}.print-btn:hover{background:#e5e7eb;border-color:#9ca3af}.estimate-print-header{display:flex;justify-content:flex-end;margin-bottom:1rem}@media print{body.printing-estimate *,body.printing-invoice *{visibility:hidden}body.printing-estimate .print-content[data-print-type=estimate],body.printing-estimate .print-content[data-print-type=estimate] *,body.printing-invoice .print-content[data-print-type=invoice],body.printing-invoice .print-content[data-print-type=invoice] *{visibility:visible}body.printing-estimate .print-content[data-print-type=estimate],body.printing-invoice .print-content[data-print-type=invoice]{position:absolute;left:0;top:0;width:100%;background:#fff;padding:20px;box-sizing:border-box}.portal-header,.portal-back-btn,.portal-logout-btn,.collapsible-header-row,.print-btn,.estimate-print-header,.portal-timeline-section,.portal-messages-section,.portal-contact,.portal-action-section,.portal-status-accepted-inline{display:none!important}.estimate-doc-header,.item-header,.total-row{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}@page{margin:.5in;size:letter}}.portal-payment-section{margin-bottom:2rem}.portal-payment-section h2{font-size:1.5rem;margin-bottom:1.5rem;color:#1f2937}.payment-status-card{display:flex;gap:1.5rem;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem}.payment-status-card.deposit-required{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b}.payment-status-card.deposit-complete{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid #10b981}.payment-status-card.balance-due{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:1px solid #3b82f6}.payment-status-card.paid-full{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid #10b981}.payment-status-icon{font-size:2.5rem;flex-shrink:0}.payment-status-content{flex:1}.payment-status-content h3{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:#1f2937}.payment-status-content>p{color:#4b5563;margin:0 0 1rem}.payment-amounts{background:#ffffffb3;border-radius:8px;padding:1rem;margin:1rem 0}.amount-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(0,0,0,.1)}.amount-row:last-child{border-bottom:none}.amount-row.remaining{font-weight:600;border-top:2px solid rgba(0,0,0,.2);padding-top:.75rem;margin-top:.25rem}.amount-label{color:#4b5563}.amount-value{font-weight:500;color:#1f2937}.amount-value.highlight{font-size:1.25rem;color:#1e40af}.amount-row.paid .amount-value{color:#059669}.payment-instructions{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(0,0,0,.1)}.payment-instructions p{margin:0 0 .5rem;color:#4b5563}.payment-instructions ul{margin:.5rem 0;padding-left:1.5rem}.payment-instructions li{margin:.25rem 0;color:#4b5563}.payment-instructions strong{color:#1f2937}.payment-note{font-size:.875rem;color:#6b7280;font-style:italic;margin-top:.75rem!important}.payment-online{margin:1rem 0;text-align:center}.pay-now-btn{display:inline-block;padding:16px 48px;font-size:1.125rem;font-weight:600;text-decoration:none;border-radius:8px;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 4px 12px #00000026;background-color:#22c55e!important;color:#fff!important}.pay-now-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0003}.pay-now-btn:active{transform:translateY(0)}.payment-secure-note{font-size:.8rem;color:#6b7280;margin-top:.5rem}.financing-option{margin-top:1.5rem;padding:1.25rem;background:linear-gradient(135deg,#ede9fe,#ddd6fe);border:1px solid #a78bfa;border-radius:12px;text-align:center}.financing-header{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.75rem}.financing-icon{font-size:1.5rem}.financing-header h4{margin:0;font-size:1.1rem;font-weight:600;color:#5b21b6}.financing-estimate{font-size:1.1rem;color:#4c1d95;margin:0 0 1rem}.financing-estimate strong{font-size:1.25rem;color:#5b21b6}.financing-terms{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.financing-term{display:flex;flex-direction:column;align-items:center;padding:.5rem .75rem;background:#ffffffb3;border-radius:8px;min-width:90px}.term-months{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase}.term-payment{font-size:.85rem;font-weight:600;color:#5b21b6}.financing-btn{display:inline-block;padding:12px 32px;font-size:1rem;font-weight:600;text-decoration:none;border-radius:8px;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 4px 12px #5b21b633}.financing-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #5b21b64d}.financing-disclaimer{font-size:.7rem;color:#6b7280;margin:.75rem 0 0;font-style:italic}.financing-estimate-banner{margin-top:1rem;padding:1rem;background:linear-gradient(135deg,#ede9fe,#ddd6fe);border:1px solid #a78bfa;border-radius:8px}.financing-banner-content{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.financing-banner-icon{font-size:1.5rem}.financing-banner-text{flex:1;min-width:150px}.financing-banner-text strong{display:block;font-size:.95rem;color:#5b21b6}.financing-banner-text span{font-size:.85rem;color:#6b7280}.financing-banner-btn{padding:8px 20px;color:#fff;text-decoration:none;border-radius:6px;font-weight:600;font-size:.875rem;transition:opacity .15s}.financing-banner-btn:hover{opacity:.9}.financing-banner-note{margin:.5rem 0 0;font-size:.7rem;color:#6b7280;text-align:center}@media(max-width:480px){.financing-banner-content{flex-direction:column;text-align:center}.financing-banner-text{text-align:center}}.payment-history{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.payment-history h4{font-size:1rem;font-weight:600;color:#374151;margin:0 0 1rem}.payment-list{display:flex;flex-direction:column;gap:.5rem}.payment-item{display:grid;grid-template-columns:100px 80px 80px 1fr;gap:1rem;padding:.75rem;background:#f9fafb;border-radius:6px;font-size:.875rem}.payment-date{color:#6b7280}.payment-type{text-transform:capitalize;color:#4b5563}.payment-method{text-transform:capitalize;color:#6b7280}.payment-amount{text-align:right;font-weight:600;color:#059669}@media(max-width:640px){.payment-status-card{flex-direction:column;text-align:center}.payment-item{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.payment-amount{text-align:left}}.portal-error-card .error-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.portal-btn-secondary{padding:.75rem 1.5rem;border-radius:8px;font-weight:500;cursor:pointer;background:#f3f4f6;color:#374151;border:1px solid #d1d5db;transition:background .2s}.portal-btn-secondary:hover{background:#e5e7eb}.payment-success-banner{margin:0 auto 20px;max-width:900px;padding:16px 20px;border-radius:12px;color:#fff;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.payment-success-content{display:flex;align-items:center;gap:16px}.payment-success-icon{font-size:24px;font-weight:700;background:#fff3;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.payment-success-text{flex:1;display:flex;flex-direction:column;gap:2px}.payment-success-text strong{font-size:16px}.payment-success-text span{font-size:14px;opacity:.9}.payment-success-dismiss{background:#fff3;border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0}.payment-success-dismiss:hover{background:#ffffff4d}@media(max-width:600px){.payment-success-banner{margin:0 10px 15px;padding:12px 15px}.payment-success-content{gap:12px}.payment-success-icon{width:32px;height:32px;font-size:18px}.payment-success-text strong{font-size:14px}.payment-success-text span{font-size:12px}}.payments-header-row{background:#f9fafb;border-top:2px solid #e5e7eb;margin-top:.5rem}.payments-header-row .item-title{font-weight:600;font-size:.9rem}.payment-row{background:#fafafa}.payment-row .item-details{font-size:.85rem;color:#6b7280}.payment-row .item-price{color:#059669;font-weight:500}.balance-row{margin-top:.5rem}.balance-row .item-title,.balance-row .item-price{font-weight:700;font-size:1.1rem}.invoice-payment-instructions{margin-top:1.5rem;padding:1rem;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.invoice-payment-instructions h4{margin:0 0 .75rem;font-size:.95rem;color:#374151}.invoice-payment-instructions ul{margin:0 0 .75rem;padding-left:1.25rem}.invoice-payment-instructions li{margin-bottom:.5rem;font-size:.875rem;color:#4b5563}.invoice-payment-instructions .payment-note{margin:0;font-size:.8rem;color:#6b7280;font-style:italic}.portal-invoice-table{width:100%;border-collapse:collapse;margin:1rem 0}.portal-invoice-table th,.portal-invoice-table td{padding:12px;text-align:left;border-bottom:1px solid #e5e7eb}.portal-invoice-table th{font-size:.8rem;font-weight:600;text-transform:uppercase}.portal-invoice-table td{font-size:.9rem}.portal-invoice-table .num-col{text-align:right;width:100px}.portal-invoice-table .line-item-color{color:#6b7280;font-style:italic}.invoice-totals-section{margin-left:auto;width:300px;margin-top:1rem}.invoice-totals-row{display:flex;justify-content:space-between;padding:8px 12px;font-size:.9rem}.invoice-totals-row .totals-label{color:#6b7280}.invoice-totals-row .totals-value{font-weight:500;color:#1f2937}.invoice-totals-row.discount .totals-value{color:#059669}.invoice-totals-row.total{font-weight:700;font-size:1rem;border-radius:6px;margin-top:8px}.invoice-totals-row.total .totals-label,.invoice-totals-row.total .totals-value{color:inherit}.invoice-payments-section{margin-top:1.5rem;padding-top:1rem;border-top:2px solid #e5e7eb}.invoice-payments-section h4{margin:0 0 .75rem;font-size:.9rem;font-weight:600}.invoice-payment-row{display:flex;justify-content:space-between;padding:8px 0;font-size:.85rem;border-bottom:1px solid #f3f4f6}.invoice-payment-row .payment-desc{color:#6b7280}.invoice-payment-row .payment-amount{color:#059669;font-weight:500}.invoice-balance-row{display:flex;justify-content:space-between;padding:14px 16px;margin-top:1rem;border-radius:8px;font-weight:700;font-size:1.1rem}.invoice-balance-row .balance-label,.invoice-balance-row .balance-value{color:inherit}@media(max-width:600px){.portal-invoice-table th,.portal-invoice-table td{padding:8px 6px;font-size:.8rem}.portal-invoice-table .num-col{width:70px}.invoice-totals-section{width:100%}.invoice-totals-row{padding:6px 8px;font-size:.85rem}.invoice-balance-row{padding:12px;font-size:1rem}}.measurement-side-card{background:#fff;border:1px solid var(--portal-border);border-radius:8px;overflow:hidden}.side-card-header{background:var(--portal-primary, #1e40af);color:#fff;padding:.75rem 1rem;font-weight:600;font-size:1rem}.side-item{padding:.75rem 1rem;border-bottom:1px solid var(--portal-border);background:#fafafa}.side-item-main{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.side-item-name{font-weight:500;color:var(--portal-text);font-size:.875rem}.side-item-qty{color:var(--portal-text-muted);font-size:.875rem;white-space:nowrap}.side-item-notes{width:100%;font-size:.8125rem;color:var(--portal-text-muted);font-style:italic;margin-top:.25rem;margin-bottom:0;line-height:1.4}.side-item-empty{color:var(--portal-text-muted);font-style:italic;font-size:.875rem;margin:0}@media(max-width:768px){.measurement-breakdown-grid{gap:.75rem}.side-card-header{padding:.5rem .75rem;font-size:.9rem}.side-item{padding:.5rem .75rem}.side-item-name,.side-item-qty{font-size:.8125rem}}.sub-portal-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#1e3a5f,#0f2744)}.sub-portal-card{background:#fff;border-radius:16px;padding:40px;width:100%;max-width:420px;box-shadow:0 20px 60px #0000004d;text-align:center}.sub-portal-card h1{font-size:28px;color:#1f2937;margin:0 0 8px}.sub-portal-card h2{font-size:22px;color:#1f2937;margin:16px 0 8px}.sub-portal-subtitle{color:#6b7280;margin:0 0 24px;font-size:15px}.sub-portal-icon{width:64px;height:64px;margin:0 auto 16px;background:#f3f4f6;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#1e3a5f}.sub-portal-icon svg{width:32px;height:32px}.sub-portal-icon.success{background:#dcfce7;color:#16a34a}.sub-portal-icon.error{background:#fee2e2;color:#dc2626}.sub-portal-spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#1e3a5f;border-radius:50%;margin:0 auto 16px;animation:sub-portal-spin .8s linear infinite}@keyframes sub-portal-spin{to{transform:rotate(360deg)}}.sub-portal-form{text-align:left}.sub-portal-field{margin-bottom:20px}.sub-portal-field label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}.sub-portal-field input{width:100%;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;font-size:16px;transition:border-color .15s}.sub-portal-field input:focus{outline:none;border-color:#1e3a5f}.sub-portal-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .15s;border:none;width:100%}.sub-portal-btn.primary{background:#1e3a5f;color:#fff}.sub-portal-btn.primary:hover:not(:disabled){background:#2d4a6f}.sub-portal-btn.secondary{background:#f3f4f6;color:#374151}.sub-portal-btn.secondary:hover:not(:disabled){background:#e5e7eb}.sub-portal-btn.success{background:#16a34a;color:#fff}.sub-portal-btn.success:hover:not(:disabled){background:#15803d}.sub-portal-btn.warning{background:#f59e0b;color:#fff}.sub-portal-btn.warning:hover:not(:disabled){background:#d97706}.sub-portal-btn:disabled,.sub-portal-btn.disabled{opacity:.5;cursor:not-allowed}.sub-portal-btn-group{display:flex;gap:12px;margin-top:16px}.sub-portal-btn-group .sub-portal-btn{flex:1}.sub-portal-link{color:#1e3a5f;text-decoration:none;font-weight:500;display:inline-block;margin-top:16px;padding:0;background:none;border:none;cursor:pointer;font-size:14px}.sub-portal-link:hover{text-decoration:underline}.sub-portal-message{color:#374151;margin:16px 0;font-size:15px}.sub-portal-message strong{color:#1f2937}.sub-portal-hint{color:#9ca3af;font-size:13px;margin:8px 0 0}.sub-portal-error{color:#dc2626;font-size:14px;margin:12px 0}.sub-portal-dashboard{min-height:100vh;background:#f3f4f6;display:flex;flex-direction:column}.sub-portal-header{background:#1e3a5f;color:#fff;padding:16px 20px;position:sticky;top:0;z-index:100}.sub-portal-header-content{display:flex;justify-content:space-between;align-items:center;max-width:800px;margin:0 auto;gap:16px}.sub-portal-header-content .sub-portal-logo{height:120px;width:auto;object-fit:contain;border-radius:4px;flex-shrink:0}.sub-portal-user-info{flex:1}.sub-portal-user-info h1{font-size:20px;margin:0;font-weight:600}.sub-portal-user-info p{font-size:14px;opacity:.8;margin:4px 0 0}.sub-portal-logout{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer}.sub-portal-logout:hover{background:#fff3}.sub-portal-main{flex:1;padding:20px 20px 80px;max-width:800px;margin:0 auto;width:100%}.sub-portal-summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.sub-portal-summary-card{background:#fff;border-radius:12px;padding:16px;text-align:center;cursor:pointer;transition:transform .15s}.sub-portal-summary-card:hover{transform:translateY(-2px)}.sub-portal-summary-card .summary-label{font-size:12px;color:#6b7280;margin-bottom:4px}.sub-portal-summary-card .summary-value{font-size:18px;font-weight:700;color:#1f2937}.sub-portal-summary-card .summary-value.pending{color:#f59e0b}.sub-portal-summary-card .summary-value.paid{color:#16a34a}.sub-portal-section{background:#fff;border-radius:12px;padding:20px}.sub-portal-section h2{font-size:18px;color:#1f2937;margin:0 0 16px}.sub-portal-jobs-list{display:flex;flex-direction:column;gap:12px}.sub-portal-job-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:16px;cursor:pointer;position:relative;transition:border-color .15s,background .15s}.sub-portal-job-card:hover{border-color:#1e3a5f;background:#f3f4f6}.job-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.job-card-id{font-weight:600;color:#1e3a5f;font-size:14px}.job-card-unread{background:#dc2626;color:#fff;font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600}.job-card-client{font-size:16px;font-weight:500;color:#1f2937;margin-bottom:4px}.job-card-address{font-size:14px;color:#6b7280}.job-card-role{font-size:13px;color:#9ca3af;margin-top:8px}.job-card-schedule{font-size:12px;color:#6b7280;margin-top:8px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.schedule-label{font-weight:500}.schedule-week{background:#e0e7ff;color:#4338ca;padding:2px 8px;border-radius:4px;font-weight:500}.job-card-payment{margin-top:8px}.job-card-payment .payment-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}.job-card-payment .payment-badge.paid{background:#dcfce7;color:#16a34a}.job-card-payment .payment-badge.owed{background:#fef3c7;color:#b45309}.job-card-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:#9ca3af}.job-card-arrow svg{width:20px;height:20px}.sub-portal-status-badge{font-size:11px;padding:3px 8px;border-radius:4px;font-weight:600;text-transform:uppercase}.sub-portal-status-badge.status-assigned{background:#e5e7eb;color:#4b5563}.sub-portal-status-badge.status-started{background:#dbeafe;color:#1d4ed8}.sub-portal-status-badge.status-in-progress{background:#fef3c7;color:#b45309}.sub-portal-status-badge.status-completed{background:#dcfce7;color:#16a34a}.sub-portal-empty{text-align:center;padding:40px 20px;color:#6b7280}.sub-portal-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;display:flex;padding:8px 0;padding-bottom:max(8px,env(safe-area-inset-bottom))}.sub-portal-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:8px;background:none;border:none;cursor:pointer;color:#6b7280;font-size:12px;gap:4px}.sub-portal-nav-item svg{width:24px;height:24px}.sub-portal-nav-item.active{color:#1e3a5f}.sub-portal-job-view{min-height:100vh;background:#f3f4f6}.sub-portal-job-header{background:#1e3a5f;color:#fff;padding:16px 20px;display:flex;align-items:center;gap:16px}.sub-portal-logo{height:120px;width:auto;object-fit:contain;border-radius:4px}.sub-portal-back{display:flex;align-items:center;gap:4px;background:none;border:none;color:#fff;cursor:pointer;font-size:14px;padding:8px;margin:-8px}.sub-portal-back svg{width:20px;height:20px}.sub-portal-job-title h1{font-size:18px;margin:0}.sub-portal-job-title p{font-size:14px;opacity:.8;margin:2px 0 0}.sub-portal-job-status-section{background:#fff;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.status-current{display:flex;align-items:center;gap:8px}.status-label{color:#6b7280;font-size:14px}.status-value{font-weight:600;font-size:14px;padding:4px 12px;border-radius:6px}.status-value.status-assigned{background:#e5e7eb;color:#4b5563}.status-value.status-started{background:#dbeafe;color:#1d4ed8}.status-value.status-in-progress{background:#fef3c7;color:#b45309}.status-value.status-completed{background:#dcfce7;color:#16a34a}.status-actions{display:flex;gap:8px}.status-actions .sub-portal-btn{width:auto;padding:8px 16px;font-size:14px}.sub-portal-payment-section{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:16px;margin-bottom:16px}.sub-portal-payment-section h3{margin:0 0 12px;font-size:16px;color:#166534}.payment-summary{display:flex;flex-direction:column;gap:8px}.payment-row{display:flex;justify-content:space-between;font-size:15px;padding:4px 0}.payment-row .paid-amount{color:#16a34a;font-weight:600}.payment-row.amount-owed{background:#fef3c7;padding:8px 12px;border-radius:6px;font-weight:600;color:#b45309}.payment-row.paid-in-full{background:#dcfce7;padding:8px 12px;border-radius:6px;font-weight:600;color:#16a34a;justify-content:center}.payment-history{margin-top:16px;padding-top:12px;border-top:1px solid #86efac}.payment-history h4{margin:0 0 8px;font-size:14px;color:#374151}.payment-item{display:flex;align-items:center;gap:12px;padding:8px;background:#fff;border-radius:6px;margin-bottom:6px;font-size:14px}.payment-item .payment-amount{font-weight:600}.payment-item .payment-status{padding:2px 8px;border-radius:4px;font-size:12px;text-transform:capitalize}.payment-item .payment-status.paid{background:#dcfce7;color:#16a34a}.payment-item .payment-status.pending{background:#fef3c7;color:#b45309}.payment-item .payment-date{color:#6b7280;margin-left:auto}.sub-portal-tabs{display:flex;background:#1e3a5f;gap:2px}.sub-portal-tab{flex:1;padding:14px 16px;background:transparent;border:none;font-size:14px;font-weight:600;color:#fff;cursor:pointer;position:relative;transition:background .2s,color .2s}.sub-portal-tab:hover{background:#ffffff26}.sub-portal-tab.active{background:#f59e0b;color:#fff;font-weight:700}.sub-portal-tab.active:after{display:none}.sub-portal-tab-content{flex:1;overflow-y:auto}.sub-portal-details{padding:16px}.detail-section{background:#fff;border-radius:10px;padding:16px;margin-bottom:12px}.detail-section h3{font-size:14px;color:#6b7280;margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.detail-address{font-size:16px;color:#1f2937;line-height:1.5;margin:0 0 8px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-item{display:flex;flex-direction:column}.detail-label{font-size:12px;color:#6b7280}.detail-value{font-size:15px;font-weight:500;color:#1f2937}.detail-list{display:flex;flex-direction:column;gap:8px}.detail-list-item{font-size:14px;color:#374151}.detail-notes{font-size:14px;color:#374151;line-height:1.6;white-space:pre-wrap;margin:0}.detail-contact{font-size:14px;color:#374151;line-height:1.8;margin:0}.detail-contact a{color:#1e3a5f;text-decoration:none}.site-drawings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.site-drawing{position:relative}.site-drawing img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;cursor:pointer}.site-drawing-label{position:absolute;bottom:8px;left:8px;background:#000000b3;color:#fff;font-size:11px;padding:4px 8px;border-radius:4px;text-transform:capitalize}.site-drawing-annotations{margin-top:8px;padding:8px;background:#fef3c7;border-radius:6px;border:1px solid #fcd34d}.site-drawing-annotations .annotations-label{display:block;font-weight:600;color:#92400e;font-size:11px;margin-bottom:6px}.site-drawing-annotations .damage-tags{display:flex;flex-wrap:wrap;gap:4px}.site-drawing-annotations .damage-tag{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:10px;color:#fff;font-size:10px;font-weight:500;box-shadow:0 1px 2px #0000001a}.site-drawing-annotations .damage-tag .tag-icon{font-size:12px}.site-drawing-annotations .damage-tag .tag-label{white-space:nowrap}.site-drawing-annotations .damage-tag .severity-badge{padding:1px 4px;border-radius:3px;font-size:8px;text-transform:uppercase;background:#ffffff40;margin-left:3px}.site-drawing-annotations .damage-tag .severity-badge.high{background:#dc262666}.site-drawing-annotations .damage-tag .severity-badge.medium{background:#f59e0b66}.site-drawing-annotations .damage-tag .severity-badge.low{background:#22c55e66}.sub-portal-messages{display:flex;flex-direction:column;height:calc(100vh - 200px)}.messages-list{flex:1;padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.messages-empty{text-align:center;padding:40px 20px;color:#6b7280}.message-bubble{max-width:80%;padding:12px 16px;border-radius:16px}.message-bubble.sent{background:#1e3a5f;color:#fff;margin-left:auto;border-bottom-right-radius:4px}.message-bubble.received{background:#fff;color:#1f2937;border-bottom-left-radius:4px}.message-sender{font-size:12px;font-weight:500;margin-bottom:4px;opacity:.7}.message-content{font-size:15px;line-height:1.4;white-space:pre-wrap}.message-images{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.message-images img{width:80px;height:80px;object-fit:cover;border-radius:8px;cursor:pointer}.message-time{font-size:11px;opacity:.6;margin-top:4px;text-align:right}.messages-form{display:flex;flex-direction:column;gap:8px;padding:12px 16px;background:#fff;border-top:1px solid #e5e7eb}.message-image-previews{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:8px}.message-image-preview{position:relative;width:60px;height:60px}.message-image-preview img{width:100%;height:100%;object-fit:cover;border-radius:8px}.remove-image-btn{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#dc2626;color:#fff;border:none;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.message-input-row{display:flex;gap:8px;align-items:center}.message-attach-btn{width:44px;height:44px;border-radius:50%;background:#f3f4f6;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.message-attach-btn:hover{background:#e5e7eb}.message-attach-btn svg{width:20px;height:20px;color:#6b7280}.message-input-row input[type=text]{flex:1;padding:12px 16px;border:1px solid #e5e7eb;border-radius:24px;font-size:15px}.message-input-row input[type=text]:focus{outline:none;border-color:#1e3a5f}.message-input-row button{background:#1e3a5f;color:#fff;border:none;padding:12px 20px;border-radius:24px;font-weight:600;cursor:pointer;flex-shrink:0}.message-input-row button:disabled{opacity:.5;cursor:not-allowed}.sub-portal-photos{padding:16px}.photo-upload-section{background:#fff;border-radius:10px;padding:16px;margin-bottom:16px}.photo-upload-section h3{font-size:14px;color:#6b7280;margin:0 0 12px;text-transform:uppercase}.photo-upload-form{display:flex;flex-direction:column;gap:12px}.photo-upload-form select,.photo-upload-form input[type=text]{padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px}.hidden-input{display:none}.photo-upload-form label.sub-portal-btn{text-align:center;cursor:pointer}.photos-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.photos-empty{text-align:center;padding:40px 20px;color:#6b7280;grid-column:1 / -1}.photo-item{background:#fff;border-radius:10px;overflow:hidden}.photo-item img{width:100%;aspect-ratio:1;object-fit:cover;cursor:pointer}.photo-meta{padding:8px 12px;display:flex;flex-direction:column;gap:4px}.photo-type-badge{display:inline-block;font-size:10px;padding:2px 8px;border-radius:4px;font-weight:600;text-transform:uppercase;width:fit-content}.photo-type-badge.before{background:#dbeafe;color:#1d4ed8}.photo-type-badge.during{background:#fef3c7;color:#b45309}.photo-type-badge.after{background:#dcfce7;color:#16a34a}.photo-type-badge.issue{background:#fee2e2;color:#dc2626}.photo-desc{font-size:12px;color:#6b7280}.sub-portal-payments-view{min-height:100vh;background:#f3f4f6}.sub-portal-payments-header{background:#1e3a5f;color:#fff;padding:16px 20px;display:flex;align-items:center;gap:16px}.sub-portal-payments-header h1{font-size:18px;margin:0}.sub-portal-payments-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}.payment-summary-card{background:#fff;border-radius:12px;padding:20px;text-align:center}.payment-summary-card .summary-label{font-size:13px;color:#6b7280;margin-bottom:4px}.payment-summary-card .summary-value{font-size:24px;font-weight:700}.payment-summary-card.pending .summary-value{color:#f59e0b}.payment-summary-card.paid .summary-value{color:#16a34a}.sub-portal-payments-list{padding:0 16px 24px}.payments-table{display:flex;flex-direction:column;gap:12px}.payment-row{background:#fff;border-radius:10px;padding:16px}.payment-row-main{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.payment-project-id{font-weight:600;color:#1e3a5f;display:block}.payment-client{font-size:14px;color:#6b7280}.payment-amount{font-size:18px;font-weight:700;color:#1f2937}.payment-row-details{display:flex;flex-direction:column;gap:4px}.payment-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.sub-portal-payment-badge{font-size:11px;padding:3px 8px;border-radius:4px;font-weight:600}.sub-portal-payment-badge.payment-pending{background:#fef3c7;color:#b45309}.sub-portal-payment-badge.payment-paid{background:#dcfce7;color:#16a34a}.sub-portal-payment-badge.payment-cancelled{background:#fee2e2;color:#dc2626}.payment-date,.payment-method{color:#6b7280}.payment-notes{font-size:13px;color:#6b7280;font-style:italic}.job-info-header{background:#f0f9ff!important;border:1px solid #bae6fd}.job-info-header h3{display:none}.job-info-row{display:flex;justify-content:space-between;gap:16px}.job-info-item{display:flex;flex-direction:column;gap:4px}.job-info-item .info-label{font-size:11px;color:#0369a1;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.job-info-item .info-value{font-size:15px;font-weight:600;color:#0c4a6e}.maps-link{color:#0284c7;text-decoration:none;margin-left:6px;font-size:12px}.labor-table-wrapper{overflow-x:auto}.labor-table{width:100%;border-collapse:collapse;font-size:14px}.labor-table th,.labor-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e5e7eb}.labor-table th{font-weight:600;color:#374151;font-size:12px;text-transform:uppercase;letter-spacing:.3px}.labor-table td.number,.labor-table th:not(:first-child){text-align:right}.labor-table tbody tr:hover{background:#f9fafb}.labor-table tfoot tr{font-weight:600}.labor-table tfoot .subtotal{background:#f3f4f6;border-top:2px solid #e5e7eb}.labor-table tfoot .materials-row{background:#fef3c7;color:#92400e}.labor-table tfoot .grand-total{background:#1e3a5f;color:#fff;font-size:15px}.paint-summary-combined{display:flex;flex-direction:column;gap:12px}.paint-type-row{display:flex;align-items:flex-start;gap:12px;padding:12px;background:#f9fafb;border-radius:8px}.paint-type-label{font-weight:600;color:#374151;min-width:60px;font-size:14px}.paint-type-details{display:flex;flex-direction:column;gap:4px;flex:1}.paint-color{font-weight:600;color:#1f2937;font-size:15px}.paint-product{font-size:13px;color:#6b7280}.paint-gallons{font-size:13px;color:#0369a1;font-weight:500}.paint-totals{margin-top:8px;padding-top:12px;border-top:2px solid #e5e7eb}.paint-total-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px}.paint-total-row strong{color:#1f2937}.scope-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.scope-column h4{font-size:13px;color:#374151;margin:0 0 8px}.scope-column ul{margin:0;padding-left:20px;font-size:14px;color:#4b5563}.scope-column li{padding:4px 0}.colors-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.color-item{background:#f9fafb;border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:4px}.color-label{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.3px}.color-value{font-size:15px;font-weight:600;color:#1f2937}.color-product{font-size:12px;color:#6b7280}.special-instructions{background:#fff8e6!important;border:1px solid #f0d87a}.special-instructions h3{color:#92400e!important}.side-breakdown-section{background:#f8fafc!important}.sides-list{display:flex;flex-direction:column;gap:16px}.side-section{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.side-section-header{background:#1e3a5f;color:#fff;padding:12px 16px;font-weight:700;font-size:16px}.side-section-body{padding:12px 16px;display:flex;flex-direction:column;gap:8px}.side-item-row-wrapper{border-bottom:1px solid #f0f0f0}.side-item-row-wrapper:last-of-type{border-bottom:none}.side-item-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.side-item-row:last-child{border-bottom:none}.side-item-notes{font-size:13px;color:#6b7280;font-style:italic;padding:4px 0 8px 12px;border-left:3px solid #f59e0b;margin-left:8px;background:#fffbeb}.side-item-image{margin:8px 0 4px;display:inline-block}.side-item-image img{max-width:150px;max-height:100px;object-fit:cover;border-radius:4px;cursor:pointer;border:1px solid #e5e7eb;transition:opacity .2s;display:block}.side-item-image img:hover{opacity:.9;box-shadow:0 2px 8px #00000026}.side-item-name{font-size:14px;color:#374151}.side-item-hours{font-size:14px;font-weight:600;color:#1e3a5f}.side-total-row{margin-top:8px;padding-top:12px;border-top:2px solid #1e3a5f;border-bottom:none}.side-total-row .side-item-name{font-weight:700;color:#1e3a5f}.side-total-row .side-item-hours{font-size:16px;color:#f59e0b}@media(max-width:480px){.sub-portal-card{padding:32px 24px}.sub-portal-summary-cards{grid-template-columns:1fr}.sub-portal-job-status-section{flex-direction:column;align-items:stretch}.status-actions{flex-direction:column}.status-actions .sub-portal-btn{width:100%}.detail-grid,.site-drawings-grid,.photos-grid{grid-template-columns:1fr}.job-info-row{flex-direction:column;gap:12px}.scope-grid,.colors-grid{grid-template-columns:1fr}.labor-table{font-size:13px}.labor-table th,.labor-table td{padding:8px 10px}}:root{--primary-color: #2563eb;--primary-hover: #1d4ed8;--primary-light: #dbeafe;--primary-subtle: #eff6ff;--primary-gradient: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);--secondary-color: #3b82f6;--accent-color: #f59e0b;--accent-hover: #d97706;--accent-light: #fef3c7;--primary-text: #ffffff;--accent-text: #ffffff;--danger-color: #dc2626;--danger-hover: #b91c1c;--danger-light: #fef2f2;--success-color: #16a34a;--success-light: #f0fdf4;--warning-color: #d97706;--warning-light: #fef3c7;--text-color: #111827;--text-secondary: #374151;--text-light: #6b7280;--text-muted: #9ca3af;--border-color: #e5e7eb;--border-light: #f3f4f6;--bg-color: #f8fafc;--bg-white: #ffffff;--bg-hover: #f1f5f9;--bg-active: #e2e8f0;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .04);--shadow-focus: 0 0 0 3px rgba(37, 99, 235, .15);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--input-height: 40px;--input-height-touch: 48px;--input-height-large: 56px;--tap-target-min: 44px;--touch-spacing: 12px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;color:var(--text-color);background:var(--bg-color);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{margin:0;padding:0;max-width:none;text-align:left}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-color)}.app-with-sidebar{flex-direction:row}.sidebar{width:240px;min-width:240px;height:100vh;position:fixed;left:0;top:0;background:linear-gradient(180deg,#1e293b,#0f172a);color:#e2e8f0;display:flex;flex-direction:column;z-index:1000;transition:width var(--transition-base),min-width var(--transition-base),transform var(--transition-base)}.sidebar.collapsed{width:64px;min-width:64px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.125rem .5rem;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo{font-size:1.25rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden}.sidebar.collapsed .sidebar-logo{font-size:1rem}.sidebar-logo-img{height:70px;max-width:220px;object-fit:contain;transition:all .2s ease}.sidebar-logo-img.collapsed{max-width:50px;max-height:50px}.sidebar-toggle{background:#ffffff1a;border:none;color:#94a3b8;width:28px;height:28px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.sidebar-toggle:hover{background:#fff3;color:#fff}.sidebar.collapsed .sidebar-toggle{margin:0 auto}.sidebar-nav{flex:1;overflow-y:auto;padding:.25rem .5rem}.nav-group{margin-bottom:.125rem}.nav-group-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.375rem .75rem;background:none;border:none;color:#64748b;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:color var(--transition-fast)}.nav-group-header:hover,.nav-group.active .nav-group-header{color:#94a3b8}.nav-group-arrow{transition:transform var(--transition-fast);font-size:.6rem}.nav-group-arrow.expanded{transform:rotate(90deg)}.nav-group-items{display:flex;flex-direction:column;gap:2px;padding-left:0}.sidebar.collapsed .nav-group-items{padding-left:0}.nav-item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .75rem;background:none;border:none;border-radius:6px;color:#cbd5e1;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:left}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:var(--primary-gradient);color:#fff}.nav-item.standalone{margin-bottom:.125rem}.nav-icon{font-size:1rem;width:22px;text-align:center;flex-shrink:0}.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar.collapsed .nav-item{justify-content:center;padding:.75rem}.sidebar.collapsed .nav-group-header{justify-content:center;padding:.5rem}.sidebar-footer{padding:.625rem .75rem;border-top:1px solid rgba(255,255,255,.1)}.sidebar-version{font-size:.6875rem;color:#64748b;text-align:center}.sidebar-user{font-size:.75rem;color:#94a3b8;padding:.375rem 0;text-align:center;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.375rem}.sidebar-logout{width:100%;padding:.5rem .75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#fca5a5;font-size:.8125rem;cursor:pointer;transition:all .2s ease;margin-bottom:.25rem}.sidebar-logout:hover{background:#ef444433;border-color:#ef444480;color:#fecaca}.sidebar.collapsed .sidebar-logout{padding:.5rem;font-size:.9rem}.main-content{flex:1;margin-left:240px;min-height:100vh;display:flex;flex-direction:column;transition:margin-left var(--transition-base)}.sidebar.collapsed~.main-content{margin-left:64px}.main-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--border-color);padding:.75rem 1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:var(--shadow-xs)}.mobile-menu-btn{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.25rem;color:var(--text-color)}.header-title{font-size:1.125rem;font-weight:600;color:var(--text-color);margin:0;white-space:nowrap}.main-header .header-search{flex:1;max-width:400px;position:relative}.main-header .search-input{width:100%;padding:.5rem 2rem .5rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.main-header .search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.main-header .header-search.error .search-input{border-color:var(--danger-color);background:#fef2f2;animation:shake .3s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.quick-jump-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-white);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 12px #00000026;margin-top:4px;z-index:1000;overflow:hidden}.quick-jump-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem .75rem;background:none;border:none;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.quick-jump-item:hover,.quick-jump-item.selected{background:var(--bg-hover)}.quick-jump-item .qj-project-id{font-size:.75rem;font-weight:600;color:var(--primary-color);min-width:90px}.quick-jump-item .qj-client{font-size:.8125rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-header .search-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:.25rem}.main-header .header-buttons{display:flex;align-items:center;gap:.75rem;margin-left:auto}.header-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.header-btn.btn-primary{background:linear-gradient(135deg,var(--accent-color) 0%,color-mix(in srgb,var(--accent-color) 80%,#000) 100%);color:#fff;border:none;box-shadow:0 2px 8px #00000026,inset 0 1px #ffffff26}.header-btn.btn-primary:hover{background:linear-gradient(135deg,var(--accent-hover) 0%,color-mix(in srgb,var(--accent-hover) 80%,#000) 100%);transform:translateY(-1px);box-shadow:0 4px 12px #0003,inset 0 1px #fff3}.header-btn.btn-primary:active{transform:translateY(0);box-shadow:0 1px 4px #00000026,inset 0 1px #ffffff1a}.header-btn.btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb;box-shadow:0 1px 2px #0000000d}.header-btn.btn-secondary:hover{background:#e5e7eb;border-color:#d1d5db;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.header-btn.btn-secondary:active{transform:translateY(0);background:#d1d5db}.header-btn .btn-icon{font-size:1rem;line-height:1}.btn-icon{font-size:1.125rem;line-height:1}.main-area{flex:1;overflow-y:auto}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;z-index:999}@media(max-width:1024px){.sidebar{transform:translate(-100%)}.sidebar.collapsed{width:240px;min-width:240px}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block}.main-content{margin-left:0}.sidebar.collapsed~.main-content{margin-left:0}.mobile-menu-btn{display:block}.header-title{font-size:1rem}.header-btn .btn-text{display:none}.header-btn{padding:.5rem}.btn-icon{font-size:1.25rem}}@media(max-width:640px){.main-header{padding:.5rem 1rem}.main-header .header-search{display:none}.header-title{font-size:.9rem}.save-status{display:none}}.app-header{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);box-shadow:0 2px 4px #0000001a;color:#fff;padding:.875rem var(--space-xl);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-md);position:sticky;top:0;z-index:100}.app-header h1{font-size:1.125rem;font-weight:700;letter-spacing:-.02em;color:#fff}.header-nav{display:flex;gap:.25rem;background:#ffffff1a;padding:.25rem;border-radius:var(--radius-md)}.nav-btn{background:transparent;border:none;color:#ffffffb3;padding:.5rem 1rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;font-weight:500;transition:all var(--transition-fast)}.nav-btn:hover{background:#ffffff1a;color:#fff}.nav-btn.active{background:#fff;color:var(--primary-color)}.app-content{display:flex;flex:1;overflow:hidden;align-items:stretch}.content-sidebar{width:280px;min-width:280px;background:linear-gradient(to bottom,#f8fafc,#f1f5f9);border-right:1px solid #e2e8f0;overflow-y:auto;display:flex;flex-direction:column;transition:all var(--transition-base);color:var(--text-color)}.content-sidebar.hidden{width:0;min-width:0;border-right:none;overflow:hidden;padding:0}.panel-toggle{z-index:50;width:24px;height:48px;background:var(--bg-white);border:1px solid var(--border-color);cursor:pointer;display:none;align-items:center;justify-content:center;font-size:.75rem;color:var(--text-muted);transition:all var(--transition-fast);flex-shrink:0}.panel-toggle:hover{background:var(--primary-subtle);color:var(--primary-color);border-color:var(--primary-color)}.panel-toggle-sidebar{background:var(--primary-color);color:#fff;border-color:var(--primary-color);position:relative;border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none;margin-left:-1px;align-self:flex-start;margin-top:var(--space-lg)}.panel-toggle-sidebar:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.panel-toggle-pricing{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:none;align-self:flex-start;margin-top:var(--space-lg);background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.panel-toggle-pricing:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.content-main{flex:1;padding:var(--space-lg) var(--space-xl);overflow-y:auto;background:var(--bg-color)}.btn-primary{background:var(--primary-color);color:#fff;border:none;padding:.625rem 1.25rem;border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;font-weight:500;transition:all var(--transition-fast);box-shadow:var(--shadow-xs)}.btn-primary:hover{background:var(--primary-hover);box-shadow:var(--shadow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-xs)}.btn-primary:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn-primary:disabled{background:var(--text-muted);cursor:not-allowed;transform:none;box-shadow:none}.btn-large{padding:.75rem 1.5rem;font-size:1rem}.btn-primary .btn-spinner,.btn-large .btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;display:inline-block;margin-right:.5rem;vertical-align:middle}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.btn-icon{background:transparent;border:none;cursor:pointer;padding:.5rem;border-radius:var(--radius-md);font-size:1.125rem;color:var(--text-light);transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px}.btn-icon:hover{background:var(--bg-hover);color:var(--text-color)}.btn-icon:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn-danger{color:var(--danger-color)}.btn-danger:hover{background:#fef2f2;color:var(--danger-hover)}.btn-save{color:var(--success-color)}.btn-save:hover{background:#f0fdf4;color:#15803d}.btn-cancel{color:var(--text-light)}.btn-cancel:hover{background:var(--bg-color);color:var(--text-color)}.estimates-list{flex:1;display:flex;flex-direction:column;overflow:hidden}.estimates-list h3{font-size:.75rem;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-sm);letter-spacing:.08em;font-weight:600}.estimates-list .empty-state{padding:2rem 1.5rem;text-align:center;color:var(--text-muted);font-size:.875rem}.estimates-dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem var(--space-md);background:linear-gradient(to right,#e0e7ff,#eff6ff);border-bottom:1px solid #c7d2fe;cursor:pointer;-webkit-user-select:none;user-select:none}.estimates-dashboard-header:hover{background:linear-gradient(to right,#c7d2fe,#dbeafe)}.estimates-dashboard-header h3{font-size:.75rem;text-transform:uppercase;color:#1e40af;margin:0;letter-spacing:.08em;font-weight:600}.estimates-dashboard{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-color);background:var(--bg-color)}.dashboard-row{display:flex;justify-content:center;margin-bottom:var(--space-sm)}.dashboard-row .stat-card{min-width:80px}.dashboard-phase{margin-bottom:var(--space-sm)}.dashboard-phase:last-child{margin-bottom:0}.phase-header{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem;padding-left:.25rem}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(45px,1fr));gap:.25rem}.stat-card{display:flex;flex-direction:column;align-items:center;padding:.5rem .25rem;border-radius:var(--radius-sm);background:transparent;transition:all var(--transition-fast);border:1px solid transparent}.stat-value{font-size:1.125rem;font-weight:700;line-height:1.2}.stat-label{font-size:.5625rem;text-transform:uppercase;color:var(--text-muted);letter-spacing:.03em;font-weight:600;margin-top:1px}.stat-total .stat-value{color:var(--text-color)}.stat-draft .stat-value{color:#6b7280}.stat-estimate-sent .stat-value{color:#1d4ed8}.stat-estimate-viewed .stat-value{color:#0369a1}.stat-on-hold .stat-value{color:#854d0e}.stat-accepted .stat-value{color:#16a34a}.stat-declined .stat-value{color:#dc2626}.stat-invoice-sent .stat-value,.stat-invoice-viewed .stat-value{color:#7c3aed}.stat-partial-paid .stat-value{color:#c2410c}.stat-paid .stat-value{color:#d97706}.stat-card.clickable{cursor:pointer}.stat-card.clickable:hover{background:var(--bg-white)}.stat-card.active{background:var(--bg-white);border-color:currentColor}.stat-card.stat-draft.active{border-color:#6b7280}.stat-card.stat-estimate-sent.active{border-color:#1d4ed8}.stat-card.stat-estimate-viewed.active{border-color:#0369a1}.stat-card.stat-on-hold.active{border-color:#854d0e}.stat-card.stat-accepted.active{border-color:#16a34a}.stat-card.stat-declined.active{border-color:#dc2626}.stat-card.stat-invoice-sent.active,.stat-card.stat-invoice-viewed.active{border-color:#7c3aed}.stat-card.stat-partial-paid.active{border-color:#c2410c}.stat-card.stat-paid.active{border-color:#d97706}.collapse-icon{font-size:.625rem;color:currentColor;opacity:.6;transition:transform .2s ease}.collapse-icon.expanded{transform:rotate(0)}.collapse-icon:not(.expanded){transform:rotate(-90deg)}.group-header:hover .collapse-icon{opacity:1}.estimates-groups{display:flex;flex-direction:column;gap:.125rem;flex:1;overflow-y:auto;padding:.5rem 0;padding:0 var(--space-sm)}.estimate-group{border:none;overflow:hidden;background:transparent;margin-bottom:.25rem}.group-header{display:flex;justify-content:space-between;align-items:center;padding:.625rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;transition:all .15s ease;background:transparent;border-left:3px solid transparent;margin:0 .25rem;border-radius:0 6px 6px 0}.group-header:hover{background:#00000008}.group-header.status-draft{border-left-color:#9ca3af;color:#4b5563}.group-header.status-estimate-sent{border-left-color:#3b82f6;color:#1e40af}.group-header.status-invoice-sent{border-left-color:#8b5cf6;color:#5b21b6}.group-header.status-accepted{border-left-color:#22c55e;color:#166534}.group-header.status-paid{border-left-color:#f59e0b;color:#92400e}.group-header.status-estimate-viewed{border-left-color:#06b6d4;color:#0369a1}.group-header.status-on-hold{border-left-color:#eab308;color:#854d0e}.group-header.status-declined{border-left-color:#ef4444;color:#dc2626}.group-header.status-invoice-viewed{border-left-color:#a855f7;color:#7c3aed}.group-header.status-partial-paid{border-left-color:#f97316;color:#c2410c}.group-title{display:flex;align-items:center;gap:.5rem}.group-count{background:#00000014;padding:.125rem .5rem;border-radius:9999px;font-size:.625rem;font-weight:700}.estimate-group ul{list-style:none;margin:0;padding:.25rem .5rem .5rem 1.25rem}.estimates-list ul{list-style:none}.estimates-list li{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-radius:8px;cursor:pointer;transition:all .15s ease;margin-bottom:2px;background:transparent;position:relative}.estimates-list li:hover{background:#f3f4f6}.estimates-list li.selected{background:var(--primary-light, #eff6ff)}.estimates-list li.selected:hover{background:#dbeafe}.estimate-info{display:flex;flex-direction:column;gap:.25rem;min-width:0;flex:1}.estimate-info .estimate-header{display:flex;align-items:center;gap:.375rem}.estimate-info strong{font-size:.8125rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-color);letter-spacing:-.01em}.estimates-list li.selected .estimate-info strong{color:var(--primary-color)}.estimate-info .project-id{font-size:.6875rem;color:var(--text-muted);font-weight:500;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;letter-spacing:.02em}.estimate-info .date{font-size:.6875rem;color:var(--text-muted)}.estimates-list li .btn-icon.btn-danger{opacity:0;width:24px;height:24px;min-width:24px;padding:0;font-size:.75rem;color:#9ca3af;background:transparent;border-radius:6px;transition:all .15s ease}.estimates-list li:hover .btn-icon.btn-danger{opacity:1}.estimates-list li .btn-icon.btn-danger:hover{background:#fee2e2;color:#ef4444}.status-badge{font-size:.6rem;font-weight:700;padding:.1875rem .5rem;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.status-draft{background-color:#f3f4f6;color:#4b5563}.status-estimate-sent{background-color:var(--primary-light);color:#1e40af}.status-invoice-sent{background-color:#ede9fe;color:#5b21b6}.status-accepted{background-color:var(--success-light);color:#15803d}.status-paid{background-color:var(--warning-light);color:#b45309}.status-estimate-viewed{background-color:#e0f2fe;color:#0369a1}.status-on-hold{background-color:#fef9c3;color:#854d0e}.status-declined{background-color:#fee2e2;color:#dc2626}.status-invoice-viewed{background-color:#f3e8ff;color:#7c3aed}.status-partial-paid{background-color:#ffedd5;color:#c2410c}.dashboard-page{flex:1;padding:var(--space-xl);overflow-y:auto;background:var(--bg-color)}.dashboard-header{margin-bottom:var(--space-xl)}.dashboard-header h1{font-size:1.75rem;font-weight:700;color:var(--text-color);margin-bottom:var(--space-md)}.dashboard-summary{display:flex;gap:var(--space-lg)}.summary-stat{display:flex;flex-direction:column;align-items:center;padding:var(--space-md) var(--space-lg);background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:120px}.summary-stat .summary-value{font-size:2rem;font-weight:700;color:var(--text-color)}.summary-stat .summary-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.summary-stat.estimate-phase .summary-value{color:var(--primary-color)}.summary-stat.invoice-phase .summary-value{color:#7c3aed}.dashboard-section{margin-bottom:var(--space-xl)}.dashboard-section h2{font-size:1.125rem;font-weight:600;color:var(--text-color);margin-bottom:.25rem}.dashboard-section .section-description{font-size:.875rem;color:var(--text-muted);margin-bottom:var(--space-md)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md)}.dashboard-card{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;border-left:4px solid transparent}.dashboard-card .card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);cursor:pointer;transition:background var(--transition-fast)}.dashboard-card .card-header:hover{background:var(--bg-hover)}.dashboard-card .card-header h3{font-size:.875rem;font-weight:600;margin:0}.dashboard-card .card-count{font-size:1.25rem;font-weight:700}.dashboard-card .card-body{padding:0 var(--space-md) var(--space-md)}.dashboard-card .no-items{color:var(--text-muted);font-size:.8125rem;font-style:italic}.dashboard-card .card-list{list-style:none;padding:0;margin:0}.dashboard-card .card-list li{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background var(--transition-fast)}.dashboard-card .card-list li:last-child{border-bottom:none}.dashboard-card .card-list li:hover{background:var(--bg-hover);margin:0 -.5rem;padding-left:.5rem;padding-right:.5rem}.dashboard-card .item-main{display:flex;flex-direction:column;gap:.125rem}.dashboard-card .item-main strong{font-size:.8125rem;font-weight:500}.dashboard-card .item-id,.dashboard-card .item-date{font-size:.6875rem;color:var(--text-muted)}.dashboard-card .view-more{font-size:.8125rem;color:var(--primary-color);font-weight:500;border-bottom:none!important}.status-card-draft{border-left-color:#6b7280}.status-card-draft .card-count{color:#6b7280}.status-card-estimate-sent{border-left-color:#1d4ed8}.status-card-estimate-sent .card-count{color:#1d4ed8}.status-card-estimate-viewed{border-left-color:#0369a1}.status-card-estimate-viewed .card-count{color:#0369a1}.status-card-on-hold{border-left-color:#854d0e}.status-card-on-hold .card-count{color:#854d0e}.status-card-accepted{border-left-color:#16a34a}.status-card-accepted .card-count{color:#16a34a}.status-card-declined{border-left-color:#dc2626}.status-card-declined .card-count{color:#dc2626}.status-card-invoice-sent{border-left-color:#7c3aed}.status-card-invoice-sent .card-count{color:#7c3aed}.status-card-invoice-viewed{border-left-color:#7c3aed}.status-card-invoice-viewed .card-count{color:#7c3aed}.status-card-partial-paid{border-left-color:#c2410c}.status-card-partial-paid .card-count{color:#c2410c}.status-card-paid{border-left-color:#d97706}.status-card-paid .card-count{color:#d97706}.phase-section{margin-bottom:2rem;background:var(--bg-white);border-radius:16px;box-shadow:0 1px 3px #0000000d,0 4px 12px #00000008;overflow:hidden}.phase-section-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.estimate-phase-section .phase-section-header{background:linear-gradient(135deg,#eff6ff,#f8fafc);border-bottom-color:#dbeafe}.invoice-phase-section .phase-section-header{background:linear-gradient(135deg,#faf5ff,#f8fafc);border-bottom-color:#e9d5ff}.phase-section-title{display:flex;align-items:center;gap:1rem}.phase-section-icon{font-size:1.75rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:12px}.estimate-phase-section .phase-section-icon{background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 4px 12px #3b82f64d}.invoice-phase-section .phase-section-icon{background:linear-gradient(135deg,#8b5cf6,#6d28d9);box-shadow:0 4px 12px #8b5cf64d}.phase-section-title h2{font-size:1.125rem;font-weight:700;color:var(--text-color);margin:0 0 .125rem}.phase-section-desc{font-size:.8125rem;color:var(--text-muted);margin:0}.phase-section-count{font-size:.875rem;font-weight:600;color:var(--text-muted);background:var(--bg-hover);padding:.375rem .875rem;border-radius:20px}.phase-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;padding:1.25rem}@media(min-width:1200px){.phase-cards-grid{grid-template-columns:repeat(6,1fr)}}@media(min-width:769px)and (max-width:1199px){.phase-cards-grid{grid-template-columns:repeat(3,1fr);gap:1rem}.phase-section-header{padding:1rem 1.25rem}.phase-section-icon{width:44px;height:44px;font-size:1.5rem}.phase-section-title h2{font-size:1rem}}@media(max-width:768px){.phase-cards-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:1rem}.phase-section-header{flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem}.phase-section-count{align-self:flex-start}.phase-card-header{padding:.875rem}.phase-card-body{padding:.625rem .875rem .875rem}.phase-card-title h3{font-size:.6875rem}.phase-card-count{font-size:1.25rem}}@media(max-width:480px){.phase-cards-grid{grid-template-columns:1fr}.phase-section-title{flex-direction:column;align-items:flex-start;gap:.5rem}}.phase-card{background:var(--bg-white);border-radius:12px;border:1px solid var(--border-color);overflow:hidden;transition:all .2s ease;display:flex;flex-direction:column;min-height:140px}.phase-card:hover{border-color:transparent;box-shadow:0 4px 20px #00000014;transform:translateY(-2px)}@media(hover:none){.phase-card:hover{transform:none}.phase-card:active{transform:scale(.98);box-shadow:0 2px 8px #0000001a}}.phase-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem;cursor:pointer;transition:background .15s ease;border-bottom:1px solid var(--border-color)}.phase-card-header:hover{background:var(--bg-hover)}.phase-card-title{display:flex;align-items:center;gap:.5rem}.phase-card-icon{font-size:1rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0}.phase-card-title h3{font-size:.75rem;font-weight:600;margin:0;color:var(--text-color);line-height:1.3}.phase-card-count{font-size:1.5rem;font-weight:700;line-height:1;min-width:28px;text-align:right}.phase-card-body{padding:.75rem 1rem 1rem;flex:1;display:flex;flex-direction:column}.phase-card-empty{color:var(--text-muted);font-size:.75rem;font-style:italic;margin:0;padding:.5rem 0}.phase-card-list{list-style:none;padding:0;margin:0 0 .75rem;flex:1}.phase-card-list li{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-color);cursor:pointer;transition:all .15s ease;font-size:.75rem}.phase-card-list li:last-child{border-bottom:none}.phase-card-list li:hover{background:var(--bg-hover);margin:0 -.5rem;padding-left:.5rem;padding-right:.5rem;border-radius:6px}.phase-item-info{display:flex;flex-direction:column;gap:.125rem;min-width:0;flex:1}.phase-item-name{font-weight:500;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phase-item-id{font-size:.6875rem;color:var(--text-muted)}.phase-item-date{font-size:.6875rem;color:var(--text-muted);flex-shrink:0;margin-left:.5rem}.phase-card-action{width:100%;padding:.5rem;background:var(--bg-hover);border:none;border-radius:6px;font-size:.75rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .15s ease;margin-top:auto}.phase-card-action:hover{background:var(--primary-color);color:#fff}.phase-card-draft .phase-card-icon{background:#f3f4f6;color:#6b7280}.phase-card-draft .phase-card-count{color:#6b7280}.phase-card-draft:hover{border-color:#d1d5db}.phase-card-estimate-sent .phase-card-icon{background:#dbeafe;color:#1d4ed8}.phase-card-estimate-sent .phase-card-count{color:#1d4ed8}.phase-card-estimate-sent:hover{border-color:#93c5fd}.phase-card-estimate-viewed .phase-card-icon{background:#e0f2fe;color:#0369a1}.phase-card-estimate-viewed .phase-card-count{color:#0369a1}.phase-card-estimate-viewed:hover{border-color:#7dd3fc}.phase-card-on-hold .phase-card-icon{background:#fef9c3;color:#854d0e}.phase-card-on-hold .phase-card-count{color:#854d0e}.phase-card-on-hold:hover{border-color:#fde047}.phase-card-accepted .phase-card-icon{background:#dcfce7;color:#16a34a}.phase-card-accepted .phase-card-count{color:#16a34a}.phase-card-accepted:hover{border-color:#86efac}.phase-card-declined .phase-card-icon{background:#fee2e2;color:#dc2626}.phase-card-declined .phase-card-count{color:#dc2626}.phase-card-declined:hover{border-color:#fca5a5}.phase-card-invoice-sent .phase-card-icon{background:#ede9fe;color:#7c3aed}.phase-card-invoice-sent .phase-card-count{color:#7c3aed}.phase-card-invoice-sent:hover{border-color:#c4b5fd}.phase-card-invoice-viewed .phase-card-icon{background:#f3e8ff;color:#9333ea}.phase-card-invoice-viewed .phase-card-count{color:#9333ea}.phase-card-invoice-viewed:hover{border-color:#d8b4fe}.phase-card-partial-paid .phase-card-icon{background:#ffedd5;color:#c2410c}.phase-card-partial-paid .phase-card-count{color:#c2410c}.phase-card-partial-paid:hover{border-color:#fdba74}.phase-card-paid .phase-card-icon{background:#d1fae5;color:#059669}.phase-card-paid .phase-card-count{color:#059669}.phase-card-paid:hover{border-color:#6ee7b7}.ceo-dashboard{padding:var(--space-lg);max-width:1400px;margin:0 auto}.ceo-dashboard.loading,.ceo-dashboard.error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--space-md)}.ceo-dashboard .loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.ceo-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.ceo-header h1{font-size:1.75rem;font-weight:700;color:var(--text-color);margin:0}.ceo-date{font-size:.875rem;color:var(--text-muted)}.kpi-section{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-bottom:var(--space-lg)}.kpi-card{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs);transition:box-shadow .2s,border-color .2s}.kpi-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-color)}.kpi-card.alert{border-color:var(--danger-color);background:#fef2f2}.kpi-card.alert .kpi-value{color:var(--danger-color)}.kpi-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.kpi-value{font-size:1.75rem;font-weight:700;color:var(--text-color)}.kpi-detail{font-size:.8125rem;color:var(--text-muted)}.kpi-detail.positive{color:var(--success-color)}.kpi-detail.negative{color:var(--danger-color)}.pipeline-section{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.pipeline-section h2{font-size:1rem;font-weight:600;color:var(--text-color);margin:0 0 var(--space-md) 0}.pipeline-flow{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.pipeline-stage{flex:1;display:flex;flex-direction:column;align-items:center;padding:var(--space-md);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;transition:background .2s,transform .2s}.pipeline-stage:hover{background:var(--primary-light);transform:translateY(-2px)}.pipeline-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--space-xs)}.pipeline-count{font-size:1.5rem;font-weight:700;color:var(--text-color)}.pipeline-value{font-size:.875rem;color:var(--primary-color);font-weight:600}.pipeline-arrow{font-size:1.25rem;color:var(--text-muted);flex-shrink:0}.funnel-section{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.funnel-section h2{font-size:1rem;font-weight:600;color:var(--text-color);margin:0;display:inline-block}.funnel-period{font-size:.75rem;color:var(--text-muted);margin-left:var(--space-sm)}.funnel-bars{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md)}.funnel-row{display:grid;grid-template-columns:100px 1fr 50px 80px;align-items:center;gap:var(--space-sm)}.funnel-label{font-size:.8125rem;font-weight:600;color:var(--text-muted)}.funnel-bar-container{height:24px;background:var(--bg-secondary);border-radius:var(--radius-sm);overflow:hidden}.funnel-bar-fill{height:100%;border-radius:var(--radius-sm);transition:width .3s ease}.funnel-rate{font-size:1rem;font-weight:700;color:var(--text-color);text-align:right}.funnel-detail{font-size:.75rem;color:var(--text-muted);text-align:right}.ceo-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-lg)}.attention-section{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg)}.attention-section h2{font-size:1rem;font-weight:600;color:var(--text-color);margin:0 0 var(--space-md) 0}.attention-empty{color:var(--success-color);font-size:.875rem;padding:var(--space-md);text-align:center;background:#f0fdf4;border-radius:var(--radius-md)}.attention-list{display:flex;flex-direction:column;gap:var(--space-sm)}.attention-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:background .2s}.attention-item:hover{background:var(--bg-secondary)}.attention-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.attention-icon.severity-error{background:#fee2e2;color:var(--danger-color)}.attention-icon.severity-warning{background:#fef3c7;color:#b45309}.attention-icon.severity-info{background:#dbeafe;color:var(--primary-color)}.attention-message{font-size:.875rem;color:var(--text-color)}.capacity-section{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg)}.capacity-section h2{font-size:1rem;font-weight:600;color:var(--text-color);margin:0 0 var(--space-md) 0}.capacity-bars{display:flex;flex-direction:column;gap:var(--space-sm)}.capacity-week{display:flex;align-items:center;gap:var(--space-sm)}.capacity-week-label{font-size:.75rem;font-weight:600;color:var(--text-muted);width:30px}.capacity-bar-container{flex:1;height:20px;background:var(--bg-secondary);border-radius:var(--radius-sm);overflow:hidden}.capacity-bar-fill{height:100%;border-radius:var(--radius-sm);transition:width .3s ease}.capacity-week-pct{font-size:.75rem;font-weight:600;color:var(--text-muted);width:40px;text-align:right}.capacity-summary{font-size:.8125rem;color:var(--text-muted);margin-top:var(--space-md);text-align:center}.weekly-section{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg)}.weekly-section h2{font-size:1rem;font-weight:600;color:var(--text-color);margin:0 0 var(--space-md) 0}.weekly-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.weekly-stat{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);padding:var(--space-sm);border-radius:var(--radius-md);background:var(--bg-secondary)}.weekly-icon{font-size:1rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%}.weekly-stat.won .weekly-icon{background:#dcfce7;color:var(--success-color)}.weekly-stat.lost .weekly-icon{background:#fee2e2;color:var(--danger-color)}.weekly-stat.sent .weekly-icon{background:#dbeafe;color:var(--primary-color)}.weekly-stat.completed .weekly-icon{background:#d1fae5;color:#059669}.weekly-label{font-size:.8125rem;font-weight:600;color:var(--text-muted);flex:1}.weekly-count{font-size:1.25rem;font-weight:700;color:var(--text-color)}.weekly-value{font-size:.75rem;color:var(--text-muted);width:100%;text-align:right}.trends-section{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg)}.trends-section h2{font-size:1rem;font-weight:600;color:var(--text-color);margin:0 0 var(--space-md) 0}.trends-grid{display:flex;flex-direction:column;gap:var(--space-md)}.trend-item{display:flex;flex-direction:column;gap:var(--space-xs)}.trend-header{display:flex;justify-content:space-between;align-items:center}.trend-label{font-size:.8125rem;font-weight:600;color:var(--text-muted)}.trend-value{font-size:.875rem;font-weight:600;color:var(--text-color)}.trend-change{font-size:.75rem;font-weight:600}.trend-change.positive{color:var(--success-color)}.trend-change.negative{color:var(--danger-color)}.sparkline{width:100%;height:24px}@media(max-width:1200px){.kpi-section{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.kpi-section{grid-template-columns:repeat(2,1fr)}.ceo-columns{grid-template-columns:1fr}.pipeline-flow{flex-wrap:wrap;justify-content:center}.pipeline-arrow{display:none}.pipeline-stage{min-width:120px}.funnel-row{grid-template-columns:80px 1fr 45px 70px}}@media(max-width:600px){.ceo-dashboard{padding:var(--space-md)}.kpi-section{grid-template-columns:1fr}.kpi-card{padding:var(--space-md)}.kpi-value{font-size:1.5rem}.weekly-stats{grid-template-columns:1fr}.funnel-row{grid-template-columns:70px 1fr 40px}.funnel-detail{display:none}}.estimates-list-header{display:flex;align-items:center;padding:1rem 1.25rem;background:linear-gradient(to bottom,#fff,#f9fafb);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:5}.estimates-list-header h3{font-size:.9375rem;font-weight:700;color:var(--text-color);margin:0;letter-spacing:-.01em}.estimates-count{background:var(--primary-color);color:#fff;font-size:.6875rem;font-weight:600;padding:.1875rem .625rem;border-radius:var(--radius-full);margin-right:auto;margin-left:.625rem}.btn-new-estimate{width:28px;height:28px;border-radius:6px;border:none;background:var(--primary-color);color:#fff;font-size:1.25rem;font-weight:500;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.btn-new-estimate:hover:not(:disabled){background:var(--primary-dark, #1d4ed8);transform:scale(1.05)}.btn-new-estimate:disabled{opacity:.7;cursor:not-allowed}.btn-new-estimate.loading{pointer-events:none}.btn-new-estimate .btn-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.filter-badge{display:flex;justify-content:space-between;align-items:center;padding:.5rem var(--space-md);background:var(--primary-light);border-bottom:1px solid var(--border-color);font-size:.75rem;color:var(--primary-color)}.filter-badge .clear-filter{background:transparent;border:none;color:var(--primary-color);cursor:pointer;font-size:.875rem;padding:.25rem;line-height:1}.filter-badge .clear-filter:hover{color:var(--danger-color)}.invoice-content{flex:1;overflow-y:auto;padding:var(--space-md)}.invoice-content .pricing-summary{height:100%}.empty-state,.empty-state-main{text-align:center;color:var(--text-light);padding:var(--space-xl)}.empty-state-main{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;max-width:400px;margin:0 auto}.empty-state-main h2{margin-bottom:var(--space-sm);color:var(--text-color);font-size:1.375rem;font-weight:600}.empty-state-main p{margin-bottom:var(--space-lg);color:var(--text-muted)}.loading-screen,.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:1rem}.error-screen h2{color:var(--danger-color)}.error-screen code{background:var(--bg-color);padding:.5rem 1rem;border-radius:4px;font-family:monospace}.estimate-header{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.estimate-header .estimate-title{display:flex;align-items:center;gap:var(--space-sm)}.estimate-header h2{display:flex;align-items:center;gap:var(--space-sm);margin:0;font-size:1.25rem;font-weight:600;color:var(--text-color)}.estimate-header .project-id{font-size:.75rem;font-weight:600;color:var(--text-muted);background:var(--bg-color);padding:.25rem .5rem;border-radius:var(--radius-sm);font-family:monospace}.estimate-header .status-badge{font-size:.625rem;padding:.25rem .625rem}.decline-reason{font-size:.75rem;color:var(--danger-color);background:var(--danger-light);padding:.25rem .75rem;border-radius:var(--radius-md);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal{background:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 25px -5px #0000001a;max-height:90vh;overflow-y:auto}.modal .modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-color)}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color);background:var(--bg-hover)}.decline-modal{max-width:500px;width:90%}.decline-modal .modal-body p{margin:0 0 1rem;font-size:.9375rem;color:var(--text-color)}.decline-modal .optional-label{color:var(--text-muted);font-size:.75rem;font-weight:400}.decline-form-group{margin-bottom:1rem}.decline-form-group:last-child{margin-bottom:0}.decline-label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.decline-reason-select{width:100%;padding:.75rem 2.5rem .75rem .75rem;border:2px solid #d1d5db;border-radius:var(--radius-md);font-size:.9375rem;font-family:inherit;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;color:#374151;cursor:pointer;transition:border-color .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.decline-reason-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.decline-reason-select:hover{border-color:#9ca3af}.decline-reason-input{width:100%;padding:.75rem;border:2px solid #d1d5db;border-radius:var(--radius-md);font-size:.875rem;font-family:inherit;resize:vertical;transition:border-color .15s ease;background-color:#fff}.decline-reason-input:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.decline-reason-input::placeholder{color:var(--text-muted)}.estimate-actions{display:flex;gap:var(--space-sm)}.btn-success{background:var(--success-color);color:#fff;border:none;padding:.625rem 1.25rem;border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;font-weight:500;transition:all var(--transition-fast);box-shadow:var(--shadow-xs)}.btn-success:hover{background:#15803d;box-shadow:var(--shadow);transform:translateY(-1px)}.btn-success:active{transform:translateY(0)}.btn-success:focus-visible{outline:none;box-shadow:0 0 0 3px #16a34a33}.panels{display:flex;gap:var(--space-md);align-items:flex-start}.left-panel{display:flex;flex-direction:column;gap:var(--space-md);flex:1;min-width:0}.panels .right-panel{width:360px;flex-shrink:0;transition:all var(--transition-base)}.panels .right-panel.hidden{width:0;min-width:0;overflow:hidden;padding:0;border:none}.right-panel{position:sticky;top:var(--space-lg);height:fit-content;max-height:calc(100vh - 120px);overflow-y:auto}.panel-hidden-label{writing-mode:vertical-rl;text-orientation:mixed;padding:var(--space-md) var(--space-xs);display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.panel-hidden-label .label-text{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.panel-hidden-label .label-value{font-size:.875rem;font-weight:700;color:var(--primary-color)}.collapsible-section{background:var(--bg-white);border-radius:var(--radius-md);border:1px solid var(--border-color);overflow:hidden}.section-toggle{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:.75rem var(--space-md);background:linear-gradient(to right,#e0e7ff,#eff6ff);border:none;cursor:pointer;font-size:.8125rem;font-weight:600;color:#1e40af;text-align:left;transition:all var(--transition-fast);border-bottom:1px solid #c7d2fe}.section-toggle:hover{background:linear-gradient(to right,#c7d2fe,#dbeafe)}.toggle-icon{font-size:.625rem;color:#3b82f6;width:12px;text-align:center}.toggle-label{flex:1;text-transform:uppercase;letter-spacing:.04em}.collapsed-summary{font-weight:500;color:var(--text-muted);font-size:.75rem;text-transform:none;letter-spacing:normal;background:var(--bg-white);padding:.125rem .5rem;border-radius:var(--radius-sm)}.section-content{transition:all var(--transition-base)}.collapsible-section.collapsed .section-content{display:none}.collapsible-section.collapsed .section-toggle{border-bottom:none}.collapsible-section .estimate-form,.collapsible-section .measurement-table,.collapsible-section .pricing-summary{border:none;border-radius:0;box-shadow:none}.collapsible-section-v2{background:var(--bg-white);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-xs);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.collapsible-section-v2:hover{box-shadow:var(--shadow)}.section-toggle-v2{width:100%;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);border:none;cursor:pointer;text-align:left;transition:all var(--transition-fast);border-bottom:none}.section-toggle-v2:hover{background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%)}.toggle-icon-wrapper{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast)}.toggle-icon-wrapper.client,.toggle-icon-wrapper.measurements{background:#fff3;color:#fff}.section-toggle-v2:hover .toggle-icon-wrapper{transform:scale(1.05);box-shadow:var(--shadow-xs)}.toggle-label-v2{flex:1;font-size:.9375rem;font-weight:600;color:#fff;letter-spacing:0;text-shadow:0 1px 2px rgba(0,0,0,.1)}.collapsed-summary-v2{font-weight:500;color:var(--text-color);font-size:.8125rem;background:#fffffff2;padding:.25rem .75rem;border-radius:20px;border:none;box-shadow:0 1px 3px #0000001a}.toggle-chevron{color:#fffc;transition:transform var(--transition-fast);display:flex;align-items:center}.collapsible-section-v2.collapsed .toggle-chevron{transform:rotate(0)}.collapsible-section-v2:not(.collapsed) .toggle-chevron{transform:rotate(0)}.section-content-v2{transition:all var(--transition-base)}.collapsible-section-v2.collapsed .section-content-v2{display:none}.collapsible-section-v2.collapsed .section-toggle-v2{border-bottom:none}.collapsible-section-v2 .estimate-form-v2,.collapsible-section-v2 .measurement-table,.collapsible-section-v2 .pricing-summary{border:none;border-radius:0;box-shadow:none}@media(max-width:640px){.section-toggle-v2{padding:var(--space-md);gap:var(--space-sm)}.toggle-icon-wrapper{width:36px;height:36px}.toggle-icon-wrapper svg{width:16px;height:16px}.toggle-label-v2{font-size:.875rem}.collapsed-summary-v2{font-size:.75rem;padding:.125rem .5rem}}.document-actions-section{margin-bottom:var(--space-md)}.document-buttons{display:flex;flex-wrap:wrap;gap:0;background:var(--bg-white);border-radius:var(--radius-md);border:1px solid var(--border-color);padding:4px}.btn-document{padding:.625rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);background:transparent;border:none;color:var(--text-secondary)}.btn-document:hover:not(:disabled):not(.active){background:var(--bg-hover);color:var(--text-color)}.btn-document.active{background:var(--primary-color);color:#fff}.btn-document:disabled{opacity:.5;cursor:not-allowed}.btn-document.btn-send-invoice{background:var(--success-color);color:#fff;margin-left:auto}.btn-document.btn-send-invoice:hover:not(:disabled){background:#15803d}.document-view-inline{background:var(--bg-white);border-radius:var(--radius-md);border:1px solid var(--border-color)}.document-view-inline .pricing-summary{border:none;box-shadow:none}.document-view-inline .summary-tabs{display:none}.estimate-form,.measurement-table,.pricing-summary{background:var(--bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-lg);border:1px solid var(--border-color)}.form-section{margin-bottom:var(--space-lg)}.form-section:last-child{margin-bottom:0}.form-section h3{font-size:.8125rem;font-weight:600;margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-light);color:var(--text-light);text-transform:uppercase;letter-spacing:.04em}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group.full-width{grid-column:1 / -1}.address-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;margin-top:0}.form-group label{font-size:.6875rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group select,.form-group textarea{padding:.625rem .875rem;border:1.5px solid #cbd5e1;border-radius:var(--radius-md);font-size:.9375rem;transition:all var(--transition-fast);background:#f8fafc;color:var(--text-color)}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:#94a3b8;background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus);background:#fff}.form-group input::placeholder,.form-group textarea::placeholder{color:#94a3b8}.form-group textarea{resize:vertical;min-height:80px}.checkbox-group{flex-direction:row;align-items:center}.checkbox-group label{display:flex;align-items:center;gap:.625rem;font-size:.9375rem;text-transform:none;cursor:pointer;color:var(--text-secondary);padding:var(--space-sm) 0}.checkbox-group input[type=checkbox]{width:1.125rem;height:1.125rem;accent-color:var(--primary-color);cursor:pointer}.paint-selection-grid{display:flex;flex-direction:column;gap:1rem}.paint-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.paint-row .paint-select,.paint-row .paint-color{flex:1}@media(max-width:1024px){.estimate-form .form-group input,.estimate-form .form-group select,.estimate-form .form-group textarea{min-height:var(--input-height-touch);font-size:16px;padding:.75rem 1rem}.estimate-form .form-grid{grid-template-columns:repeat(2,1fr);gap:var(--touch-spacing)}.estimate-form .form-section{margin-bottom:var(--space-xl)}.estimate-form .form-section h3{font-size:.875rem;padding:var(--space-sm) 0;margin-bottom:var(--space-md)}.paint-row{grid-template-columns:1fr;gap:var(--touch-spacing)}.checkbox-group label{min-height:var(--tap-target-min);padding:var(--space-md) 0}.checkbox-group input[type=checkbox]{width:1.5rem;height:1.5rem}}@media(max-width:640px){.estimate-form{padding:var(--space-md)}.estimate-form .form-grid{grid-template-columns:1fr;gap:var(--space-md)}.estimate-form .form-group input,.estimate-form .form-group select{min-height:var(--input-height-large)}.estimate-form .address-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-sm)}.client-selector{margin-bottom:var(--space-md)}.client-selector input{min-height:var(--input-height-touch);font-size:16px}}.measurement-table h3{margin-bottom:var(--space-sm)}.measurement-header-actions{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.view-mode-toggle{display:flex;background:var(--bg-color);border-radius:var(--radius-md);padding:2px;border:1px solid var(--border-color)}.view-mode-btn{padding:.375rem .75rem;font-size:.75rem;font-weight:500;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-light);cursor:pointer;transition:all var(--transition-fast)}.view-mode-btn:hover{color:var(--text-color);background:var(--bg-hover)}.view-mode-btn.active{background:var(--primary-color);color:#fff;box-shadow:var(--shadow-xs)}.measurement-table .help-text{font-size:.8125rem;color:var(--text-light);margin-bottom:var(--space-md)}.measurement-table table{width:100%;border-collapse:separate;border-spacing:0}.measurement-table th,.measurement-table td{padding:.75rem .625rem;text-align:left;border-bottom:1px solid var(--border-light)}.measurement-table th{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--bg-color);position:sticky;top:0}.measurement-table th:first-child{border-radius:var(--radius-sm) 0 0 0}.measurement-table th:last-child{border-radius:0 var(--radius-sm) 0 0}.measurement-table tbody tr{transition:background var(--transition-fast)}.measurement-table tbody tr:hover{background:var(--bg-hover)}.measurement-table td input,.measurement-table td select{width:100%;padding:.5rem .625rem;border:1.5px solid #cbd5e1;border-radius:var(--radius-sm);font-size:.9375rem;transition:all var(--transition-fast);background:#f8fafc}.measurement-table td input:hover,.measurement-table td select:hover{border-color:#94a3b8;background:#fff}.measurement-table td input:focus,.measurement-table td select:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus);background:#fff}.measurement-table td input[type=number]{width:72px;text-align:center;font-variant-numeric:tabular-nums}.measurement-table td.total{font-weight:600;color:var(--primary-color);font-variant-numeric:tabular-nums}.measurement-table .new-row{background:var(--primary-subtle)}.measurement-table .new-row td{padding-top:.875rem;padding-bottom:.875rem}.measurement-table tr.editing{background:var(--warning-light)}.measurement-table tr.editing td{border-color:#fde047}.measurement-table .image-cell{width:100px;text-align:center}.measurement-table .image-preview{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:2px}.measurement-table .image-preview img{width:40px;height:40px;object-fit:cover;border-radius:4px;cursor:pointer;border:1px solid var(--border-color)}.measurement-table .image-preview img:hover{opacity:.8}.measurement-table .image-side-label{font-size:.65rem;color:var(--text-light);background:var(--bg-color);padding:1px 4px;border-radius:3px}.measurement-table .btn-remove-image{position:absolute;top:-6px;right:-6px;width:18px;height:18px;padding:0;font-size:10px;line-height:1;background:var(--danger-color);color:#fff;border:none;border-radius:50%;cursor:pointer}.measurement-table .image-upload-controls{display:flex;gap:4px;align-items:center}.measurement-table .side-select{width:55px;padding:2px 4px;font-size:.7rem;border:1px solid var(--border-color);border-radius:3px;background:#fff}.measurement-table .btn-upload-image{padding:4px 8px;font-size:.8rem;background:var(--bg-color);border:1px dashed var(--border-color);border-radius:4px;cursor:pointer;color:var(--text-light)}.measurement-table .btn-upload-image:hover{background:var(--bg-hover);border-color:var(--primary-color);color:var(--primary-color)}.measurement-table .btn-upload-image:disabled{opacity:.5;cursor:not-allowed}.measurement-table .image-placeholder{color:var(--text-muted);font-size:.875rem}.measurement-table .media-cell{min-width:200px}.measurement-table .media-buttons{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.measurement-table .btn-media{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;font-size:.75rem;font-weight:500;background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-light);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.measurement-table .btn-media:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary-color);color:var(--primary-color)}.measurement-table .btn-media.has-content{background:#fef3c7;border-color:#f59e0b;color:#92400e}.measurement-table .btn-media.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.measurement-table .btn-media:disabled{opacity:.4;cursor:not-allowed}.measurement-table .btn-media-icon{font-size:.875rem}.measurement-table .btn-media-label{display:inline}.measurement-table .image-thumb{position:relative;display:inline-flex;align-items:center;gap:.375rem;padding:.25rem;background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.measurement-table .image-thumb:hover{border-color:var(--primary-color);box-shadow:var(--shadow-xs)}.measurement-table .image-thumb img{width:32px;height:32px;object-fit:cover;border-radius:3px}.measurement-table .image-thumb-side{font-size:.6875rem;font-weight:500;color:var(--text-light);text-transform:uppercase}.measurement-table .image-thumb-remove{position:absolute;top:-6px;right:-6px;width:18px;height:18px;padding:0;font-size:10px;line-height:1;background:var(--danger-color);color:#fff;border:2px solid white;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast)}.measurement-table .image-thumb:hover .image-thumb-remove{opacity:1}.measurement-table .image-upload-inline{display:flex;align-items:center;gap:.375rem}.measurement-table .image-side-select{padding:.375rem .5rem;font-size:.6875rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#fff;color:var(--text-secondary);cursor:pointer}.measurement-table .media-cell-v2{padding:.375rem!important;text-align:center}.measurement-table:not(.force-card-view) th:nth-child(7){text-align:center}.media-actions-v2{display:flex;align-items:center;justify-content:center;gap:1rem;width:100%}.media-icon-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);position:relative}.media-icon-btn svg{width:20px;height:20px}.media-icon-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary-color);color:var(--primary-color)}.media-icon-btn.active{background:var(--primary-subtle);border-color:var(--primary-color);color:var(--primary-color)}.media-icon-btn.has-content{background:var(--primary-subtle);border-color:var(--primary-light);color:var(--primary-color)}.media-icon-btn:disabled{opacity:.4;cursor:not-allowed}.media-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;background:var(--primary-color);color:#fff;font-size:.625rem;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center}.media-thumb-v2{position:relative;width:40px;height:40px;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;border:1px solid var(--border-color);transition:all var(--transition-fast)}.media-thumb-v2:hover{border-color:var(--primary-color);box-shadow:var(--shadow-xs);transform:scale(1.05)}.media-thumb-v2 img{width:100%;height:100%;object-fit:cover}.media-thumb-remove{position:absolute;top:-4px;right:-4px;width:16px;height:16px;padding:0;background:var(--danger-color);color:#fff;border:1.5px solid white;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast)}.media-thumb-v2:hover .media-thumb-remove{opacity:1}.media-upload-v2{display:flex;align-items:center;gap:2px}.media-side-select{width:32px;height:40px;padding:0 4px;font-size:.75rem;font-weight:600;text-align:center;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-color);color:var(--text-secondary);cursor:pointer;appearance:none;-webkit-appearance:none}.media-side-select:hover{border-color:var(--primary-color)}.upload-spinner{width:14px;height:14px;border:2px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.measurement-table .media-placeholder{font-size:.75rem;color:var(--text-muted);font-style:italic}.photo-annotation-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.photo-annotation-drawer{background:var(--bg-white);border-radius:var(--radius-lg);width:100%;max-width:900px;max-height:95vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);overflow:hidden}.annotation-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-subtle)}.annotation-header h3{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-color)}.annotation-close-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.annotation-close-btn:hover{background:var(--bg-hover);color:var(--text-color)}.annotation-toolbar{display:flex;flex-wrap:wrap;gap:1.5rem;padding:.875rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-color)}.toolbar-group{display:flex;flex-direction:column;gap:.375rem}.toolbar-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.toolbar-buttons{display:flex;gap:.375rem}.tool-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.tool-btn:hover{background:var(--bg-hover);border-color:var(--primary-color);color:var(--primary-color)}.tool-btn.active{background:var(--primary-subtle);border-color:var(--primary-color);color:var(--primary-color)}.color-picker{display:flex;gap:.25rem}.color-btn{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast);box-shadow:inset 0 0 0 2px #ffffff4d}.color-btn:hover{transform:scale(1.15)}.color-btn.active{transform:scale(1.15);box-shadow:0 0 0 3px var(--bg-white),0 0 0 5px currentColor}.action-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.action-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary-color);color:var(--primary-color)}.action-btn:disabled{opacity:.5;cursor:not-allowed}.annotation-canvas-container{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem;background:#1a1a1a;min-height:300px;overflow:auto;position:relative}.annotation-canvas-container canvas{border-radius:var(--radius-md);box-shadow:0 4px 20px #0000004d;touch-action:none}.canvas-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:#ffffffb3}.canvas-loading .loading-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.text-input-popup{display:flex;gap:.375rem;padding:.5rem;background:var(--bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:10}.text-input-popup input{width:180px;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem}.text-input-popup input:focus{outline:none;border-color:var(--primary-color)}.text-input-popup button{padding:.5rem .75rem;border:none;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;cursor:pointer}.text-input-popup button:first-of-type{background:var(--primary-color);color:#fff}.text-input-popup button:first-of-type:disabled{opacity:.5;cursor:not-allowed}.text-input-popup button:last-of-type{background:var(--bg-subtle);color:var(--text-secondary)}.annotation-footer{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-top:1px solid var(--border-color);background:var(--bg-subtle)}.annotation-hint{font-size:.8125rem;color:var(--text-muted)}.annotation-footer-buttons{display:flex;gap:.75rem}@media(max-width:640px){.photo-annotation-overlay{padding:0}.photo-annotation-drawer{border-radius:0;max-height:100vh;height:100vh}.annotation-toolbar{gap:1rem;padding:.75rem 1rem}.toolbar-group{flex:1;min-width:0}.tool-btn{width:36px;height:36px}.color-btn{width:24px;height:24px}.action-btn{padding:.375rem .5rem;font-size:.75rem}.action-btn svg{display:none}.annotation-canvas-container{padding:.5rem}.annotation-footer{flex-direction:column;gap:.75rem}.annotation-hint{text-align:center}.annotation-footer-buttons{width:100%}.annotation-footer-buttons button{flex:1}}.measurement-table .actions{white-space:nowrap;display:flex;gap:.375rem}.measurement-table .btn-action{width:28px;height:28px;padding:0;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-white);cursor:pointer;font-size:.75rem;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.measurement-table .btn-action:hover{transform:scale(1.05)}.measurement-table .btn-action.btn-save{background:var(--success-light);border-color:var(--success-color);color:var(--success-color)}.measurement-table .btn-action.btn-save:hover{background:var(--success-color);color:#fff}.measurement-table .btn-action.btn-cancel{background:var(--bg-color);color:var(--text-muted)}.measurement-table .btn-action.btn-cancel:hover{background:var(--danger-light);border-color:var(--danger-color);color:var(--danger-color)}.measurement-table .btn-action.btn-delete{color:var(--text-muted)}.measurement-table .btn-action.btn-delete:hover{background:var(--danger-light);border-color:var(--danger-color);color:var(--danger-color)}.measurement-table .btn-add-measurement{padding:.5rem 1rem;font-size:.8125rem}.measurement-table .notes-expanded-row{background:linear-gradient(to bottom,#fefce8,#fef9c3)}.measurement-table .notes-expanded-row td{padding:0;border-top:none}.measurement-table .notes-inline{padding:.75rem 1rem}.measurement-table .notes-inline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.625rem}.measurement-table .notes-inline-header span{font-size:.75rem;font-weight:600;color:#92400e;text-transform:uppercase;letter-spacing:.04em}.measurement-table .notes-inline-close{width:24px;height:24px;padding:0;background:transparent;border:1px solid #fcd34d;border-radius:var(--radius-sm);color:#92400e;cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.measurement-table .notes-inline-close:hover{background:#fcd34d}.measurement-table .notes-inline-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.625rem}.measurement-table .notes-inline-field{display:flex;flex-direction:column;gap:.25rem}.measurement-table .notes-inline-field label{font-size:.6875rem;font-weight:600;color:#92400e;text-transform:uppercase}.measurement-table .notes-inline-field input{padding:.5rem .625rem;font-size:.875rem;border:1px solid #fcd34d;border-radius:var(--radius-sm);background:#fff;transition:all var(--transition-fast)}.measurement-table .notes-inline-field input:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.measurement-table .notes-inline-field input::placeholder{color:#d4a574}.measurement-table .notes-inline-help{font-size:.6875rem!important;font-weight:400!important;color:#b45309!important;text-transform:none!important;letter-spacing:normal!important;margin-left:auto;margin-right:.5rem}.measurement-table .notes-input-row{display:flex;gap:.375rem;align-items:stretch}.measurement-table .notes-input-row input{flex:1;min-width:0}.measurement-table .notes-visibility-select{width:auto;min-width:90px;padding:.375rem .5rem;font-size:.75rem;border:1px solid #fcd34d;border-radius:var(--radius-sm);background:#fff;color:#92400e;cursor:pointer;transition:all var(--transition-fast)}.measurement-table .notes-visibility-select:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.measurement-table .notes-visibility-select:hover{background:#fef3c7}@media(max-width:768px){.measurement-table .notes-inline-grid{grid-template-columns:1fr}.measurement-table .notes-inline-help{display:none}.measurement-table .notes-input-row{flex-direction:column;gap:.25rem}.measurement-table .notes-visibility-select{width:100%;min-height:var(--input-height-touch)}}@media(max-width:1024px){.measurement-table{padding:var(--space-md)}.measurement-table table{display:block}.measurement-table thead{display:none}.measurement-table tbody{display:flex;flex-direction:column;gap:var(--space-md)}.measurement-table tbody tr{display:block;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--shadow-xs)}.measurement-table tbody tr:hover{background:var(--bg-white);box-shadow:var(--shadow)}.measurement-table tbody tr.editing{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.measurement-table tbody tr td{display:block;padding:0;border:none}.measurement-table tbody tr td:first-child{margin-bottom:var(--space-md)}.measurement-table tbody tr td:first-child select{width:100%;min-height:var(--input-height-touch);font-size:16px;font-weight:600;background:var(--bg-color);padding:.75rem 1rem}.measurement-table tbody tr td:nth-child(2),.measurement-table tbody tr td:nth-child(3),.measurement-table tbody tr td:nth-child(4),.measurement-table tbody tr td:nth-child(5){display:inline-flex;flex-direction:column;width:calc(50% - var(--space-sm));margin-bottom:var(--space-sm)}.measurement-table tbody tr td:nth-child(2),.measurement-table tbody tr td:nth-child(4){margin-right:var(--space-sm)}.measurement-table tbody tr td:nth-child(2):before,.measurement-table tbody tr td:nth-child(3):before,.measurement-table tbody tr td:nth-child(4):before,.measurement-table tbody tr td:nth-child(5):before{content:attr(data-label);font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem}.measurement-table tbody tr td:nth-child(2):before{content:"Front"}.measurement-table tbody tr td:nth-child(3):before{content:"Right"}.measurement-table tbody tr td:nth-child(4):before{content:"Back"}.measurement-table tbody tr td:nth-child(5):before{content:"Left"}.measurement-table tbody tr td input[type=number]{width:100%;min-height:var(--input-height-large);font-size:1.25rem;font-weight:600;text-align:center}.measurement-table tbody tr td.total{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-sm) 0;margin-top:var(--space-sm);border-top:1px solid var(--border-light);font-size:1.125rem}.measurement-table tbody tr td.total:before{content:"Total LF";font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase}.measurement-table tbody tr td.media-cell{display:flex;width:100%;padding:var(--space-sm) 0;margin-top:var(--space-sm);border-top:1px solid var(--border-light)}.measurement-table .media-buttons{width:100%;flex-wrap:wrap;gap:var(--space-sm)}.measurement-table .btn-media{flex:1;min-width:100px;justify-content:center;padding:.625rem .75rem;font-size:.8125rem}.measurement-table .image-thumb{flex:1;min-width:100px;justify-content:center}.measurement-table .image-upload-inline{flex:1;min-width:100px}.measurement-table .image-side-select{flex:1;padding:.5rem;font-size:.8125rem}.measurement-table tbody tr td.actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-light)}.measurement-table .btn-action{width:40px;height:40px;font-size:1rem}.measurement-table tbody tr.new-row{background:var(--primary-subtle);border:2px dashed var(--primary-color)}.measurement-table tbody tr.notes-expanded-row{padding:var(--space-md)}.measurement-table tbody tr.notes-expanded-row td{padding:0}.measurement-table .notes-grid-horizontal{flex-direction:column;gap:var(--space-sm)}.measurement-table .note-field{flex-direction:column;align-items:stretch}.measurement-table .note-field label{margin-bottom:.25rem}.measurement-table .note-field input{min-height:var(--input-height-touch);font-size:16px}.measurement-table .image-upload-controls{flex-direction:column;gap:var(--space-sm)}.measurement-table .side-select{width:100%;min-height:var(--input-height-touch);font-size:16px}.measurement-table .btn-upload-image{width:100%;min-height:var(--input-height-touch);font-size:1rem}.measurement-table .image-preview{flex-direction:row;gap:var(--space-sm)}.measurement-table .image-preview img{width:60px;height:60px}}@media(max-width:640px){.measurement-table{padding:var(--space-sm)}.measurement-table tbody{gap:var(--space-sm)}.measurement-table tbody tr{padding:var(--space-sm)}.measurement-table tbody tr td input[type=number]{min-height:var(--input-height-touch);font-size:1.125rem}.measurement-table .card-footer{display:flex;align-items:center;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-light);margin-top:var(--space-sm)}}.measurement-table.force-table-view table{display:table!important}.measurement-table.force-table-view thead{display:table-header-group!important}.measurement-table.force-table-view tbody{display:table-row-group!important;flex-direction:unset;gap:0}.measurement-table.force-table-view tbody tr{display:table-row!important;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}.measurement-table.force-table-view tbody tr td{display:table-cell!important;padding:.75rem .625rem;border-bottom:1px solid var(--border-light);width:auto;margin:0}.measurement-table.force-table-view tbody tr td:before{content:none!important}.measurement-table.force-table-view tbody tr td input[type=number]{width:72px;min-height:unset;font-size:.9375rem;font-weight:400}.measurement-table.force-table-view tbody tr td.total{display:table-cell!important;padding:.75rem .625rem;border-top:none;margin:0}.measurement-table.force-table-view tbody tr td.total:before{content:none!important}.measurement-table.force-card-view{padding:var(--space-md)}.measurement-table.force-card-view table{display:block}.measurement-table.force-card-view thead{display:none}.measurement-table.force-card-view tbody{display:flex;flex-direction:column;gap:var(--space-md)}.measurement-table.force-card-view tbody tr{display:block;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--shadow-xs)}.measurement-table.force-card-view tbody tr:hover{background:var(--bg-white);box-shadow:var(--shadow)}.measurement-table.force-card-view tbody tr.editing{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.measurement-table.force-card-view tbody tr td{display:block;padding:0;border:none}.measurement-table.force-card-view tbody tr td:first-child{margin-bottom:var(--space-md)}.measurement-table.force-card-view tbody tr td:first-child select{width:100%;min-height:var(--input-height-touch);font-size:16px;font-weight:600;background:var(--bg-color);padding:.75rem 1rem}.measurement-table.force-card-view tbody tr td:nth-child(2),.measurement-table.force-card-view tbody tr td:nth-child(3),.measurement-table.force-card-view tbody tr td:nth-child(4),.measurement-table.force-card-view tbody tr td:nth-child(5){display:inline-flex;flex-direction:column;width:calc(50% - var(--space-sm));margin-bottom:var(--space-sm)}.measurement-table.force-card-view tbody tr td:nth-child(2),.measurement-table.force-card-view tbody tr td:nth-child(4){margin-right:var(--space-sm)}.measurement-table.force-card-view tbody tr td:nth-child(2):before{content:"Front"}.measurement-table.force-card-view tbody tr td:nth-child(3):before{content:"Right"}.measurement-table.force-card-view tbody tr td:nth-child(4):before{content:"Back"}.measurement-table.force-card-view tbody tr td:nth-child(5):before{content:"Left"}.measurement-table.force-card-view tbody tr td:nth-child(2):before,.measurement-table.force-card-view tbody tr td:nth-child(3):before,.measurement-table.force-card-view tbody tr td:nth-child(4):before,.measurement-table.force-card-view tbody tr td:nth-child(5):before{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem}.measurement-table.force-card-view tbody tr td input[type=number]{width:100%;min-height:var(--input-height-large);font-size:1.25rem;font-weight:600;text-align:center}.measurement-table.force-card-view tbody tr td.total{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-sm) 0;margin-top:var(--space-sm);border-top:1px solid var(--border-light);font-size:1.125rem}.measurement-table.force-card-view tbody tr td.total:before{content:"Total LF";font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase}.measurement-table.force-card-view tbody tr.new-row{background:var(--primary-subtle);border:2px dashed var(--primary-color)}.measurement-table.force-card-view tbody tr td.media-cell{display:flex;width:100%;padding:var(--space-sm) 0;margin-top:var(--space-sm);border-top:1px solid var(--border-light)}.measurement-table.force-card-view .media-buttons{width:100%;flex-wrap:wrap;gap:var(--space-sm)}.measurement-table.force-card-view .btn-media{flex:1;min-width:120px;justify-content:center;padding:.625rem 1rem;font-size:.875rem}.measurement-table.force-card-view .btn-media-icon{font-size:1rem}.measurement-table.force-card-view .image-thumb{flex:1;min-width:120px;justify-content:center;padding:.5rem}.measurement-table.force-card-view .image-thumb img{width:48px;height:48px}.measurement-table.force-card-view .image-upload-inline{flex:1;min-width:120px}.measurement-table.force-card-view .image-side-select{flex:1;padding:.5rem;font-size:.8125rem}.measurement-table.force-card-view tbody tr td.actions{display:flex;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-light)}.measurement-table.force-card-view .btn-action{width:100%;height:36px;font-size:.875rem;background:var(--danger-light);border-color:var(--danger-color);color:var(--danger-color);border-radius:var(--radius-md)}.measurement-table.force-card-view .btn-action:hover{background:var(--danger-color);color:#fff}.measurement-table.force-card-view .notes-expanded-row{border:none;background:transparent;padding:0;box-shadow:none;margin-top:-var(--space-md)}.measurement-table.force-card-view .notes-inline{background:linear-gradient(to bottom,#fefce8,#fef9c3);border-radius:var(--radius-sm);margin-top:var(--space-sm)}.measurement-table.force-card-view .notes-inline-field input{min-height:var(--input-height-touch);font-size:16px}.floating-pricing-bar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-white);border-top:1px solid var(--border-color);box-shadow:0 -4px 12px #0000001a;z-index:100;transition:all var(--transition-base)}.floating-pricing-collapsed{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-md) var(--space-lg);background:var(--primary-gradient);border:none;cursor:pointer;color:#fff}.floating-pricing-main{display:flex;align-items:baseline;gap:var(--space-md)}.floating-pricing-label{font-size:.875rem;font-weight:500;opacity:.9}.floating-pricing-value{font-size:1.5rem;font-weight:700}.floating-pricing-toggle{font-size:.75rem;opacity:.8}.floating-pricing-expanded{padding:var(--space-md) var(--space-lg);background:var(--bg-white);max-height:60vh;overflow-y:auto}.floating-pricing-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;font-size:.9375rem}.floating-pricing-row span:last-child{font-weight:600;font-variant-numeric:tabular-nums}.floating-pricing-row.discount{color:var(--success-color)}.floating-pricing-row.total{font-size:1.125rem;font-weight:700;padding:var(--space-md) 0;border-top:1px solid var(--border-color);margin-top:var(--space-sm)}.floating-pricing-row.deposit{color:var(--primary-color);font-weight:600}.floating-pricing-divider{height:1px;background:var(--border-color);margin:var(--space-sm) 0}.floating-pricing-quick{display:flex;gap:var(--space-md);font-size:.8125rem;opacity:.85}.floating-pricing-quick span{padding:.25rem .5rem;background:#ffffff26;border-radius:var(--radius-sm)}.floating-pricing-section{margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-light)}.floating-pricing-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.floating-pricing-section-title{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-sm)}.floating-pricing-row.sub{font-size:.8125rem;color:var(--text-light);padding:.25rem 0;padding-left:var(--space-sm)}.floating-pricing-row.sub span:last-child{font-weight:500}.floating-pricing-section.total-section{background:linear-gradient(to bottom,var(--bg-color),var(--bg-hover));margin:0 calc(-1 * var(--space-lg));padding:var(--space-md) var(--space-lg);border-radius:0;border-bottom:none}@media(max-width:1024px){.floating-pricing-bar{display:block}.content-main{padding-bottom:100px}.panels{padding-bottom:var(--space-xl)}.panels .right-panel,.panel-toggle-pricing{display:none}}.pricing-summary h3{margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-light)}.pricing-summary .loading{text-align:center;color:var(--text-light);padding:var(--space-xl)}.summary-section{margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-light)}.summary-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.summary-section h4{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-sm)}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:.375rem 0;font-size:.9375rem}.summary-row span:last-child{font-variant-numeric:tabular-nums;font-weight:500}.summary-row.sub{color:var(--text-light);font-size:.8125rem;padding-left:.75rem}.summary-row.sub span:last-child{font-weight:400}.summary-row.discount{color:var(--success-color)}.summary-row.referral-discount{color:var(--primary-color);font-weight:500}.summary-row.total{font-size:1.25rem;font-weight:700;padding:.625rem 0}.total-section{background:linear-gradient(to bottom,var(--bg-color),var(--bg-hover));margin:0 calc(-1 * var(--space-lg));padding:var(--space-md) var(--space-lg);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.paint-details{margin-top:1rem}@media(min-width:769px){.panels .right-panel{width:360px}.panel-toggle-sidebar,.panel-toggle-pricing{display:flex}}@media(min-width:769px)and (max-width:1280px){.panels .right-panel{width:320px}}@media(max-width:768px){.app-content{flex-direction:column}.content-sidebar{position:fixed;top:0;left:0;width:85%!important;max-width:320px;min-width:unset!important;height:100vh;border-right:1px solid var(--border-color);border-bottom:none;z-index:200;transform:translate(0);transition:transform var(--transition-base);box-shadow:var(--shadow-lg)}.content-sidebar.hidden{transform:translate(-100%);box-shadow:none}.content-sidebar:before{content:"";position:fixed;top:0;left:100%;width:100vw;height:100vh;background:#0000004d;opacity:1;transition:opacity var(--transition-base);pointer-events:auto}.content-sidebar.hidden:before{opacity:0;pointer-events:none}.panel-toggle-sidebar{display:flex!important;position:fixed;top:var(--space-md);left:var(--space-md);z-index:150;margin:0;border-radius:var(--radius-md);width:44px;height:44px}.panel-toggle-pricing{display:none!important}.content-main{width:100%;padding:var(--space-md);padding-top:calc(44px + var(--space-xl))}.panels{flex-direction:column}.left-panel{width:100%}.form-grid{grid-template-columns:1fr 1fr}.measurement-table{overflow-x:auto}.panel-hidden-label{display:none}}.header-buttons{display:flex;gap:var(--space-sm);align-items:center}.btn-secondary{background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:var(--radius-md);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all var(--transition-fast)}.btn-secondary:hover{background:#ffffff40;border-color:#ffffff80}.settings-page{min-height:100vh;background:var(--bg-color)}.settings-header{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);box-shadow:0 2px 4px #0000001a;color:#fff;padding:.875rem var(--space-xl);display:flex;align-items:center;gap:var(--space-lg);box-shadow:var(--shadow-md);position:sticky;top:0;z-index:100}.settings-header h1{font-size:1.125rem;font-weight:700;flex:1;letter-spacing:-.02em;color:#fff}.settings-message{background:var(--success-light);color:var(--success-color);padding:.5rem 1rem;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500}.settings-tabs{display:flex;gap:.25rem;background:var(--bg-white);border-bottom:1px solid var(--border-color);padding:0 var(--space-xl)}.settings-tabs .tab{background:none;border:none;padding:var(--space-md) var(--space-lg);cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-light);border-bottom:2px solid transparent;transition:all var(--transition-fast);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.settings-tabs .tab:hover{color:var(--text-color);background:var(--bg-hover)}.settings-tabs .tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.settings-content{padding:var(--space-xl);max-width:1400px;margin:0 auto}.settings-section{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-lg);border:1px solid var(--border-light)}.settings-section h3{font-size:.9375rem;font-weight:600;margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-light);margin-top:var(--space-lg);color:var(--text-secondary)}.settings-section h3:first-child{margin-top:0}.settings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.settings-grid label{display:flex;flex-direction:column;gap:.375rem;font-size:.6875rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.04em}.settings-grid input{padding:.625rem .875rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9375rem;transition:all var(--transition-fast)}.settings-grid input:hover{border-color:var(--text-muted)}.settings-grid input:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.settings-actions{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.section-header h3{margin:0;border:none;padding:0}.settings-table{width:100%;border-collapse:separate;border-spacing:0}.settings-table th,.settings-table td{padding:.75rem .625rem;text-align:left;border-bottom:1px solid var(--border-light)}.settings-table th{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--bg-color)}.settings-table tbody tr{transition:background var(--transition-fast)}.settings-table tbody tr:hover{background:var(--bg-hover)}.settings-table input,.settings-table select{width:100%;padding:.5rem .625rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.9375rem;transition:all var(--transition-fast)}.settings-table input[type=checkbox]{width:auto}.settings-table input:focus,.settings-table select:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.actions-cell{white-space:nowrap}.btn-small{background:var(--primary-color);color:#fff;border:none;padding:.375rem .625rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.75rem;font-weight:500;margin-right:.25rem;transition:all var(--transition-fast)}.btn-small:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-small:active{transform:translateY(0)}.btn-small.btn-danger{background:var(--danger-color);color:#fff}.btn-small.btn-danger:hover{background:var(--danger-hover)}.role-badge{display:inline-block;padding:.25rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500;text-transform:capitalize}.role-badge.admin{background:var(--primary-light);color:var(--primary-color)}.role-badge.user{background:#e5e7eb;color:#374151}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge.active{background:var(--success-light);color:var(--success-color)}.status-badge.inactive{background:var(--danger-light);color:var(--danger-color)}@media(max-width:1024px){.settings-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.settings-grid{grid-template-columns:1fr}.settings-tabs{padding:0 1rem;overflow-x:auto}.settings-content{padding:1rem}}.summary-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border-color);margin-bottom:var(--space-md)}.summary-tabs .tab{padding:.75rem 1.25rem;background:none;border:none;font-size:.875rem;font-weight:500;color:var(--text-light);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--transition-fast);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.summary-tabs .tab:hover{color:var(--text-color);background:var(--bg-hover)}.summary-tabs .tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);background:transparent;font-weight:600}.summary-tabs-row{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:var(--space-md)}.summary-tabs-row .summary-tabs{margin-bottom:0;flex:1}.print-document-btn{padding:.5rem 1rem;background:var(--bg-hover);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast);white-space:nowrap;margin-bottom:1px}.print-document-btn:hover{background:var(--bg-active);border-color:var(--text-muted)}.painter-pay-breakdown{padding:0}.painter-pay-breakdown .breakdown-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.painter-pay-breakdown .breakdown-header h3{margin:0;font-size:1.1rem}.painter-pay-breakdown .breakdown-header .project-id{font-size:.85rem;color:var(--text-light)}.painter-pay-breakdown .breakdown-header .total-pay{margin-left:auto;font-size:1.25rem;font-weight:600;color:var(--success-color)}.painter-pay-breakdown .paint-colors-section{display:flex;flex-wrap:wrap;gap:1rem;padding:.75rem 1rem;background:var(--bg-color);border-radius:6px;margin-bottom:1rem}.painter-pay-breakdown .color-item{display:flex;gap:.5rem;font-size:.875rem}.painter-pay-breakdown .color-label{color:var(--text-light);font-weight:500}.painter-pay-breakdown .color-value{color:var(--text-color)}.painter-pay-breakdown .color-gallons{color:var(--primary-color);font-weight:500;margin-left:.25rem}.painter-pay-breakdown .breakdown-table{width:100%;border-collapse:collapse;font-size:.9rem}.painter-pay-breakdown .breakdown-table th,.painter-pay-breakdown .breakdown-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border-color)}.painter-pay-breakdown .breakdown-table th{font-weight:600;color:var(--text-light);font-size:.8rem;text-transform:uppercase}.painter-pay-breakdown .breakdown-table td.number{text-align:right;font-family:monospace}.painter-pay-breakdown .breakdown-table .empty-row{text-align:center;color:var(--text-light);font-style:italic}.painter-pay-breakdown .breakdown-table tfoot tr{background:var(--bg-color)}.painter-pay-breakdown .breakdown-table .subtotal-row td{font-weight:600;border-top:2px solid var(--border-color)}.painter-pay-breakdown .breakdown-table .materials-row td{color:var(--text-light);font-size:.85em;padding-left:1.5rem}.painter-pay-breakdown .breakdown-table .materials-subtotal-row td{background:#f5f5f5;font-weight:500}.painter-pay-breakdown .breakdown-table .grand-total-row td{font-weight:700;font-size:1rem;color:var(--success-color);border-top:2px solid var(--border-color)}.painter-pay-breakdown .empty-state{text-align:center;color:var(--text-light);padding:2rem;font-style:italic}.work-order .work-order-header{margin-bottom:1rem}.work-order-section{background:var(--bg-light);border-radius:6px;padding:1rem;margin-bottom:1rem}.work-order-section h4{margin:0 0 .75rem;font-size:.9rem;font-weight:600;color:var(--primary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding-bottom:.5rem}.work-order-section .info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem}.work-order-section .info-item{display:flex;gap:.5rem}.work-order-section .info-label{font-weight:600;color:var(--text-light);min-width:80px}.work-order-section .info-value{color:var(--text)}.work-order-section .scope-item{display:flex;gap:.5rem;margin-bottom:.25rem}.work-order-section .scope-label{font-weight:600;color:var(--text-light);min-width:70px}.work-order-section .scope-value{color:var(--text)}.work-order-section .paint-colors-grid{display:flex;flex-direction:column;gap:.5rem}.work-order-section .paint-item{display:flex;gap:.75rem;align-items:center}.work-order-section .paint-type{font-weight:600;color:var(--text-light);min-width:60px}.work-order-section .paint-color{color:var(--text);flex:1}.work-order-section .paint-qty{color:var(--primary);font-weight:600;background:var(--bg);padding:.125rem .5rem;border-radius:4px}.work-order-section .no-colors{color:var(--text-light);font-style:italic;margin:0}.work-order-section .materials-summary{display:flex;gap:1.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border);font-weight:500;color:var(--text-light)}.work-order-section .measurements-list{display:flex;flex-direction:column;gap:.375rem}.work-order-section .measurement-category{display:flex;gap:.5rem}.work-order-section .category-name{font-weight:600;color:var(--text-light);min-width:100px}.work-order-section .category-items{color:var(--text)}.work-order-section .measurement-item{white-space:nowrap}.work-order-section.notes-section .notes-input{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:4px;font-family:inherit;font-size:.9rem;resize:vertical;min-height:80px}.work-order-section.notes-section .notes-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #0332491a}.work-order-section.job-details-section .job-details-text{margin:0;color:var(--text);white-space:pre-wrap}.work-order-section.labor-section{background:transparent;padding:0}.work-order-section.labor-section h4{padding-bottom:.5rem;margin-bottom:.5rem}.work-order-section .notes-display{margin:0;color:var(--text);white-space:pre-wrap;min-height:2rem}.detailed-breakdown-section{background:transparent!important;padding:0!important}.detailed-breakdown-section h4{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.side-breakdown{margin-bottom:1.5rem;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.side-header{background:var(--primary-color);color:#fff;padding:.75rem 1rem;margin:0;font-size:1rem;font-weight:600}.side-items{padding:.5rem 0}.side-item{padding:.5rem 1rem;border-bottom:1px solid var(--border-light)}.item-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.item-name{font-weight:600;color:var(--text-color)}.item-hours{font-weight:600;color:#1e3a5f;font-size:.95rem}.item-notes{margin-top:.25rem;padding:.375rem .5rem;background:#fef3c7;border-left:3px solid #f59e0b;border-radius:0 4px 4px 0;font-size:.8125rem;color:#92400e}.item-notes .notes-label{font-weight:600}.item-notes-edit{display:flex;gap:.5rem;margin-top:.25rem;align-items:center}.item-notes-edit .notes-input{flex:1;padding:.25rem .5rem;font-size:.8125rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary)}.item-notes-edit .notes-input:focus{outline:none;border-color:var(--primary-color);background:#fff}.item-notes-edit .notes-input::placeholder{color:var(--text-muted);font-style:italic}.item-notes-edit .btn-save-notes{padding:.25rem .5rem;font-size:.75rem;font-weight:600;background:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;white-space:nowrap}.item-notes-edit .btn-save-notes:hover{background:var(--primary-dark, #1a365d)}.item-notes-edit .btn-save-notes:disabled{opacity:.6;cursor:not-allowed}.side-total{display:flex;justify-content:space-between;padding:.75rem 1rem;background:linear-gradient(to bottom,#f8f9fa,#e9ecef);color:#374151;font-weight:600;border-top:1px solid #dee2e6}.side-total span:last-child{color:#1f2937}.side-item .item-image{margin-top:.5rem;display:inline-block}.side-item .item-image img{max-width:150px;max-height:100px;object-fit:cover;border-radius:4px;border:1px solid var(--border-color);cursor:pointer;display:block}.side-item .item-image img:hover{opacity:.9;box-shadow:0 2px 8px #00000026}.side-item.expanded{background:var(--bg-secondary);border-radius:8px;margin-bottom:.5rem;padding:.75rem 1rem}.side-item .item-main{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.side-item .btn-expand-item{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:transparent;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;color:var(--text-muted);transition:all .2s;flex-shrink:0}.side-item .btn-expand-item:hover{background:var(--bg-secondary);border-color:var(--primary-color);color:var(--primary-color)}.side-item .btn-expand-item.has-content{background:#fef3c7;border-color:#f59e0b;color:#92400e}.side-item .btn-expand-item .content-indicator{font-size:.75rem;margin-right:.25rem}.side-item .item-expanded-content{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border-color);display:flex;flex-direction:column;gap:.75rem}.side-item .item-notes-section label,.side-item .item-image-section label{display:block;font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.375rem}.side-item .item-notes-section .notes-input-row{display:flex;gap:.5rem;align-items:center}.side-item .item-notes-section .notes-input{flex:1;padding:.5rem .75rem;font-size:.875rem;border:1px solid var(--border-color);border-radius:6px;background:#fff;transition:all .2s}.side-item .item-notes-section .notes-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #1e3a5f1a}.side-item .item-notes-section .btn-save-notes{padding:.5rem .75rem;font-size:.75rem;font-weight:600;background:var(--primary-color);color:#fff;border:none;border-radius:6px;cursor:pointer;white-space:nowrap;transition:background .2s}.side-item .item-notes-section .btn-save-notes:hover{background:var(--primary-dark, #1a365d)}.side-item .item-image-upload{display:flex;gap:.5rem;flex-wrap:wrap}.side-item .btn-upload-image{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;background:#10b981;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s}.side-item .btn-upload-image:hover{background:#059669}.side-item .btn-upload-image.btn-upload-file{background:var(--primary-color)}.side-item .btn-upload-image.btn-upload-file:hover{background:var(--primary-dark, #1a365d)}.side-item .btn-upload-image:disabled{opacity:.6;cursor:not-allowed}.side-item .item-image-preview{position:relative;display:inline-block}.side-item .item-image-preview img{max-width:200px;max-height:150px;object-fit:cover;border-radius:6px;border:1px solid var(--border-color);cursor:pointer;transition:opacity .2s}.side-item .item-image-preview img:hover{opacity:.9}.side-item .btn-remove-image{position:absolute;top:-8px;right:-8px;width:24px;height:24px;padding:0;display:flex;align-items:center;justify-content:center;background:#ef4444;color:#fff;border:2px solid white;border-radius:50%;cursor:pointer;box-shadow:0 2px 4px #0003;transition:transform .2s,background .2s}.side-item .btn-remove-image:hover{background:#dc2626;transform:scale(1.1)}@media(max-width:640px){.side-item .item-main{flex-wrap:wrap}.side-item .btn-expand-item{width:100%;justify-content:center;margin-top:.5rem}.side-item .item-notes-section .notes-input-row{flex-direction:column}.side-item .item-notes-section .notes-input,.side-item .item-notes-section .btn-save-notes{width:100%}.side-item .btn-upload-image{flex:1;justify-content:center}.side-item .item-image-preview img{max-width:100%}}.site-documentation-section{background:transparent!important;padding:0!important}.site-documentation-section h4{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.side-drawings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}@media(max-width:768px){.side-drawings-grid{grid-template-columns:1fr}}.side-drawing-item{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:#fff}.side-drawing-label{background:var(--primary-color);color:#fff;padding:.5rem 1rem;margin:0;font-size:.9rem;font-weight:600}.side-drawing-image{width:100%;height:auto;max-height:300px;object-fit:contain;background:#f0f0f0;cursor:pointer}.side-drawing-image:hover{opacity:.95}.side-drawing-notes{padding:.75rem 1rem;background:#f8fafc;border-top:1px solid var(--border-color)}.side-drawing-notes pre{margin:0;font-family:inherit;font-size:.85rem;color:var(--text-color);white-space:pre-wrap;word-wrap:break-word}.images-section{background:transparent!important;padding:0!important}.images-section h4{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.images-grid .image-item{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:#fff}.images-grid .image-item img{width:100%;height:120px;object-fit:cover;cursor:pointer}.images-grid .image-item img:hover{opacity:.9}.images-grid .image-caption{padding:.5rem;background:#f8fafc;border-top:1px solid var(--border-color)}.images-grid .image-side{display:block;font-size:.75rem;font-weight:600;color:#1e3a5f;text-transform:uppercase}.images-grid .image-item-name{display:block;font-size:.8rem;color:var(--text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.work-order-fullscreen-overlay{position:fixed;inset:0;background:#000000d9;z-index:9999;display:flex;flex-direction:column;align-items:center;padding:1rem;overflow-y:auto}.work-order-fullscreen-container{background:#fff;border-radius:8px;width:100%;max-width:900px;margin-top:3rem;margin-bottom:2rem;box-shadow:0 20px 60px #00000080;position:relative}.work-order-fullscreen-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#1e3a5f;color:#fff;border-radius:8px 8px 0 0;font-weight:600;font-size:1.1rem}.work-order-fullscreen{padding:1.5rem}.work-order-brand-header{background-color:#033249;color:#efede8;padding:1.5rem;text-align:center;margin:-1.5rem -1.5rem 1.5rem;border-radius:8px 8px 0 0}.work-order-brand-header .company-name{display:block;font-size:1.25rem;font-weight:600;letter-spacing:3px}.work-order-brand-header .document-type{display:block;font-size:1rem;opacity:.9;margin-top:.25rem}.work-order-fullscreen .work-order-section{page-break-inside:avoid}@media print{.work-order-fullscreen-overlay{position:static;background:none;padding:0}.work-order-fullscreen-container{max-width:100%;max-height:none;box-shadow:none}.work-order-fullscreen-header button{display:none}}.work-order-view-page{min-height:100vh;background:#f5f5f5;padding:2rem}.work-order-view-container{max-width:900px;margin:0 auto;background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000001a;overflow:hidden}.work-order-view-header{padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;border-radius:8px 8px 0 0}.work-order-view-header .header-left{display:flex;align-items:center;gap:1rem}.work-order-view-header .header-left .company-logo{max-width:110px;max-height:110px;border-radius:4px}.work-order-view-header .header-left .company-info{display:flex;flex-direction:column}.work-order-view-header .header-left .company-name{font-size:1.4rem;font-weight:700;margin-bottom:2px}.work-order-view-header .header-right{text-align:right}.work-order-view-header .header-right .document-type{font-size:1.25rem;font-weight:600}.work-order-view-header .header-right .project-id{font-size:.95rem;margin-top:4px}.print-button-container{padding:1rem 2rem;border-bottom:1px solid #eee;display:flex;justify-content:flex-end}.btn-print{background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-weight:600;cursor:pointer;font-size:1rem}.btn-print:hover{background:#2563eb}.work-order-view-section{padding:1.5rem 2rem;border-bottom:1px solid #eee}.work-order-view-section:last-of-type{border-bottom:none}.work-order-view-section h3{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:#1e3a5f;padding-bottom:.5rem;border-bottom:2px solid #eee}.work-order-view-section .info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.work-order-view-section .info-item{display:flex;flex-direction:column;gap:.25rem}.work-order-view-section .label{font-weight:600;color:#666;font-size:.85rem}.work-order-view-section .value{color:#1e293b}.work-order-view-section .scope-row{display:flex;gap:.5rem;margin-bottom:.5rem}.work-order-view-section .colors-grid{display:flex;gap:2rem;flex-wrap:wrap}.work-order-view-section .color-item{display:flex;gap:.5rem}.work-order-view-section .color-type{font-weight:600;color:#666}.work-order-view-section .color-name{color:#1e293b}.work-order-view-section .color-gallons{color:#6b7280;font-size:.9rem}.work-order-view-section .paint-totals{display:flex;gap:2rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb;font-weight:600;color:#374151}.work-order-view-section .work-items-list{display:flex;flex-direction:column;gap:.5rem}.work-order-view-section .work-item-row{display:flex;gap:.5rem}.work-order-view-section .work-item-row .category{font-weight:600;color:#666;min-width:120px}.work-order-view-section .work-item-row .items{color:#1e293b}.work-order-view-section .labor-table{width:100%;border-collapse:collapse}.work-order-view-section .labor-table th,.work-order-view-section .labor-table td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.work-order-view-section .labor-table th{background:#f8fafc;font-weight:600;color:#1e3a5f}.work-order-view-section .labor-table .number{text-align:right}.work-order-view-section .labor-table tfoot .subtotal td{background:#f8fafc;font-weight:600}.work-order-view-section .labor-table tfoot .grand-total td{background:#1e3a5f;color:#fff;font-weight:600}.work-order-view-section .job-details-text{margin:0;white-space:pre-wrap;color:#1e293b}.work-order-view-section.site-documentation .side-drawings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.work-order-view-section.site-documentation .side-drawing-item{border:1px solid #ddd;border-radius:8px;overflow:hidden}.work-order-view-section.site-documentation .side-drawing-item h4{margin:0;padding:.75rem 1rem;background:var(--primary-color);color:#fff;font-size:.9rem;font-weight:600}.work-order-view-section.site-documentation .side-drawing-item img{width:100%;height:auto;max-height:300px;object-fit:contain;background:#f0f0f0;cursor:pointer}.work-order-view-section.site-documentation .drawing-notes{padding:.75rem 1rem;background:#f8fafc;border-top:1px solid #ddd}.work-order-view-section.site-documentation .drawing-notes pre{margin:0;font-family:inherit;font-size:.85rem;color:#1e293b;white-space:pre-wrap;word-wrap:break-word}.work-order-view-section.site-documentation .drawing-annotations{margin-top:.75rem;padding:.75rem;background:#fef3c7;border-radius:6px;border:1px solid #fcd34d}.work-order-view-section.site-documentation .annotations-label{font-weight:600;color:#92400e;font-size:.8rem;margin-bottom:.5rem}.work-order-view-section.site-documentation .damage-tags{display:flex;flex-wrap:wrap;gap:.375rem}.work-order-view-section.site-documentation .damage-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:12px;color:#fff;font-size:.7rem;font-weight:500;box-shadow:0 1px 2px #0000001a}.work-order-view-section.site-documentation .damage-tag .tag-icon{font-size:.85rem}.work-order-view-section.site-documentation .damage-tag .tag-label{white-space:nowrap}.work-order-view-section.site-documentation .damage-tag .severity-badge{padding:.125rem .25rem;border-radius:4px;font-size:.6rem;text-transform:uppercase;background:#ffffff40;margin-left:.25rem}.work-order-view-section.site-documentation .damage-tag .severity-badge.high{background:#dc262666}.work-order-view-section.site-documentation .damage-tag .severity-badge.medium{background:#f59e0b66}.work-order-view-section.site-documentation .damage-tag .severity-badge.low{background:#22c55e66}.work-order-view-footer{padding:1.5rem 2rem;background:#f8fafc;text-align:center;color:#666;font-size:.85rem}.work-order-loading,.work-order-error{max-width:600px;margin:0 auto;background:#fff;padding:3rem;border-radius:8px;text-align:center}.work-order-error h2{color:#dc2626;margin:0 0 1rem}.work-order-error p{color:#666;margin:0}@media print{.work-order-view-page{background:#fff;padding:0}.work-order-view-container{box-shadow:none}.no-print{display:none!important}.work-order-view-section.site-documentation .side-drawings-grid{grid-template-columns:repeat(2,1fr)}.work-order-view-section.site-documentation .side-drawing-item{page-break-inside:avoid}.work-order-view-section.site-documentation .side-drawing-item img{max-height:250px}}@media(max-width:768px){.work-order-view-header{flex-direction:column;gap:1rem;align-items:flex-start}.work-order-view-header .header-right{text-align:left}.work-order-view-section .info-grid,.work-order-view-section.site-documentation .side-drawings-grid{grid-template-columns:1fr}.work-order-view-section.detailed-breakdown .side-breakdown{margin-bottom:1rem}.work-order-view-section.site-photos .images-grid{grid-template-columns:1fr}}.work-order-view-section.detailed-breakdown .side-breakdown{margin-bottom:1.5rem;border:1px solid #ddd;border-radius:8px;overflow:hidden}.work-order-view-section.detailed-breakdown .side-header{background:var(--brand-primary);color:var(--brand-primary-text);padding:.75rem 1rem;margin:0;font-size:1rem;font-weight:600}.work-order-view-section.detailed-breakdown .side-items{padding:.5rem 0}.work-order-view-section.detailed-breakdown .side-item{padding:.5rem 1rem;border-bottom:1px solid #eee}.work-order-view-section.detailed-breakdown .side-item:last-child{border-bottom:none}.work-order-view-section.detailed-breakdown .item-main{display:flex;justify-content:space-between;align-items:center}.work-order-view-section.detailed-breakdown .item-name{font-weight:600;color:#1e293b}.work-order-view-section.detailed-breakdown .item-hours{font-weight:600;color:#1e3a5f;font-size:.95rem}.work-order-view-section.detailed-breakdown .side-total{display:flex;justify-content:space-between;padding:.75rem 1rem;background:linear-gradient(to bottom,#f8f9fa,#e9ecef);color:#374151;font-weight:600;border-top:1px solid #dee2e6}.work-order-view-section.detailed-breakdown .side-total span:last-child{color:#1f2937}.work-order-view-section.detailed-breakdown .item-image{margin-top:.5rem;display:inline-block}.work-order-view-section.detailed-breakdown .item-image img{max-width:150px;max-height:100px;object-fit:cover;border-radius:4px;border:1px solid #e5e7eb;cursor:pointer}.work-order-view-section.detailed-breakdown .item-image img:hover{opacity:.9;box-shadow:0 2px 8px #00000026}.work-order-view-section.site-photos .images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.work-order-view-section.site-photos .image-item{border:1px solid #ddd;border-radius:8px;overflow:hidden;background:#fff}.work-order-view-section.site-photos .image-item img{width:100%;height:120px;object-fit:cover;cursor:pointer}.work-order-view-section.site-photos .image-item img:hover{opacity:.9}.work-order-view-section.site-photos .image-caption{padding:.5rem;background:#f8fafc;border-top:1px solid #ddd}.work-order-view-section.site-photos .image-side{display:block;font-size:.75rem;font-weight:600;color:#1e3a5f;text-transform:uppercase}.work-order-view-section.site-photos .image-item-name{display:block;font-size:.8rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice{padding:0}.invoice .invoice-brand-header{background-color:#033249;color:#efede8;padding:1.5rem;text-align:center;margin:-1rem -1rem 1rem;border-radius:8px 8px 0 0}.invoice .invoice-brand-header .logo{max-width:110px;height:auto;margin-bottom:.5rem}.invoice .invoice-brand-header .company-name{display:block;font-size:1.1rem;font-weight:600;letter-spacing:3px}.invoice .invoice-content{padding:0}.invoice .invoice-title h3{margin:0 0 1rem;font-size:1.25rem}.invoice .invoice-details{display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.invoice .invoice-to .label{font-size:.8rem;color:var(--text-light);text-transform:uppercase;margin-bottom:.25rem}.invoice .invoice-to .value{font-weight:600;font-size:1.1rem}.invoice .invoice-to .address{font-size:.9rem;color:var(--text-light);margin-top:.25rem}.invoice .invoice-dates{text-align:right}.invoice .invoice-dates .date-row{display:flex;gap:1rem;justify-content:flex-end;margin-bottom:.25rem}.invoice .invoice-dates .label{color:var(--text-light);font-size:.9rem}.invoice .invoice-dates .value{font-weight:500;min-width:90px}.invoice .invoice-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-bottom:1.5rem}.invoice .invoice-table th,.invoice .invoice-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border-color)}.invoice .invoice-table th{font-weight:600;color:var(--primary-text);font-size:.8rem;text-transform:uppercase;background:var(--primary-color)}.invoice .invoice-table td.number{text-align:right;font-family:monospace}.invoice .invoice-table .empty-row{text-align:center;color:var(--text-light);font-style:italic}.invoice .invoice-table .line-item-color{color:var(--text-light);font-size:.85em;font-style:italic}.invoice .invoice-terms{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.invoice .invoice-terms h4{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text-color)}.invoice .invoice-terms .terms-intro{font-size:.85rem;line-height:1.6;color:var(--text-color);margin-bottom:1rem}.invoice .invoice-terms .terms-section{margin-bottom:1rem}.invoice .invoice-terms .terms-section h5{font-size:.8rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.invoice .invoice-terms .terms-section p{font-size:.75rem;line-height:1.5;color:var(--text-light);margin-bottom:.5rem}.invoice .invoice-terms .terms-section p:last-child{margin-bottom:0}.invoice-fullscreen-overlay{position:fixed;inset:0;background:#000000e6;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:2rem;overflow-y:auto}.invoice-fullscreen-overlay:focus{outline:none}.invoice-fullscreen-container{position:relative;width:100%;max-width:900px}.btn-close-fullscreen{position:fixed;top:1rem;right:1rem;background:#ffffffe6;color:#333;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;z-index:1001;transition:all .2s}.btn-close-fullscreen:hover{background:#fff}.invoice.invoice-fullscreen{background:#fff;border-radius:8px;box-shadow:0 20px 60px #00000080;padding:2rem}.invoice.invoice-fullscreen .invoice-brand-header{padding:2rem;margin:-2rem -2rem 2rem}.invoice.invoice-fullscreen .invoice-brand-header .company-name{font-size:1.5rem;letter-spacing:4px}.invoice.invoice-fullscreen .invoice-title h3{font-size:1.75rem}.invoice.invoice-fullscreen .invoice-details{margin-bottom:2rem}.invoice.invoice-fullscreen .invoice-to .value{font-size:1.25rem}.invoice.invoice-fullscreen .invoice-table{font-size:1rem}.invoice.invoice-fullscreen .invoice-table th,.invoice.invoice-fullscreen .invoice-table td{padding:.875rem 1rem}.invoice.invoice-fullscreen .invoice-totals{max-width:350px}.invoice.invoice-fullscreen .invoice-totals .totals-row{font-size:1rem;padding:.5rem 0}.invoice.invoice-fullscreen .invoice-totals .totals-row.total{font-size:1.5rem}.invoice.invoice-fullscreen .invoice-terms{margin-top:3rem}.invoice.invoice-fullscreen .invoice-terms h4{font-size:1.25rem}.invoice.invoice-fullscreen .invoice-terms .terms-intro{font-size:1rem}.invoice.invoice-fullscreen .invoice-terms .terms-section h5{font-size:.95rem}.invoice.invoice-fullscreen .invoice-terms .terms-section p{font-size:.875rem}.fullscreen-accept-section{margin-top:3rem;padding:2rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;text-align:center;border:2px solid var(--border-color)}.fullscreen-accept-section .accept-prompt{font-size:1.25rem;color:var(--text-color);margin-bottom:1.5rem;font-weight:500}.fullscreen-accept-section .btn-accept-estimate{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;padding:1rem 3rem;font-size:1.25rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .3s;box-shadow:0 4px 15px #28a7454d}.fullscreen-accept-section .btn-accept-estimate:hover{transform:translateY(-2px);box-shadow:0 6px 20px #28a74566}.fullscreen-accept-section .btn-accept-estimate:disabled{background:#6c757d;cursor:not-allowed;transform:none;box-shadow:none}.fullscreen-accept-section .accept-disclaimer{margin-top:1rem;font-size:.85rem;color:var(--text-light)}.fullscreen-accept-section .accept-confirmed{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.fullscreen-accept-section .accept-confirmed>.accept-icon{display:flex;align-items:center;justify-content:center;width:60px;height:60px;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border-radius:50%;font-size:2rem;font-weight:700}.fullscreen-accept-section .accept-details{display:flex;flex-direction:column;align-items:center;gap:.25rem}.fullscreen-accept-section .accept-text{font-size:1.5rem;font-weight:600;color:#28a745}.fullscreen-accept-section .accept-date{font-size:.9rem;color:var(--text-light)}.fullscreen-accept-section .saved-signature{width:100%;max-width:400px;margin-top:1rem}.fullscreen-accept-section .saved-signature .signature-label{display:block;font-size:.9rem;color:var(--text-light);margin-bottom:.5rem;text-align:center}.fullscreen-accept-section .signature-display{background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:.5rem}.fullscreen-accept-section .signature-display img{display:block;width:100%;height:auto;max-height:120px;object-fit:contain}.signature-section{margin:1.5rem 0;width:100%;max-width:500px;margin-left:auto;margin-right:auto}.signature-label{display:block;font-size:1rem;font-weight:500;color:var(--text-color);margin-bottom:.75rem}.signature-pad-container{position:relative;background:#fff;border:2px solid var(--border-color);border-radius:8px;overflow:hidden}.signature-canvas{width:100%;height:120px;cursor:crosshair;touch-action:none}.signature-line{position:absolute;bottom:30px;left:20px;right:20px;height:1px;background:#ccc;pointer-events:none}.signature-line:after{content:"X";position:absolute;left:-15px;top:-10px;color:#999;font-size:14px}.signature-actions{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}.btn-clear-signature{background:transparent;border:1px solid var(--border-color);color:var(--text-light);padding:.4rem 1rem;font-size:.85rem;border-radius:4px;cursor:pointer;transition:all .2s}.btn-clear-signature:hover:not(:disabled){background:#f8f9fa;color:var(--text-color)}.btn-clear-signature:disabled{opacity:.5;cursor:not-allowed}.signature-status{color:#28a745;font-size:.85rem;font-weight:500}.invoice .btn-fullscreen{background:var(--bg-color);color:var(--text-color);border:1px solid var(--border-color)}.invoice .btn-fullscreen:hover{background:var(--border-color)}.invoice .invoice-totals{margin-left:auto;max-width:280px}.invoice .invoice-totals .totals-row{display:flex;justify-content:space-between;padding:.4rem 0;font-size:.9rem}.invoice .invoice-totals .totals-row .label{color:var(--text-light)}.invoice .invoice-totals .totals-row .value{font-weight:500;font-family:monospace}.invoice .invoice-totals .totals-row.discount{background:#ecfdf5;border-radius:4px;margin:4px 0}.invoice .invoice-totals .totals-row.discount .label,.invoice .invoice-totals .totals-row.discount .value{color:#059669;font-weight:600}.invoice .invoice-totals .totals-row.total{border-top:2px solid var(--border-color);margin-top:.5rem;padding-top:.75rem;font-size:1.1rem}.invoice .invoice-totals .totals-row.total .label,.invoice .invoice-totals .totals-row.total .value{font-weight:700;color:var(--text-color)}.invoice .empty-state{text-align:center;color:var(--text-light);padding:2rem;font-style:italic}.invoice .invoice-signature-section{margin-top:1.5rem;padding:1rem;background:linear-gradient(135deg,#dcfce7,#d1fae5);border:1px solid #86efac;border-radius:8px}.invoice .invoice-signature-section .signature-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.invoice .invoice-signature-section .signature-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#28a745;color:#fff;border-radius:50%;font-size:1rem;font-weight:700}.invoice .invoice-signature-section .signature-info{display:flex;flex-direction:column}.invoice .invoice-signature-section .signature-title{font-weight:600;color:#166534;font-size:.9rem}.invoice .invoice-signature-section .signature-date{font-size:.8rem;color:#15803d}.invoice .invoice-signature-section .signature-image-container{background:#fff;border:1px solid #bbf7d0;border-radius:6px;padding:.5rem}.invoice .invoice-signature-section .signature-image-container img{display:block;max-width:100%;max-height:80px;margin:0 auto}.invoice .invoice-actions{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap;align-items:center}.invoice .btn-send-invoice{padding:.75rem 2rem;font-size:1rem}.invoice .send-status{margin-top:1rem;padding:.75rem 1rem;border-radius:6px;font-size:.9rem}.invoice .send-status.success{background-color:#dcfce7;color:#166534}.invoice .send-status.error{background-color:#fee2e2;color:#991b1b}.painter-pay-breakdown .painter-pay-actions{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap;align-items:center}.painter-pay-breakdown .btn-fullscreen{background:var(--bg-color);color:var(--text-color);border:1px solid var(--border-color);padding:.625rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem}.painter-pay-breakdown .btn-fullscreen:hover{background:var(--border-color)}.painter-pay-breakdown .email-input-group{display:flex;gap:.75rem;align-items:center}.painter-pay-breakdown .email-input{flex:1;padding:.625rem .875rem;border:1px solid var(--border-color);border-radius:6px;font-size:.9rem}.painter-pay-breakdown .email-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #2563eb1a}.painter-pay-breakdown .btn-send-painter-pay{white-space:nowrap;padding:.625rem 1.25rem}.painter-pay-breakdown .send-status{margin-top:.75rem;padding:.625rem 1rem;border-radius:6px;font-size:.9rem}.painter-pay-breakdown .send-status.success{background-color:#dcfce7;color:#166534}.painter-pay-breakdown .send-status.error{background-color:#fee2e2;color:#991b1b}.accept-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#033249,#065a82);padding:2rem}.accept-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:100%;overflow:hidden}.accept-header{background-color:#033249;color:#efede8;padding:2rem;text-align:center}.accept-header h1{margin:0;font-size:1.5rem;letter-spacing:3px}.accept-content{padding:3rem 2rem;text-align:center}.accept-icon{width:80px;height:80px;border-radius:50%;background:#dcfce7;color:#16a34a;font-size:40px;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.accept-icon.success{background:#dcfce7;color:#16a34a}.accept-success h2,.accept-already h2{color:#16a34a;margin:0 0 1rem}.accept-error h2{color:#dc2626;margin:0 0 1rem}.accept-content p{color:#6b7280;margin:.5rem 0}.estimate-details{background:#f9fafb;padding:1rem;border-radius:8px;margin:1.5rem 0;text-align:left}.estimate-details p{margin:.25rem 0}.thank-you{font-size:1.1rem;color:#033249!important;font-weight:600;margin-top:1.5rem!important}.next-steps{font-size:.9rem;color:#9ca3af!important}.loading-spinner{color:#6b7280;font-size:1rem}@media(min-width:768px)and (max-width:1199px){body{font-size:16px}.app-header{padding:1rem 1.5rem}.app-header h1{font-size:1.25rem}.header-buttons{gap:.75rem}.btn-primary,.btn-secondary,.btn-success{padding:.75rem 1.25rem;font-size:1rem;min-height:48px}.btn-large{padding:1rem 2rem;font-size:1.125rem}.btn-icon{padding:.625rem .75rem;font-size:1.25rem;min-width:44px;min-height:44px}.content-sidebar{width:260px}.estimates-list{padding:.75rem}.dashboard-stats{gap:.5rem}.stat-card{padding:.875rem .5rem;min-height:70px}.stat-card .stat-value{font-size:1.5rem}.stat-card .stat-label{font-size:.7rem}.estimates-groups ul li{padding:.875rem 1rem;min-height:60px}.estimates-groups .estimate-info strong{font-size:1rem}.content-main{padding:1.25rem}.panels{grid-template-columns:1fr;gap:1.25rem}.right-panel{position:relative;top:0}.estimate-form,.measurement-table,.pricing-summary{padding:1.25rem}.form-section h3{font-size:1.125rem;margin-bottom:1.25rem}.form-group label{font-size:.8rem;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{padding:.75rem 1rem;font-size:1rem;min-height:48px;border-radius:6px}.form-group select{background-position:right .75rem center}.form-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.paint-row{grid-template-columns:1fr;gap:.75rem}.checkbox-group input[type=checkbox]{width:1.5rem;height:1.5rem}.checkbox-group label{font-size:1rem;gap:.75rem;min-height:44px;align-items:center}.measurement-table h3{font-size:1.125rem}.measurement-table .help-text{font-size:.875rem}.measurement-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.measurement-table table{min-width:600px}.measurement-table th{font-size:.8rem;padding:.75rem .5rem;white-space:nowrap}.measurement-table td{padding:.625rem .5rem}.measurement-table td input,.measurement-table td select{padding:.625rem .5rem;font-size:1rem;min-height:44px;border-radius:6px}.measurement-table td input[type=number]{width:65px;text-align:center;font-size:1rem;font-weight:500}.measurement-table td.total{font-size:1rem;min-width:50px}.measurement-table .actions{display:flex;gap:.25rem}.measurement-table .actions .btn-icon{min-width:40px;min-height:40px;font-size:1.125rem}.measurement-table .new-row td{padding:.875rem .5rem}.pricing-summary{padding:1.25rem}.summary-tabs{gap:.25rem;margin-bottom:1.25rem}.summary-tabs .tab{padding:.75rem 1rem;font-size:.95rem;min-height:44px}.summary-section h4{font-size:1rem}.summary-row{font-size:.95rem;padding:.5rem 0}.summary-row.total span{font-size:1.125rem}.invoice{padding:1.25rem}.invoice .invoice-table th,.invoice .invoice-table td{padding:.75rem .5rem;font-size:.95rem}.invoice .invoice-actions{flex-direction:column;gap:.75rem}.invoice .invoice-actions button{width:100%;min-height:48px}.painter-pay-breakdown{padding:1.25rem}.painter-pay-breakdown .breakdown-table th,.painter-pay-breakdown .breakdown-table td{padding:.75rem .5rem;font-size:.95rem}.painter-pay-actions{flex-direction:column}.painter-pay-actions .btn-fullscreen{width:100%;min-height:48px}.painter-pay-actions .email-input-group{flex-direction:column;gap:.75rem;width:100%}.painter-pay-actions .email-input{min-height:48px;font-size:1rem}.painter-pay-actions button{min-height:48px;width:100%}}@media(min-width:1024px)and (max-width:1199px){.content-sidebar{width:300px}.panels{grid-template-columns:1fr 380px}.right-panel{position:sticky;top:1rem}.form-grid{grid-template-columns:repeat(3,1fr)}.paint-row{grid-template-columns:1fr 1fr}}@media(max-width:767px){.app-header{padding:.875rem 1rem;flex-wrap:wrap;gap:.75rem}.app-header h1{font-size:1.125rem;width:100%;text-align:center}.header-buttons{width:100%;justify-content:center}.app-content{flex-direction:column}.content-sidebar{width:100%;max-height:40vh;border-right:none;border-bottom:1px solid var(--border-color)}.content-main{padding:1rem}.form-grid,.panels{grid-template-columns:1fr}.estimate-header{flex-direction:column;gap:1rem}.estimate-header .estimate-title{flex-direction:column;align-items:flex-start;gap:.5rem}.estimate-actions{width:100%}.estimate-actions button{flex:1}}@media(hover:none)and (pointer:coarse){.btn-primary:hover,.btn-secondary:hover,.btn-success:hover,.btn-icon:hover{transform:none}.btn-primary:active{background:var(--primary-hover);transform:scale(.98)}.btn-icon:active{background:var(--bg-color);transform:scale(.95)}button,[role=button],input[type=submit],input[type=button]{min-height:44px}button{-webkit-user-select:none;user-select:none}.sidebar,.main-content,.measurement-table{-webkit-overflow-scrolling:touch}input,select,textarea{font-size:16px!important}input[type=checkbox]{min-width:24px;min-height:24px}}@media(min-width:768px)and (max-width:1199px){.invoice-fullscreen-overlay{padding:1rem}.invoice-fullscreen-container{max-width:100%}.btn-close-fullscreen{top:.5rem;right:.5rem;padding:.625rem 1.25rem}.invoice.invoice-fullscreen{padding:1.5rem}.invoice.invoice-fullscreen .invoice-brand-header{padding:1.5rem;margin:-1.5rem -1.5rem 1.5rem}.fullscreen-accept-section{padding:1.5rem}.signature-canvas{height:150px}.btn-accept-estimate{padding:1rem 2rem;font-size:1.125rem;min-height:56px;width:100%;max-width:300px}}.estimate-document{background:var(--bg-white);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-md)}.estimate-document .empty-state{text-align:center;color:var(--text-light);padding:2rem}.estimate-doc-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;background:var(--primary-color);color:var(--primary-text);border-radius:8px 8px 0 0;margin-bottom:1.5rem}.estimate-doc-header .header-left{display:flex;align-items:flex-start;gap:1rem}.estimate-doc-header .company-logo{width:110px;height:auto}.estimate-doc-header .company-info{font-size:.875rem;color:var(--primary-text);opacity:.9;line-height:1.5}.estimate-doc-header .company-name{font-size:1.25rem;font-weight:700;color:var(--primary-text);margin-bottom:.25rem}.estimate-doc-header .header-right{text-align:right;font-size:.875rem;color:var(--primary-text);opacity:.9;line-height:1.5}.estimate-doc-header .owner-name{font-weight:600;color:var(--primary-text)}.estimate-title{text-align:center;font-size:1.5rem;font-weight:700;color:var(--primary-color);margin-bottom:1.5rem}.estimate-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--bg-color);border-radius:var(--radius-md)}.estimate-info-grid .info-column{font-size:.875rem}.estimate-info-grid .info-label{font-weight:600;color:var(--text-muted);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;margin-bottom:.25rem}.estimate-info-grid .info-value{font-weight:600;color:var(--text-color);margin-bottom:.125rem}.estimate-info-grid .info-column div:not(.info-label):not(.info-value){color:var(--text-secondary);font-size:.8125rem}.estimate-items-table{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.estimate-items-table .item-header{display:flex;justify-content:space-between;background:var(--primary-color);color:var(--primary-text);padding:.75rem 1rem;font-weight:600}.estimate-items-table .price-col{width:100px;text-align:right}.estimate-items-table .item-row{display:flex;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-light)}.estimate-items-table .item-row:last-child{border-bottom:none}.estimate-items-table .item-row.highlight-row{background:var(--primary-subtle)}.estimate-items-table .item-row.side-row{background:var(--bg-color)}.estimate-items-table .item-row.site-drawings-row{background:#f9fafb;border-bottom:none}.estimate-items-table .item-row.site-drawings-row .item-content.full-width{width:100%}.estimate-items-table .site-drawings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}.estimate-items-table .site-drawing-item{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff}.estimate-items-table .site-drawing-item .drawing-label{background:#f3f4f6;padding:.5rem .75rem;font-weight:600;font-size:.875rem;color:#374151}.estimate-items-table .site-drawing-item .drawing-image{width:100%;height:auto;cursor:pointer;display:block}.estimate-items-table .site-drawing-item .drawing-image:hover{opacity:.9}.estimate-items-table .site-drawing-item .drawing-notes{padding:.5rem .75rem;font-size:.8125rem;color:#6b7280;background:#fefce8;border-top:1px solid #e5e7eb}.estimate-items-table .item-row.subtotal-row{background:var(--background-secondary);border-top:2px solid var(--border-color)}.estimate-items-table .item-row.subtotal-row .item-title{font-weight:600}.estimate-items-table .item-row.discount-row{background:#ecfdf5}.estimate-items-table .item-row.discount-row .item-price{color:#059669;font-weight:600}.estimate-items-table .item-row.tax-row{background:var(--background-secondary)}.estimate-items-table .item-row.total-row{background:var(--primary-color);color:var(--primary-text)}.estimate-items-table .item-content{flex:1}.estimate-items-table .item-title{font-weight:600;color:var(--text-color);margin-bottom:.5rem}.estimate-items-table .total-row .item-title{color:var(--primary-text)}.estimate-items-table .item-details{font-size:.875rem;color:var(--text-secondary);line-height:1.6}.estimate-items-table .item-details p{margin-bottom:.5rem}.estimate-items-table .item-details .section-title{font-weight:600;margin-top:.75rem}.estimate-items-table .item-details ul{margin:.5rem 0;padding-left:1.25rem}.estimate-items-table .item-details li{margin-bottom:.25rem}.estimate-items-table .item-details .highlight{background:#fef3c7;padding:.125rem .375rem;border-radius:3px;font-weight:500}.estimate-items-table .item-details .note{font-style:italic;color:var(--text-light);font-size:.8125rem}.estimate-items-table .item-price{width:100px;text-align:right;font-weight:600;font-size:1rem;display:flex;align-items:center;justify-content:flex-end}.estimate-items-table .total-row .item-price{font-size:1.25rem;color:var(--primary-text)}.estimate-signature-section{margin-top:1.5rem;padding:1rem;background:var(--success-light);border-radius:var(--radius-md);border:1px solid var(--success-color)}.estimate-signature-section .signature-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.estimate-signature-section .signature-icon{width:28px;height:28px;background:var(--success-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.estimate-signature-section .signature-info{display:flex;flex-direction:column}.estimate-signature-section .signature-title{font-weight:600;color:var(--success-color)}.estimate-signature-section .signature-date{font-size:.8125rem;color:var(--text-light)}.estimate-signature-section .signature-image-container{background:#fff;padding:.5rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);max-width:300px}.estimate-signature-section .signature-image-container img{max-width:100%;height:auto}.estimate-doc-actions{display:flex;gap:.75rem;align-items:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-light)}.estimate-doc-actions .btn-fullscreen{flex:1;background:var(--bg-color);color:var(--text-color);border:1px solid var(--border-color);padding:.625rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all var(--transition-fast)}.estimate-doc-actions .btn-fullscreen:hover{background:var(--border-color)}.estimate-doc-actions .btn-send-estimate{flex:1;background:var(--primary-color);color:#fff;border:1px solid var(--primary-color);padding:.625rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all var(--transition-fast)}.estimate-doc-actions .btn-send-estimate:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.estimate-doc-actions .send-status{padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.875rem}.estimate-doc-actions .send-status.success{background:var(--success-light);color:var(--success-color)}.estimate-doc-actions .send-status.error{background:var(--danger-light);color:var(--danger-color)}.estimate-doc-actions .toggle-option{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);cursor:pointer;padding:.5rem .75rem;background:var(--bg-color);border-radius:6px;border:1px solid var(--border-color);white-space:nowrap}.estimate-doc-actions .toggle-option:hover{background:var(--bg-hover)}.estimate-doc-actions .toggle-option input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary-color);cursor:pointer}.estimate-doc-actions .toggle-option span{-webkit-user-select:none;user-select:none}.delivery-method-selector{display:flex;align-items:center;gap:.75rem;padding:.5rem 0}.delivery-method-selector .delivery-label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.delivery-method-selector .delivery-options{display:flex;gap:.25rem;background:var(--bg-secondary);padding:.25rem;border-radius:var(--radius-md);border:1px solid var(--border-light)}.delivery-method-selector .delivery-option{display:flex;align-items:center;gap:.25rem;padding:.375rem .75rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;color:var(--text-secondary);transition:all .15s ease}.delivery-method-selector .delivery-option input[type=radio]{display:none}.delivery-method-selector .delivery-option.selected{background:var(--primary-color);color:#fff;font-weight:500}.delivery-method-selector .delivery-option:not(.selected):hover{background:var(--bg-hover);color:var(--text-primary)}.delivery-method-selector.compact{padding:0}.delivery-method-selector.compact .delivery-select{padding:.5rem .75rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background:#fff;font-size:.875rem;cursor:pointer}.delivery-method-selector.compact .delivery-select:focus{outline:none;border-color:var(--primary-color)}.invite-section{display:flex;align-items:center;gap:.5rem}.invoice-actions .delivery-method-selector{margin-bottom:.5rem}.estimate-doc-fullscreen-overlay{position:fixed;inset:0;background:#000c;z-index:9999;overflow-y:auto;padding:2rem}.estimate-doc-fullscreen-container{max-width:900px;margin:0 auto;position:relative}.estimate-document.estimate-doc-fullscreen{background:#fff;border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-lg);margin-top:3rem}@media(max-width:768px){.estimate-info-grid{grid-template-columns:repeat(2,1fr)}.estimate-doc-header{flex-direction:column;gap:1rem}.estimate-doc-header .header-right{text-align:left}.estimate-doc-fullscreen-overlay{padding:1rem}.estimate-document.estimate-doc-fullscreen{padding:1rem;margin-top:3.5rem}.estimate-items-table .item-row{flex-direction:column;gap:.5rem}.estimate-items-table .item-price{width:100%;justify-content:flex-start;padding-top:.5rem;border-top:1px dashed var(--border-color)}}@media(max-width:480px){.estimate-info-grid{grid-template-columns:1fr}.estimate-document{padding:1rem}.estimate-doc-actions{flex-direction:column}.estimate-doc-actions .btn-fullscreen,.estimate-doc-actions .btn-send-estimate{width:100%}}.measurement-breakdown-row{margin-top:1rem}.measurement-breakdown-row .item-content.full-width{width:100%}.measurement-breakdown-grid{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.measurement-side-card{background:#fff;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.measurement-side-card.empty{display:none}.side-card-header{background:var(--primary-color);color:#fff;padding:.75rem 1rem;font-weight:600;font-size:1rem}.side-card-items{padding:0}.side-item{padding:.75rem 1rem;border-bottom:1px solid var(--border-light);background:var(--bg-subtle)}.side-item:last-child{border-bottom:none}.side-item:nth-child(2n){background:#fff}.side-item-main{display:flex;justify-content:space-between;align-items:center;width:100%;gap:1rem}.side-item-name{font-weight:500;color:var(--text-color);font-size:.9375rem}.side-item-qty{color:var(--text-secondary);font-size:.9375rem;white-space:nowrap}.side-item-notes{width:100%;font-size:.8125rem;color:var(--text-muted);font-style:italic;margin-top:.5rem;margin-bottom:0;line-height:1.4}.side-item-empty{color:var(--text-muted);font-style:italic;font-size:.875rem;margin:0;padding:.5rem 1rem}.side-item-image{width:100%;max-height:150px;object-fit:cover;border-radius:4px;margin-top:.5rem;cursor:pointer;transition:opacity .2s}.side-item-image:hover{opacity:.9}.estimate-terms{margin-top:2rem;padding:1.5rem;background:var(--bg-color);border-radius:var(--radius-md);border:1px solid var(--border-color)}.estimate-terms h4{font-size:1.125rem;font-weight:700;color:var(--text-color);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary-color)}.estimate-terms .terms-intro{font-size:.9375rem;color:var(--text-secondary);line-height:1.6;margin-bottom:1.25rem}.estimate-terms .terms-section{margin-bottom:1.25rem}.estimate-terms .terms-section:last-child{margin-bottom:0}.estimate-terms .terms-section h5{font-size:.8125rem;font-weight:700;color:var(--text-color);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.03em}.estimate-terms .terms-section p{font-size:.8125rem;color:var(--text-secondary);line-height:1.6;margin-bottom:.5rem}.estimate-terms .terms-section p:last-child{margin-bottom:0}.estimate-terms .terms-section p strong{color:var(--text-color)}.rich-text-editor{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-white)}.editor-toolbar{display:flex;gap:4px;padding:8px;background:var(--bg-color);border-bottom:1px solid var(--border-color);flex-wrap:wrap}.editor-toolbar button{padding:6px 10px;border:1px solid var(--border-color);background:var(--bg-white);border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;min-width:32px;color:var(--text-color);transition:all .15s ease}.editor-toolbar button:hover{background:var(--primary-subtle);border-color:var(--primary-color)}.editor-toolbar button.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.editor-toolbar .toolbar-divider{width:1px;background:var(--border-color);margin:0 4px;align-self:stretch}.editor-content{min-height:200px;max-height:400px;overflow-y:auto;padding:12px}.editor-content .ProseMirror{outline:none;min-height:176px}.editor-content .ProseMirror p{margin:0 0 .75rem}.editor-content .ProseMirror p:last-child{margin-bottom:0}.editor-content .ProseMirror h4,.editor-content .ProseMirror h5{margin:1rem 0 .5rem;font-weight:600}.editor-content .ProseMirror h4{font-size:1rem}.editor-content .ProseMirror h5{font-size:.875rem}.editor-content .ProseMirror ul,.editor-content .ProseMirror ol{padding-left:1.5rem;margin:.5rem 0}.editor-content .ProseMirror li{margin-bottom:.25rem}.editor-content .ProseMirror a{color:var(--primary-color);text-decoration:underline}.editor-content .ProseMirror .is-editor-empty:first-child:before{color:var(--text-light);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.editor-placeholders-hint{padding:8px 12px;background:var(--bg-color);border-top:1px solid var(--border-color);font-size:.75rem;color:var(--text-muted)}.editor-placeholders-hint code{background:var(--primary-subtle);padding:1px 4px;border-radius:3px;font-family:monospace;font-size:.7rem;color:var(--primary-color)}.section-editor-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.section-editor-content{background:var(--bg-white);border-radius:var(--radius-lg);width:100%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.section-editor-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);background:var(--bg-color)}.section-editor-header h3{margin:0;font-size:1.125rem}.section-editor-body{padding:1.5rem}.section-editor-body .form-group{margin-bottom:1.25rem}.section-editor-body .form-group:last-child{margin-bottom:0}.section-editor-body label{display:block;font-weight:600;margin-bottom:.5rem;color:var(--text-color)}.section-editor-body input[type=text]{width:100%;padding:.625rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.9375rem}.section-editor-body .checkbox-group{display:flex;align-items:center;gap:.5rem}.section-editor-body .checkbox-group input[type=checkbox]{width:18px;height:18px}.section-editor-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color);background:var(--bg-color)}.section-templates-table{width:100%;border-collapse:collapse}.section-templates-table th,.section-templates-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color)}.section-templates-table th{background:var(--bg-color);font-weight:600;font-size:.8125rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.section-templates-table td{font-size:.9375rem}.section-templates-table .section-name{font-weight:500}.section-templates-table .section-key{font-family:monospace;font-size:.8125rem;color:var(--text-light);background:var(--bg-color);padding:2px 6px;border-radius:3px}.section-templates-table .condition-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:500}.section-templates-table .condition-badge.conditional{background:var(--warning-light);color:var(--warning-dark)}.section-templates-table .toggle-cell{width:80px}.section-templates-table .actions-cell{width:100px;text-align:right}.section-header-actions{display:flex;gap:.75rem;align-items:center}.doc-type-select{padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;background:#fff;cursor:pointer}.doc-type-select:focus{outline:none;border-color:var(--primary-color)}.branding-section{background:var(--bg-color);padding:1.25rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.branding-section h4{margin:0 0 1rem;font-size:.875rem;color:var(--text-secondary)}.branding-section h4:not(:first-child){margin-top:1.5rem}.logo-upload-section{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.logo-preview{min-width:120px;min-height:60px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem}.logo-preview img{max-width:100%;height:auto}.no-logo{color:var(--text-secondary);font-size:.75rem;font-style:italic}.logo-upload-btn{cursor:pointer}.branding-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.branding-grid label{display:flex;flex-direction:column;gap:.375rem;font-size:.75rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.04em}.color-input-wrapper{display:flex;gap:.5rem;align-items:center}.color-input-wrapper input[type=color]{width:40px;height:36px;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer}.color-input-wrapper input[type=text]{flex:1;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:monospace;font-size:.875rem}.placeholder-hint{font-size:.75rem;color:var(--text-muted);margin-bottom:.75rem;line-height:1.6}.placeholder-hint code{background:var(--bg-color);padding:.125rem .375rem;border-radius:3px;font-size:.6875rem;margin-right:.25rem}.template-subject-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9375rem}.template-subject-input:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.public-estimate-page{min-height:100vh;background:linear-gradient(135deg,#1e3a5f,#2c5282);padding:2rem}.public-estimate-container{max-width:900px;margin:0 auto}.public-estimate-doc{background:#fff;border-radius:var(--radius-lg);box-shadow:0 25px 50px -12px #00000040;padding:2rem}.public-estimate-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.public-estimate-loading .loading-spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.public-estimate-loading p{color:var(--text-secondary);font-size:1.125rem}.public-estimate-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:3rem;text-align:center}.public-estimate-error .error-icon{width:64px;height:64px;background:var(--danger-light);color:var(--danger-color);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;margin-bottom:1.5rem}.public-estimate-error h2{color:var(--text-color);margin-bottom:1rem}.public-estimate-error p{color:var(--text-secondary);margin-bottom:1rem}.public-estimate-error .contact-info{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color);color:var(--text-color)}.public-accept-section{margin-top:2rem;padding:2rem;background:#f8fafc;border-radius:var(--radius-lg);border:1px solid var(--border-color)}.public-accept-section .accept-heading{font-size:1.5rem;font-weight:700;color:var(--text-color);text-align:center;margin-bottom:1.5rem}.public-accept-section .signature-section{margin-bottom:1.5rem}.public-accept-section .signature-label{display:block;font-size:1rem;font-weight:600;color:var(--text-color);margin-bottom:.75rem}.public-accept-section .signature-pad-container{position:relative;background:#fff;border:2px solid #475569;border-radius:var(--radius-md);overflow:hidden}.public-accept-section .signature-canvas{width:100%;height:150px;cursor:crosshair;touch-action:none}.public-accept-section .signature-line{position:absolute;bottom:40px;left:20px;right:20px;height:1px;background:#94a3b8}.public-accept-section .signature-actions{display:flex;align-items:center;gap:1rem;margin-top:.75rem}.public-accept-section .btn-clear-signature{background:none;border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;color:var(--text-secondary);cursor:pointer}.public-accept-section .btn-clear-signature:hover:not(:disabled){background:var(--bg-color)}.public-accept-section .btn-clear-signature:disabled{opacity:.5;cursor:not-allowed}.public-accept-section .signature-status{font-size:.875rem;color:var(--success-color);font-weight:500}.public-accept-section .btn-accept-estimate{display:block;width:100%;padding:1rem 2rem;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);box-shadow:0 2px 4px #0000001a;color:#fff;border:none;border-radius:var(--radius-md);font-size:1.25rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 4px 6px -1px #0000001a}.public-accept-section .btn-accept-estimate:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 10px -1px #00000026}.public-accept-section .btn-accept-estimate:disabled{opacity:.6;cursor:not-allowed;transform:none}.public-accept-section .accept-decline-buttons{display:flex;gap:1rem;margin-bottom:0}.public-accept-section .accept-decline-buttons .btn-accept-estimate{flex:2}.public-accept-section .btn-decline-estimate{flex:1;padding:1rem 1.5rem;background:#fff;color:#dc2626;border:2px solid #dc2626;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.public-accept-section .btn-decline-estimate:hover{background:#dc2626;color:#fff}.public-accept-section .decline-confirmed{text-align:center;padding:2rem}.public-accept-section .decline-icon{display:inline-block;width:48px;height:48px;border-radius:50%;background:#fee2e2;color:#dc2626;font-size:1.5rem;line-height:48px;margin-bottom:1rem}.public-accept-section .decline-details{margin-bottom:1rem}.public-accept-section .decline-text{font-size:1.25rem;font-weight:600;color:#dc2626}.public-accept-section .decline-message{color:var(--text-muted);font-size:.9375rem;margin-bottom:.5rem}.public-accept-section .contact-info{font-size:.875rem;color:var(--text-color)}.decline-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.decline-modal{background:#fff;border-radius:var(--radius-lg);padding:2rem;max-width:400px;width:100%;box-shadow:0 20px 25px -5px #0000001a}.decline-modal h3{margin:0 0 1rem;font-size:1.25rem;color:var(--text-color)}.decline-modal p{margin:0 0 1.5rem;color:var(--text-muted);font-size:.9375rem;line-height:1.5}.decline-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.decline-modal-actions .btn-secondary{padding:.75rem 1.5rem}.decline-modal-actions .btn-danger{padding:.75rem 1.5rem;background:#dc2626;color:#fff;border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer}.decline-modal-actions .btn-danger:hover{background:#b91c1c}.decline-modal-actions .btn-danger:disabled{opacity:.6;cursor:not-allowed}.public-accept-section .accept-disclaimer{text-align:center;font-size:.8125rem;color:var(--text-muted);margin-top:1rem}.public-accept-section .accept-confirmed{text-align:center}.public-accept-section .accept-confirmed .accept-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--success-color);color:#fff;border-radius:50%;font-size:2rem;margin-bottom:1rem}.public-accept-section .accept-confirmed .accept-details{margin-bottom:1.5rem}.public-accept-section .accept-confirmed .accept-text{display:block;font-size:1.5rem;font-weight:700;color:var(--success-color);margin-bottom:.25rem}.public-accept-section .accept-confirmed .accept-date{display:block;font-size:.9375rem;color:var(--text-secondary)}.public-accept-section .accept-confirmed .saved-signature{margin:1.5rem 0;padding:1rem;background:#fff;border-radius:var(--radius-md);border:1px solid var(--border-color)}.public-accept-section .accept-confirmed .signature-display{margin-top:.5rem}.public-accept-section .accept-confirmed .signature-display img{max-width:300px;max-height:100px}.public-accept-section .thank-you-message{font-size:1.125rem;color:var(--text-color);margin-top:1rem}@media(max-width:768px){.public-estimate-page,.public-estimate-doc{padding:1rem}.public-accept-section{padding:1.5rem}.public-accept-section .accept-heading{font-size:1.25rem}.public-accept-section .btn-accept-estimate{font-size:1.125rem}}.public-invoice-page{min-height:100vh;background:#f3f4f6;padding:2rem}.public-invoice-page .loading-container,.public-invoice-page .error-container{max-width:600px;margin:4rem auto;text-align:center;padding:2rem;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.public-invoice-container{max-width:800px;margin:0 auto;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.public-invoice-page .invoice-header{display:flex;justify-content:space-between;align-items:flex-start;padding:2rem;gap:2rem}.public-invoice-page .company-info{display:flex;gap:1rem;align-items:flex-start}.public-invoice-page .company-logo{max-width:110px;max-height:110px;border-radius:var(--radius-sm)}.public-invoice-page .company-details h1{font-size:1.375rem;margin:0 0 .25rem}.public-invoice-page .company-details p{margin:0;font-size:.875rem;opacity:.9}.public-invoice-page .document-title{text-align:right}.public-invoice-page .document-title h2{font-size:1.25rem;margin:0 0 .25rem}.public-invoice-page .document-title .project-id{font-size:.875rem;opacity:.85}.public-invoice-page .payment-status-banner{padding:.75rem 2rem;text-align:center;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem}.public-invoice-page .payment-status-paid{background:#d1fae5;color:#065f46}.public-invoice-page .payment-status-pending{background:#fef3c7;color:#92400e}.public-invoice-page .payment-status-partial{background:#dbeafe;color:#1e40af}.public-invoice-page .payment-status-banner.overdue{background:#fee2e2;color:#991b1b}.public-invoice-page .invoice-content{padding:2rem}.public-invoice-page .invoice-details{display:flex;justify-content:space-between;margin-bottom:2rem}.public-invoice-page .invoice-to .label{font-size:.75rem;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.25rem}.public-invoice-page .invoice-to .value{font-size:1.125rem;font-weight:600}.public-invoice-page .invoice-to .address{color:var(--text-secondary)}.public-invoice-page .invoice-dates{text-align:right}.public-invoice-page .date-row{display:flex;gap:1rem;justify-content:flex-end;margin-bottom:.25rem}.public-invoice-page .date-row .label{color:var(--text-secondary)}.public-invoice-page .invoice-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.public-invoice-page .invoice-table th,.public-invoice-page .invoice-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color)}.public-invoice-page .invoice-table th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.public-invoice-page .invoice-table .number{text-align:right}.public-invoice-page .line-item-color{color:var(--text-secondary);font-style:italic}.public-invoice-page .invoice-totals{max-width:300px;margin-left:auto}.public-invoice-page .totals-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.public-invoice-page .totals-row.discount{background:#ecfdf5;border-radius:4px;color:#059669;font-weight:600;margin:4px 0}.public-invoice-page .totals-row.total{font-size:1.125rem;font-weight:700;border-top:2px solid var(--border-color);border-bottom:none;padding-top:.75rem}.public-invoice-page .invoice-footer{padding:1.5rem 2rem;background:#f9fafb;text-align:center;color:var(--text-secondary);font-size:.875rem}@media(max-width:768px){.public-invoice-page{padding:1rem}.public-invoice-page .invoice-header{flex-direction:column;gap:1rem}.public-invoice-page .document-title{text-align:left}.public-invoice-page .invoice-details{flex-direction:column;gap:1.5rem}.public-invoice-page .invoice-dates{text-align:left}.public-invoice-page .date-row{justify-content:flex-start}}.ai-analysis-modal{position:fixed;inset:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.ai-analysis-content{background:var(--bg-white);border-radius:16px;box-shadow:0 0 0 1px #0000000d,0 25px 50px -12px #00000040;max-width:600px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out}.ai-analysis-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--border-color);background:var(--primary-subtle)}.ai-analysis-header h3{font-size:1.125rem;font-weight:600;color:var(--text-color);margin:0}.ai-analysis-header .btn-close{background:transparent;border:none;font-size:1.5rem;color:var(--text-light);cursor:pointer;padding:.25rem .5rem;line-height:1;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.ai-analysis-header .btn-close:hover{background:var(--bg-hover);color:var(--text-color)}.ai-analysis-header-v2{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);color:#fff;flex-shrink:0}.ai-header-title{display:flex;align-items:center;gap:1rem}.ai-header-icon{width:44px;height:44px;background:#ffffff26;border-radius:10px;display:flex;align-items:center;justify-content:center}.ai-header-icon svg{width:24px;height:24px;stroke:#fff}.ai-header-text h3{margin:0;font-size:1.125rem;font-weight:600;color:#fff}.ai-header-subtitle{font-size:.875rem;color:#fffc;margin-top:.125rem;display:block}.ai-header-actions{display:flex;align-items:center;gap:.5rem}.ai-btn-help,.ai-btn-close{width:36px;height:36px;border-radius:8px;border:none;background:#ffffff26;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.ai-btn-help:hover,.ai-btn-close:hover{background:#ffffff40}.ai-btn-help svg,.ai-btn-close svg{width:18px;height:18px}.ai-analysis-body{padding:1.5rem;overflow-y:auto;flex:1;background:var(--bg-color)}.ai-step{margin-bottom:1.5rem;background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #00000014;border:1px solid var(--border-color)}.ai-step:last-child{margin-bottom:0}.ai-step h4{font-size:.9375rem;font-weight:600;color:var(--text-color);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.ai-step h4:before{content:"";width:4px;height:16px;background:var(--primary-color);border-radius:2px}.ai-step .step-description{font-size:.8125rem;color:var(--text-light);margin-bottom:.75rem;line-height:1.5}.image-upload-area{border:2px dashed var(--border-color);border-radius:10px;overflow:hidden;background:var(--bg-color);transition:all .2s}.image-upload-area:hover{border-color:var(--primary-color);background:var(--primary-subtle)}.upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1.5rem;cursor:pointer;transition:all .2s}.upload-placeholder:hover{background:var(--primary-subtle)}.upload-placeholder .upload-icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.6}.upload-placeholder span{color:var(--text-light);font-size:.875rem}.upload-options{display:flex;gap:var(--space-md);padding:var(--space-xl);justify-content:center;flex-wrap:wrap}.upload-option-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-lg) var(--space-xl);border:2px solid var(--border-color);border-radius:var(--radius-md);background:#fff;cursor:pointer;transition:all var(--transition-fast);min-width:140px}.upload-option-btn:hover{background:var(--primary-subtle);border-color:var(--primary-color)}.upload-option-btn:active{transform:scale(.98)}.upload-option-btn .upload-icon{font-size:2rem}.upload-option-btn span:last-child{font-size:.875rem;font-weight:500;color:var(--text-color)}.camera-btn:hover{border-color:#059669;background:#ecfdf5}.gallery-btn:hover{border-color:var(--primary-color);background:var(--primary-subtle)}@media(max-width:768px){.upload-options{flex-direction:column;padding:var(--space-lg)}.upload-option-btn{width:100%;flex-direction:row;justify-content:flex-start;padding:var(--space-md) var(--space-lg)}.upload-option-btn .upload-icon{font-size:1.5rem}}.image-preview{position:relative}.image-preview img{width:100%;max-height:300px;object-fit:contain;display:block;background:#f1f5f9}.btn-change-image{position:absolute;bottom:var(--space-sm);right:var(--space-sm);background:#000000b3;color:#fff;border:none;padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;cursor:pointer;transition:all var(--transition-fast)}.btn-change-image:hover{background:#000000d9}.reference-inputs{display:flex;gap:var(--space-sm);align-items:center}.reference-inputs select{flex:1;padding:.625rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;background:var(--bg-white)}.reference-value-input{display:flex;align-items:center;gap:.25rem}.reference-value-input input{width:70px;padding:.625rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;text-align:center}.reference-value-input span{font-size:.8125rem;color:var(--text-light)}.btn-analyze{background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:var(--space-sm)}.btn-analyze:hover:not(:disabled){background:var(--primary-hover)}.btn-analyze:disabled{background:var(--text-muted);cursor:not-allowed}.analyzing-progress{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);color:var(--text-light);font-size:.875rem}.spinner{width:18px;height:18px;border:2px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.ai-analysis-body .error-message{color:var(--danger-color);background:var(--danger-light);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:.8125rem;margin-top:var(--space-sm)}.ai-results{background:var(--bg-color);border-radius:var(--radius-md);padding:var(--space-md);margin-top:var(--space-md);border:1px solid var(--border-color)}.ai-results h4{font-size:1rem;font-weight:600;margin-bottom:var(--space-sm);color:var(--text-color)}.ai-notes{font-size:.8125rem;color:var(--text-secondary);margin-bottom:var(--space-sm);font-style:italic}.stories-info{font-size:.8125rem;color:var(--text-light);margin-bottom:var(--space-md)}.features-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:var(--space-md)}.feature-item{display:flex;align-items:center;gap:var(--space-sm);padding:.625rem;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.feature-item:hover{border-color:var(--primary-color)}.feature-item.selected{border-color:var(--primary-color);background:var(--primary-subtle)}.feature-item input[type=checkbox]{width:16px;height:16px;cursor:pointer}.feature-type{flex:1;font-size:.875rem;font-weight:500;color:var(--text-color);text-transform:capitalize}.feature-value{font-size:.875rem;color:var(--text-secondary);font-weight:500}.feature-confidence{font-size:.75rem;color:var(--text-muted);background:var(--bg-hover);padding:.125rem .375rem;border-radius:var(--radius-full)}.ai-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--border-color)}.ai-not-configured{padding:var(--space-md)}.ai-not-configured p{margin-bottom:var(--space-md);color:var(--text-secondary)}.ai-not-configured ol{margin:0 0 var(--space-lg) var(--space-lg);color:var(--text-secondary);font-size:.875rem}.ai-not-configured ol li{margin-bottom:var(--space-xs)}.ai-not-configured code{background:var(--bg-color);padding:.125rem .375rem;border-radius:var(--radius-sm);font-size:.8125rem}.draw-measure-section{background:linear-gradient(135deg,var(--primary-subtle) 0%,var(--primary-light) 100%);border:1px solid var(--primary-color);border-radius:var(--radius-lg);padding:var(--space-lg);margin-top:var(--space-lg)}.draw-measure-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.draw-measure-icon{width:44px;height:44px;background:var(--primary-color);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow)}.draw-measure-title{display:flex;flex-direction:column;gap:2px}.draw-measure-title .title-text{font-size:1rem;font-weight:600;color:var(--text-color)}.draw-measure-title .title-subtitle{font-size:.8125rem;color:var(--text-secondary)}.draw-measure-buttons{display:flex;gap:var(--space-sm);flex-wrap:wrap}.btn-draw-measure{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-xs)}.btn-draw-measure:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-draw-measure:active{transform:translateY(0);box-shadow:var(--shadow-xs)}.btn-draw-measure svg{opacity:.9}.ai-analyze-buttons{display:flex;gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap}.btn-ai-analyze{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-ai-analyze:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-ai-analyze .ai-icon{font-size:.9375rem}@media(max-width:640px){.draw-measure-section{padding:var(--space-md)}.draw-measure-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.draw-measure-icon{width:36px;height:36px}.draw-measure-icon svg{width:18px;height:18px}.draw-measure-buttons{width:100%}.btn-draw-measure{flex:1;justify-content:center;min-width:calc(50% - var(--space-sm))}}.ai-analysis-content .loading{padding:var(--space-xl);text-align:center;color:var(--text-light)}.ai-analysis-content.ai-analysis-wide{max-width:95vw;width:95vw;max-height:95vh;border-radius:16px}.ai-analysis-content.ai-analysis-wide .ai-analysis-body{max-height:calc(95vh - 76px)}.reload-prompt-container{display:flex;align-items:center;justify-content:center;padding:1rem}.reload-prompt-dialog{background:var(--bg-white);border-radius:16px;box-shadow:0 0 0 1px #0000000d,0 25px 50px -12px #00000040;width:100%;max-width:420px;overflow:hidden;animation:slideUp .3s ease-out}.reload-prompt-icon{width:48px;height:48px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-right:1rem}.reload-prompt-icon svg{width:24px;height:24px;stroke:#fff}.reload-prompt-header{display:flex;flex-direction:column;flex:1}.reload-prompt-header h3{margin:0;font-size:1.125rem;font-weight:600;color:#fff}.reload-prompt-side{font-size:.875rem;color:#fffc;margin-top:.25rem}.reload-prompt-title-bar{display:flex;align-items:center;padding:1.25rem 1.5rem;background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%)}.reload-prompt-description{margin:0;padding:1.5rem;color:var(--text-light);line-height:1.6;font-size:.9375rem;border-bottom:1px solid var(--border-color)}.reload-prompt-actions{display:flex;gap:.75rem;padding:1.25rem 1.5rem;background:var(--bg-color)}.reload-prompt-actions .btn-reload{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;font-weight:500;font-size:.9375rem;cursor:pointer;transition:all .2s}.reload-prompt-actions .btn-reload:hover{background:var(--primary-hover);transform:translateY(-1px)}.reload-prompt-actions .btn-reload svg{width:18px;height:18px}.reload-prompt-actions .btn-fresh{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;background:#fff;color:var(--text-color);border:1px solid var(--border-color);padding:.75rem 1.25rem;border-radius:8px;font-weight:500;font-size:.9375rem;cursor:pointer;transition:all .2s}.reload-prompt-actions .btn-fresh:hover{background:var(--bg-color);border-color:var(--text-light)}.reload-prompt-actions .btn-fresh svg{width:18px;height:18px}.reload-prompt-dialog .btn-cancel{display:block;width:100%;background:transparent;border:none;border-top:1px solid var(--border-color);color:var(--text-light);font-size:.875rem;cursor:pointer;padding:.875rem 1rem;transition:all .2s}.reload-prompt-dialog .btn-cancel:hover{color:var(--text-color);background:var(--bg-color)}.reload-prompt-dialog.reload-prompt-loading{padding:2.5rem;text-align:center}.reload-prompt-dialog.reload-prompt-loading p{margin:0;color:var(--text-light);font-size:.9375rem}.reload-loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;margin:0 auto 1rem;animation:spin .8s linear infinite}.ai-results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.ai-results-header h4{margin:0}.view-mode-toggle{display:flex;gap:.25rem;background:var(--bg-color);padding:.25rem;border-radius:var(--radius-md)}.view-mode-toggle .toggle-btn{padding:.375rem .75rem;border:none;background:transparent;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;color:var(--text-light);cursor:pointer;transition:all var(--transition-fast)}.view-mode-toggle .toggle-btn:hover{color:var(--text-color)}.view-mode-toggle .toggle-btn.active{background:var(--primary-color);color:#fff}.ai-overlay-container{display:flex;gap:var(--space-md);margin-top:var(--space-md)}.ai-overlay-image-wrapper{position:relative;flex:1;min-width:0}.ai-overlay-image{width:100%;display:block;border-radius:var(--radius-md)}.ai-bounding-box{position:absolute;border:2px solid;border-radius:4px;cursor:pointer;transition:all var(--transition-fast);box-sizing:border-box}.ai-bounding-box:hover,.ai-bounding-box.hovered{border-width:3px;z-index:10}.ai-bounding-box.selected{border-width:3px}.ai-box-label{position:absolute;top:-1px;left:-1px;padding:2px 6px;font-size:.6875rem;font-weight:600;color:#fff;white-space:nowrap;border-radius:3px 0;text-transform:capitalize}.ai-overlay-legend{width:240px;flex-shrink:0;background:var(--bg-color);border-radius:var(--radius-md);padding:var(--space-sm);max-height:400px;overflow-y:auto}.ai-overlay-legend h5{font-size:.75rem;font-weight:600;color:var(--text-secondary);margin:0 0 var(--space-sm) 0}.legend-item{display:flex;align-items:center;gap:.375rem;padding:.5rem;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.legend-item:hover,.legend-item.hovered{background:var(--bg-white)}.legend-item.selected{background:var(--bg-white);border-color:var(--border-color)}.legend-item input[type=checkbox]{width:14px;height:14px;cursor:pointer}.legend-color{width:12px;height:12px;border-radius:2px;flex-shrink:0}.legend-label{flex:1;font-size:.75rem;font-weight:500;text-transform:capitalize;color:var(--text-color)}.legend-value{font-size:.75rem;color:var(--text-secondary);font-weight:500}.legend-confidence{font-size:.625rem;color:var(--text-muted);background:var(--bg-hover);padding:.125rem .25rem;border-radius:var(--radius-full)}.enhanced-mode-toggle{margin-bottom:var(--space-md)}.enhanced-mode-toggle .toggle-label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;padding:.625rem;background:linear-gradient(135deg,#dbeafe,#ede9fe);border-radius:var(--radius-md);border:1px solid #c7d2fe}.enhanced-mode-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer}.enhanced-mode-toggle .toggle-text{font-size:.875rem;color:var(--text-color);font-weight:500}.enhanced-mode-toggle .toggle-badge{font-size:.6875rem;background:var(--primary-color);color:#fff;padding:.125rem .5rem;border-radius:var(--radius-full);font-weight:600;text-transform:uppercase}.feature-type-selector{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.feature-type-selector label{font-weight:500;color:var(--text-secondary)}.feature-type-selector select{flex:1;max-width:200px}.interactive-canvas-container{display:flex;gap:var(--space-md)}.interactive-canvas{flex:3;position:relative;cursor:crosshair;border:2px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;-webkit-user-select:none;user-select:none;min-height:500px;z-index:1;background:#f5f5f5}.interactive-canvas .canvas-image-wrapper{position:relative;width:100%;line-height:0}.interactive-canvas .canvas-image{width:100%;height:auto;display:block;pointer-events:none}.interactive-canvas .line-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.drawn-box{position:absolute;border:3px solid;border-radius:4px;cursor:pointer;transition:box-shadow .15s ease}.drawn-box:hover,.drawn-box.selected{box-shadow:0 0 0 2px #fffc,0 0 10px #0000004d}.drawn-box.drawing{border-style:dashed;pointer-events:none}.drawn-box .box-label{position:absolute;top:-1px;left:-1px;padding:2px 8px;font-size:.75rem;font-weight:500;color:#fff;border-radius:3px 0 4px;white-space:nowrap}.drawn-box .box-estimate{font-weight:600}.drawn-box .box-delete{position:absolute;top:-8px;right:-8px;width:20px;height:20px;border:none;border-radius:50%;background:var(--danger-color);color:#fff;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease}.drawn-box:hover .box-delete,.drawn-box.selected .box-delete{opacity:1}.canvas-controls{position:absolute;top:10px;right:10px;display:flex;align-items:center;gap:8px;z-index:100}.undo-redo-controls,.zoom-controls{display:flex;align-items:center;gap:4px;background:#fffffff2;padding:6px 10px;border-radius:var(--radius-md);box-shadow:0 2px 8px #00000026}.canvas-ctrl-btn{width:32px;height:32px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#fff;font-size:1.25rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);color:var(--text-color)}.canvas-ctrl-btn:hover:not(:disabled){background:var(--primary-subtle);border-color:var(--primary-color)}.canvas-ctrl-btn:active:not(:disabled){transform:scale(.95)}.canvas-ctrl-btn:disabled{opacity:.4;cursor:not-allowed}.zoom-level{min-width:45px;text-align:center;font-size:.8125rem;font-weight:600;color:var(--text-color)}.zoom-hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);background:#0009;color:#fff;padding:6px 12px;border-radius:var(--radius-md);font-size:.75rem;pointer-events:none;z-index:100;opacity:.8}.interactive-canvas{overflow:hidden}.canvas-image-wrapper{transition:transform .1s ease-out;will-change:transform}@media(max-width:768px){.canvas-controls{top:8px;right:8px;gap:6px}.undo-redo-controls,.zoom-controls{padding:4px 6px}.canvas-ctrl-btn{width:36px;height:36px;font-size:1.25rem}.zoom-level{font-size:.8125rem;min-width:42px}.zoom-hint{bottom:8px;font-size:.8125rem;padding:8px 16px}}@media(max-width:480px){.canvas-controls{flex-direction:column;align-items:flex-end;gap:4px}}@media(hover:hover){.zoom-hint{display:none}}.drawn-box .box-delete:hover{background:var(--danger-hover)}.drawn-boxes-list{width:320px;min-width:280px;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;flex-direction:column;max-height:500px}.drawn-boxes-list .list-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-color)}.drawn-boxes-list .list-header h5{margin:0;font-size:.875rem}.drawn-boxes-list .list-actions{display:flex;gap:var(--space-xs)}.drawn-boxes-list .btn-clear,.drawn-boxes-list .btn-delete-selected{padding:4px 8px;font-size:.75rem;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer}.drawn-boxes-list .btn-clear:hover,.drawn-boxes-list .btn-delete-selected{background:var(--danger-light);border-color:var(--danger-color);color:var(--danger-color)}.drawn-boxes-list .btn-delete-selected:hover{background:var(--danger-color);color:#fff}.drawn-boxes-list .no-boxes{padding:var(--space-md);text-align:center;color:var(--text-muted);font-size:.875rem}.drawn-boxes-list .keyboard-hint{padding:4px var(--space-md);margin:0;font-size:.6875rem;color:var(--text-muted);background:var(--bg-hover);border-bottom:1px solid var(--border-light)}.drawn-boxes-list .boxes-scroll{flex:1;overflow-y:auto}.drawn-boxes-list .box-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-light);cursor:pointer;transition:background .15s ease}.drawn-boxes-list .box-item:hover{background:var(--bg-hover)}.drawn-boxes-list .box-item.selected{background:var(--primary-light)}.drawn-boxes-list .box-item .box-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.drawn-boxes-list .box-item select{flex:1;padding:4px 6px;font-size:.8125rem;min-width:0}.drawn-boxes-list .box-item .box-value{font-size:.75rem;font-weight:600;color:var(--primary-color);white-space:nowrap}.drawn-boxes-list .box-item .btn-delete-small{width:20px;height:20px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--text-muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.drawn-boxes-list .box-item .btn-delete-small:hover{background:var(--danger-light);color:var(--danger-color)}.analysis-mode-toggle{display:flex;gap:var(--space-xs);margin-bottom:var(--space-md);padding:4px;background:var(--bg-hover);border-radius:var(--radius-md);width:fit-content}.analysis-mode-toggle .mode-btn{padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.analysis-mode-toggle .mode-btn:hover{color:var(--text-color)}.analysis-mode-toggle .mode-btn.active{background:var(--bg-white);color:var(--primary-color);box-shadow:var(--shadow-sm)}.line-controls{display:flex;gap:var(--space-sm);flex-wrap:wrap}.btn-sm{padding:4px 10px;font-size:.8125rem}.item-type-icon{font-size:.75rem;opacity:.7;flex-shrink:0}.feature-type-selector{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-sm)}.feature-type-selector label{font-weight:500;font-size:.875rem}.reference-drawing-status,.reference-set-status{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.status-badge{padding:4px 10px;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500}.status-badge.drawing{background:#dbeafe;color:#1d4ed8}.status-badge.success{background:#d1fae5;color:#059669}@media(max-width:768px){.ai-overlay-container{flex-direction:column}.ai-overlay-legend{width:100%;max-height:none}.ai-analysis-content.ai-analysis-wide{max-width:100%;width:100%}.interactive-canvas-container{flex-direction:column}.interactive-canvas{min-height:400px}.drawn-boxes-list{width:100%;max-height:250px}.feature-type-selector select{font-size:16px;padding:.75rem}.reference-inputs select,.reference-value-input input{font-size:16px}.line-controls button{padding:.75rem 1rem;font-size:.9rem}.ai-step .step-description{font-size:.875rem}}@media(pointer:coarse){.interactive-canvas{cursor:pointer}.box-item{min-height:48px;padding:.75rem}.btn-delete-small{width:32px;height:32px;font-size:1.25rem}.btn-primary.btn-sm,.btn-secondary.btn-sm{padding:.75rem 1rem;font-size:.9rem}.annotation-toolbar .mode-btn,.annotation-toolbar .annotation-tool-btn{min-height:48px;min-width:48px;padding:12px 16px}.damage-marker-palette .damage-marker-btn{min-height:56px;min-width:56px;font-size:1.25rem}.drawn-items-list .item-row{min-height:52px;padding:12px}.canvas-controls .canvas-ctrl-btn{min-width:44px;min-height:44px;padding:10px}}.annotation-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0;margin-top:.75rem;margin-bottom:.5rem}.annotation-toolbar .mode-toggle{display:flex;background:#fff;border-radius:6px;overflow:hidden;border:1px solid #e2e8f0}.annotation-toolbar .mode-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;border:none;background:#fff;cursor:pointer;transition:all .15s ease;font-size:.8125rem;font-weight:500;color:#64748b}.annotation-toolbar .mode-btn:hover{background:#f1f5f9}.annotation-toolbar .mode-btn.active{background:#1e3a5f;color:#fff}.annotation-toolbar .mode-icon{font-size:1rem}.annotation-toolbar .annotation-tools{display:flex;align-items:center;gap:.5rem}.annotation-toolbar .tools-row{display:flex;align-items:center;gap:.375rem}.annotation-toolbar .annotation-tool-btn{display:flex;align-items:center;gap:.25rem;padding:.375rem .625rem;border:1px solid #e2e8f0;background:#fff;border-radius:5px;cursor:pointer;transition:all .15s ease;font-size:.8125rem}.annotation-toolbar .annotation-action-btn{display:flex;align-items:center;justify-content:center;padding:.375rem .5rem;border:1px solid #e2e8f0;background:#fff;border-radius:5px;cursor:pointer;transition:all .15s ease;font-size:1rem;color:#64748b}.annotation-toolbar .annotation-action-btn:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.annotation-toolbar .annotation-action-btn:disabled{opacity:.4;cursor:not-allowed}.annotation-toolbar .annotation-tool-btn:hover{border-color:var(--tool-color, #3b82f6);background:#f8fafc}.annotation-toolbar .annotation-tool-btn.active{border-color:var(--tool-color, #3b82f6);background:color-mix(in srgb,var(--tool-color, #3b82f6) 10%,white)}.annotation-toolbar .annotation-tool-btn .tool-icon{font-size:1rem}.annotation-toolbar .annotation-tool-btn .tool-label{font-size:.75rem;font-weight:500;color:#64748b}.annotation-toolbar .annotation-tool-btn.active .tool-label{color:var(--tool-color, #3b82f6)}.annotation-toolbar .color-picker-row{display:flex;align-items:center;gap:.375rem;font-size:.7rem;color:#64748b;margin-left:.5rem}.annotation-toolbar .color-picker-row label{display:flex;align-items:center;gap:.25rem}.annotation-toolbar .color-picker-row input[type=color]{width:22px;height:22px;border:1px solid #e2e8f0;border-radius:4px;cursor:pointer;padding:0}.annotation-toolbar .damage-palette-container{margin-left:.5rem}.damage-marker-palette{display:flex;flex-wrap:wrap;gap:.375rem;padding:.375rem;background:#fff;border-radius:6px;border:1px solid #e2e8f0}.damage-marker-palette .damage-marker-btn{display:flex;align-items:center;padding:.25rem .5rem;border:1px solid #e2e8f0;border-radius:4px;background:#fff;cursor:pointer;transition:all .15s ease}.damage-marker-palette .damage-marker-btn:hover{border-color:var(--marker-color, #6b7280);background:#f8fafc}.damage-marker-palette .damage-marker-btn.selected{border-color:var(--marker-color, #6b7280);background:color-mix(in srgb,var(--marker-color, #6b7280) 15%,white)}.damage-marker-palette .marker-label{font-size:.7rem;font-weight:500;color:#374151;white-space:nowrap}.damage-marker-palette .damage-marker-btn.selected .marker-label{color:var(--marker-color, #6b7280);font-weight:600}.canvas-controls .rotation-controls{display:flex;align-items:center;gap:.25rem;padding:.25rem;background:#fffffff2;border-radius:6px;box-shadow:0 1px 3px #0000001a}.canvas-controls .rotation-level{font-size:.75rem;color:#64748b;min-width:32px;text-align:center}.skeleton-list,.skeleton-card,.skeleton-page{padding:var(--space-md)}.skeleton-item{padding:var(--space-md);margin-bottom:var(--space-sm);background:var(--bg-white);border-radius:var(--radius-md)}.skeleton-line{height:14px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm);margin-bottom:var(--space-sm)}.skeleton-title{width:60%;height:18px}.skeleton-subtitle{width:40%}.skeleton-short{width:30%}.skeleton-header{margin-bottom:var(--space-lg)}.skeleton-content{display:flex;flex-direction:column;gap:var(--space-sm)}.header-search{position:relative;display:flex;align-items:center;margin:0 var(--space-md)}.search-input{width:220px;padding:.5rem 2rem .5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;background:var(--bg-white);transition:all .15s ease}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus);width:280px}.search-input::placeholder{color:var(--text-muted)}.search-clear{position:absolute;right:.5rem;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:.25rem;line-height:1}.search-clear:hover{color:var(--text-secondary)}.save-status{display:inline-flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:500;padding:.375rem .75rem;border-radius:20px;margin-right:.5rem;transition:all .2s ease}.save-status-saved{color:#059669;background:#10b98126;border:1px solid rgba(16,185,129,.3)}.save-status-saving{color:#2563eb;background:#3b82f626;border:1px solid rgba(59,130,246,.3);animation:pulse-save 1.5s ease-in-out infinite}@keyframes pulse-save{0%,to{opacity:1}50%{opacity:.6}}.save-status-unsaved{color:#d97706;background:#f59e0b26;border:1px solid rgba(245,158,11,.3)}.save-status-error{color:#dc2626;background:#ef444426;border:1px solid rgba(239,68,68,.3)}.undo-toast{position:fixed;bottom:var(--space-lg);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:#1f2937;color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;animation:toast-slide-up .3s ease}.undo-toast button{background:none;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.25rem .75rem;border-radius:var(--radius-sm);cursor:pointer;font-weight:500;transition:all .15s ease}.undo-toast button:hover{background:#ffffff1a;border-color:#ffffff80}@keyframes toast-slide-up{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.recently-viewed{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-color);background:var(--bg-hover)}.recently-viewed h4{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm)}.recent-list{display:flex;flex-direction:column;gap:var(--space-xs)}.recent-item{display:flex;flex-direction:column;align-items:flex-start;padding:var(--space-sm);background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;width:100%;text-align:left}.recent-item:hover{border-color:var(--primary-color);background:var(--primary-subtle)}.recent-item.active{border-color:var(--primary-color);background:var(--primary-light)}.recent-name{font-size:.8125rem;font-weight:500;color:var(--text-color)}.recent-address{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.search-results-count{padding:var(--space-sm) var(--space-md);font-size:.8125rem;color:var(--text-secondary);background:var(--primary-subtle);border-bottom:1px solid var(--border-color)}.keyboard-hints{position:fixed;bottom:var(--space-md);right:var(--space-md);display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#000c;color:#fff;border-radius:var(--radius-md);font-size:.75rem;z-index:100}.keyboard-hints span{padding:.125rem .375rem;background:#ffffff1a;border-radius:var(--radius-sm)}.measurement-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-md)}.measurement-header h3{margin-bottom:var(--space-xs)}.template-buttons{display:flex;gap:var(--space-sm);flex-shrink:0}.template-buttons button{background:var(--bg-white);color:var(--primary-color);border:1px solid var(--primary-color);padding:.5rem 1rem;border-radius:var(--radius-md);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all .15s ease}.template-buttons button:hover{background:var(--primary-color);color:#fff}.template-modal{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90%;max-width:500px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.template-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);border-bottom:1px solid var(--border-color)}.template-modal-header h4{margin:0;font-size:1.125rem}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-muted);cursor:pointer;padding:0;line-height:1}.template-save-form{padding:var(--space-md)}.template-save-form .form-group{margin-bottom:var(--space-md)}.template-save-form label{display:block;font-size:.875rem;font-weight:500;margin-bottom:var(--space-xs);color:var(--text-secondary)}.template-save-form input{width:100%;padding:var(--space-sm);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9375rem}.template-save-form input:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.template-preview{background:var(--bg-hover);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:.875rem;margin-bottom:var(--space-md)}.template-preview ul{margin:var(--space-xs) 0 0 var(--space-md);padding:0;color:var(--text-secondary)}.template-preview li{margin-bottom:var(--space-xs)}.template-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-color)}.template-list{padding:var(--space-md);overflow-y:auto;max-height:400px}.no-templates{text-align:center;padding:var(--space-xl);color:var(--text-secondary)}.no-templates p:first-child{font-size:1rem;margin-bottom:var(--space-sm)}.template-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:var(--space-sm);transition:all .15s ease}.template-item:hover{border-color:var(--primary-color);background:var(--primary-subtle)}.template-info{flex:1;min-width:0}.template-info strong{display:block;font-size:.9375rem;color:var(--text-color);margin-bottom:var(--space-xs)}.template-info p{font-size:.8125rem;color:var(--text-secondary);margin:0 0 var(--space-xs) 0}.template-meta{font-size:.75rem;color:var(--text-muted)}.template-item-actions{display:flex;gap:var(--space-xs);flex-shrink:0;margin-left:var(--space-md)}.template-item-actions .btn-danger{background:none;border:1px solid var(--border-color);color:var(--text-muted);padding:.25rem .5rem}.template-item-actions .btn-danger:hover{border-color:var(--danger-color);color:var(--danger-color);background:var(--danger-light)}.analytics-section{margin-bottom:var(--space-xl)}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md);margin-bottom:var(--space-md)}.analytics-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-md);transition:all .15s ease}.analytics-card:hover{border-color:var(--primary-color);box-shadow:var(--shadow-md)}.analytics-card.clickable:hover{background:var(--primary-subtle);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.analytics-card-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.analytics-icon{font-size:1.25rem}.analytics-label{font-size:.8125rem;color:var(--text-secondary);font-weight:500}.analytics-value{font-size:2rem;font-weight:700;color:var(--text-color);line-height:1.2}.analytics-trend{font-size:.75rem;font-weight:500;margin-top:var(--space-xs)}.analytics-trend.positive{color:var(--success-color)}.analytics-trend.negative{color:var(--danger-color)}.analytics-detail{font-size:.75rem;color:var(--text-muted);margin-top:var(--space-xs)}.quick-stats-bar{display:flex;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-md);background:var(--bg-hover);border-radius:var(--radius-md);justify-content:space-around}.quick-stat{display:flex;flex-direction:column;align-items:center;min-width:80px}.quick-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-color)}.quick-stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}@media(max-width:768px){.analytics-grid{grid-template-columns:repeat(2,1fr)}.analytics-value{font-size:1.5rem}.quick-stats-bar{gap:var(--space-sm)}.quick-stat-value{font-size:1.25rem}}.pricing-insights-section{margin-top:var(--space-lg);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary)}.insights-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);background:linear-gradient(135deg,#f8f9fa,#e9ecef);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.insights-header:hover{background:linear-gradient(135deg,#e9ecef,#dee2e6)}.insights-header h4{display:flex;align-items:center;gap:var(--space-sm);margin:0;font-size:1rem;color:var(--text-color)}.insights-icon{font-size:1.25rem}.insights-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--primary-color);color:#fff;border-radius:10px;font-size:.75rem;font-weight:600}.insights-toggle{font-size:.75rem;color:var(--text-muted);transition:transform .2s}.insights-toggle.open{transform:rotate(180deg)}.insights-list{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.insight-card{display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border-left:4px solid}.insight-card.insight-tip{background:#fffbeb;border-left-color:#f59e0b}.insight-card.insight-warning{background:#fef2f2;border-left-color:#ef4444}.insight-card.insight-success{background:#f0fdf4;border-left-color:#22c55e}.insight-card.insight-info{background:#eff6ff;border-left-color:#3b82f6}.insight-icon{font-size:1.25rem;flex-shrink:0;width:24px;text-align:center}.insight-tip .insight-icon{color:#f59e0b}.insight-warning .insight-icon{color:#ef4444}.insight-success .insight-icon{color:#22c55e}.insight-info .insight-icon{color:#3b82f6}.insight-content{flex:1;min-width:0}.insight-content strong{display:block;font-size:.875rem;font-weight:600;margin-bottom:2px}.insight-tip .insight-content strong{color:#b45309}.insight-warning .insight-content strong{color:#b91c1c}.insight-success .insight-content strong{color:#15803d}.insight-info .insight-content strong{color:#1d4ed8}.insight-content p{margin:0;font-size:.8125rem;color:var(--text-muted);line-height:1.4}@media(max-width:768px){.insights-header h4{font-size:.9rem}.insight-card{padding:var(--space-xs) var(--space-sm)}.insight-content strong{font-size:.8125rem}.insight-content p{font-size:.75rem}}.version-history-panel{position:fixed;right:0;top:0;width:360px;height:100vh;background:var(--bg-primary);border-left:1px solid var(--border-color);box-shadow:var(--shadow-lg);z-index:100;display:flex;flex-direction:column;animation:slide-in-right .2s ease}@keyframes slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}.version-history-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.version-history-header h3{margin:0;font-size:1rem;font-weight:600}.version-history-header .btn-close{background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--text-muted);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.version-history-header .btn-close:hover{background:var(--bg-hover);color:var(--text-primary)}.version-create{padding:var(--space-md);border-bottom:1px solid var(--border-color);display:flex;gap:var(--space-sm)}.version-create input{flex:1;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem}.version-create input:focus{outline:none;border-color:var(--primary-color)}.version-list{flex:1;overflow-y:auto;padding:var(--space-sm)}.version-list .loading,.version-list .empty{color:var(--text-muted);text-align:center;padding:var(--space-lg);font-size:.875rem}.version-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:var(--space-sm);background:var(--bg-secondary)}.version-item:hover{border-color:var(--primary-color)}.version-info{display:flex;flex-direction:column;gap:2px}.version-number{font-weight:600;color:var(--primary-color);font-size:.875rem}.version-summary{font-size:.8125rem;color:var(--text-primary)}.version-date{font-size:.75rem;color:var(--text-muted)}.btn-small{padding:.25rem .75rem;font-size:.8125rem}.btn-version-history{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.8125rem;cursor:pointer;color:var(--text-secondary);transition:all .15s ease}.btn-version-history:hover{background:var(--bg-hover);border-color:var(--primary-color);color:var(--primary-color)}.payment-status-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);margin:var(--space-sm) 0;border-radius:var(--radius-md);font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.payment-status-icon{font-size:1rem}.payment-status-detail{font-weight:400;font-size:.75rem;opacity:.8}.payment-status-paid{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;border:1px solid #86efac}.payment-status-partial{background:linear-gradient(135deg,#fef9c3,#fef08a);color:#854d0e;border:1px solid #fde047}.payment-status-pending{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:#0369a1;border:1px solid #7dd3fc}.payment-status-unpaid{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#475569;border:1px solid #cbd5e1}.payment-status-banner.overdue{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c;border:1px solid #fca5a5;animation:pulse-overdue 2s ease-in-out infinite}@keyframes pulse-overdue{0%,to{opacity:1}50%{opacity:.85}}.invoice .totals-row.total.overdue,.invoice .totals-row.total.overdue .value{color:#b91c1c}.tutorial-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.tutorial-modal{background:#fff;border-radius:var(--radius-lg);width:90%;max-width:480px;box-shadow:var(--shadow-lg);animation:slide-up .3s ease}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.tutorial-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-color)}.tutorial-step-indicator{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.tutorial-close{background:none;border:none;font-size:1.5rem;color:var(--text-muted);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.tutorial-close:hover{background:var(--bg-hover);color:var(--text-primary)}.tutorial-content{padding:var(--space-lg)}.tutorial-content h4{margin:0 0 var(--space-sm) 0;font-size:1.25rem;color:var(--text-primary)}.tutorial-content p{margin:0;color:var(--text-secondary);line-height:1.6}.tutorial-nav{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-color);gap:var(--space-md)}.tutorial-dots{display:flex;gap:var(--space-xs)}.tutorial-dot{width:8px;height:8px;border-radius:50%;background:var(--border-color);cursor:pointer;transition:all .15s ease}.tutorial-dot:hover{background:var(--text-muted)}.tutorial-dot.active{background:var(--primary-color);width:20px;border-radius:4px}.btn-help{width:28px;height:28px;border-radius:50%;border:2px solid var(--primary-color);background:transparent;color:var(--primary-color);font-weight:700;font-size:.875rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.btn-help:hover{background:var(--primary-color);color:#fff}.header-actions{display:flex;align-items:center;gap:var(--space-sm)}.print-button-container{display:flex;justify-content:flex-end;max-width:900px;margin:0 auto 1rem;padding:0 1rem}.btn-print{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--primary-color, #1e3a5f);color:#fff;border:none;border-radius:var(--radius-md, 6px);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-print:hover{opacity:.9;transform:translateY(-1px)}.btn-print:before{content:"🖨️";font-size:1rem}@media print{.print-button-container,.btn-print,.public-accept-section,.accept-decline-buttons,.signature-section,.decline-modal-overlay,.payment-actions,nav,header,footer,.sidebar{display:none!important}body{background:#fff!important;margin:0!important;padding:0!important}.public-estimate-container,.public-invoice-container,.work-order-view-container{max-width:100%!important;margin:0!important;padding:0!important;box-shadow:none!important}.estimate-document,.public-estimate-doc,.public-invoice-page{box-shadow:none!important;border:none!important}.work-order-view-page,.public-invoice-page{padding:0!important;background:#fff!important}.work-order-view-section,.invoice-content{page-break-inside:avoid}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}.subcontractor-page{max-width:100%}.subcontractor-table-wrapper{overflow-x:auto;margin:-1rem;padding:1rem}.subcontractor-table{min-width:1400px;font-size:.85rem}.subcontractor-table th,.subcontractor-table td{padding:.5rem .4rem;white-space:nowrap}.subcontractor-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.02em}.subcontractor-table tr.inactive{opacity:.5}.yn-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;font-size:.7rem;font-weight:600}.yn-badge.yes{background:var(--success-light);color:var(--success-color)}.yn-badge.no{background:var(--danger-light);color:var(--danger-color)}.yn-badge.na{background:var(--bg-hover);color:var(--text-muted)}.subcontractor-table td.expiring{background:var(--warning-light);color:var(--warning-color);font-weight:500}.subcontractor-table td.expired{background:var(--danger-light);color:var(--danger-color);font-weight:500}.subcontractor-form{max-width:900px;max-height:90vh;overflow-y:auto}.subcontractor-form h4{margin:1.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color);font-size:.95rem;color:var(--text-secondary)}.subcontractor-form h4:first-of-type{margin-top:1rem}.compliance-grid{grid-template-columns:repeat(4,1fr)}.compliance-grid .form-group{margin-bottom:.5rem}.documents-section{background:var(--bg-color);border-radius:var(--radius-md);padding:1rem;margin-top:.5rem}.document-upload-row{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem}.document-upload-row select{width:150px}.document-upload-row input[type=file]{flex:1}.documents-list{display:flex;flex-direction:column;gap:.5rem}.document-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--bg-white);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.document-item .doc-type{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);background:var(--bg-hover);padding:.2rem .5rem;border-radius:var(--radius-sm)}.document-item a{flex:1;color:var(--primary-color);text-decoration:none}.document-item a:hover{text-decoration:underline}.pm-form{max-width:500px}.empty-message{text-align:center;padding:2rem;color:var(--text-muted);font-style:italic}.estimate-subcontractors{padding:.5rem 0}.estimate-subcontractors.loading{text-align:center;padding:2rem;color:var(--text-muted)}.subcontractor-message{padding:.75rem 1rem;margin-bottom:1rem;background:var(--primary-light);color:var(--primary-color);border-radius:var(--radius-sm);font-size:.875rem}.assigned-subs h4,.payments-section h4{margin:0 0 1rem;font-size:.95rem;color:var(--text-secondary)}.no-subs{color:var(--text-muted);font-style:italic;margin:0 0 1rem;font-size:.875rem}.assigned-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.assigned-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-color);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.assigned-info{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.assigned-name{font-weight:600;color:var(--text-color)}.assigned-company{color:var(--text-muted);font-size:.875rem}.assigned-role{font-size:.75rem;text-transform:uppercase;padding:.2rem .5rem;background:var(--primary-light);color:var(--primary-color);border-radius:var(--radius-sm)}.assigned-percent{font-size:.875rem;font-weight:500;color:var(--success-color)}.assign-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.assign-form select{flex:1;min-width:150px}.payments-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.payments-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.payments-header h4{margin:0}.payment-form{background:var(--bg-color);padding:1rem;border-radius:var(--radius-sm);margin-bottom:1rem}.payment-form .form-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem;flex-wrap:wrap}.payment-form select,.payment-form input{flex:1;min-width:100px}.payment-form input[type=date],.payment-form input[type=text]{max-width:150px}.payments-list{display:flex;flex-direction:column;gap:.5rem}.payment-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-color);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.payment-info{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.payment-sub{font-weight:600;min-width:100px}.payment-amount{font-weight:600;color:var(--success-color)}.payment-method{font-size:.75rem;text-transform:uppercase;padding:.2rem .5rem;background:var(--bg-hover);color:var(--text-muted);border-radius:var(--radius-sm)}.payment-date,.payment-ref{font-size:.875rem;color:var(--text-muted)}.payments-total{margin-top:1rem;padding:.75rem 1rem;background:var(--success-light);border-radius:var(--radius-sm);display:flex;justify-content:space-between;align-items:center;font-weight:600;color:var(--success-color)}.btn-small{padding:.375rem .75rem;font-size:.8125rem}.schedule-page{padding:1.5rem;max-width:1600px;margin:0 auto}.schedule-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.schedule-header h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-color)}.schedule-filters{display:flex;gap:.75rem;margin-left:auto;align-items:center}.schedule-filters select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;background:var(--bg-white);color:var(--text-color);cursor:pointer}.refresh-btn{padding:.5rem 1rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.refresh-btn:hover{background:var(--primary-hover)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.message-banner{padding:.75rem 1rem;background:var(--primary-light);color:var(--primary-color);border-radius:var(--radius-md);margin-bottom:1rem;font-size:.875rem}.schedule-content{display:grid;grid-template-columns:1fr 300px;gap:1.5rem;align-items:start}.schedule-main{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.projection-grid{width:100%}.projection-grid-empty{padding:3rem 2rem;text-align:center;color:var(--text-muted)}.projection-grid-empty p{margin:.5rem 0}.projection-header{display:grid;grid-template-columns:200px repeat(4,minmax(0,1fr));background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);box-shadow:0 2px 4px #0000001a;color:#fff;font-weight:600;position:sticky;top:0;z-index:10}.crew-column-header,.week-column-header{padding:1rem;text-align:center;border-right:1px solid rgba(255,255,255,.2)}.crew-column-header{text-align:left}.week-column-header:last-child{border-right:none}.projection-body{max-height:calc(100vh - 250px);overflow-y:auto}.crew-row{display:grid;grid-template-columns:200px repeat(4,minmax(0,1fr));border-bottom:1px solid var(--border-color)}.crew-row:last-child{border-bottom:none}.crew-info{padding:1rem;background:var(--bg-hover);border-right:1px solid var(--border-color)}.crew-name{font-weight:600;color:var(--text-color);margin-bottom:.25rem}.crew-company{font-size:.8125rem;color:var(--text-secondary)}.crew-pm{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.crew-capacity{font-size:.75rem;color:var(--primary-color);font-weight:500;margin-top:.5rem}.week-cell{padding:.75rem;border-right:1px solid var(--border-color);min-height:150px;display:flex;flex-direction:column;transition:background var(--transition-fast);overflow:hidden;min-width:0}.week-cell:last-child{border-right:none}.week-cell.drag-over{background:var(--primary-light)}.week-cell.under-capacity{background:var(--bg-white)}.week-cell.near-capacity{background:var(--warning-light)}.week-cell.over-capacity{background:var(--danger-light)}.week-cell-jobs{flex:1;display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem;overflow:hidden;min-width:0}.week-cell-summary{margin-top:auto;padding-top:.5rem;border-top:1px solid var(--border-color);font-size:.75rem}.summary-total{color:var(--text-secondary);font-weight:500}.summary-remaining{color:var(--success-color);font-weight:600;margin-top:.25rem}.summary-remaining.over{color:var(--danger-color)}.summary-carryover-in{color:var(--info-color);font-size:.75rem;font-weight:500;margin-bottom:.25rem}.summary-carryover-out{color:var(--warning-color);font-size:.75rem;font-weight:500;margin-top:.25rem}.job-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.5rem .75rem;font-size:.8125rem;position:relative;box-shadow:var(--shadow-xs);transition:box-shadow var(--transition-fast);overflow:hidden;min-width:0;max-width:100%}.job-card:hover{box-shadow:var(--shadow)}.job-card.status-in_progress{border-left:3px solid var(--warning-color)}.job-card.status-completed{border-left:3px solid var(--success-color)}.job-card.job-completed{opacity:.6;background:var(--bg-subtle);border-left:3px solid var(--success-color)}.job-card.job-completed:hover{opacity:.8}.job-completed-badge{position:absolute;top:.25rem;left:.25rem;width:18px;height:18px;background:var(--success-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:700;z-index:1}.job-card.job-completed .job-card-header{padding-left:1.25rem}.job-card-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem;min-width:0;overflow:hidden}.job-client{font-weight:600;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-status{font-size:.625rem;padding:.125rem .375rem;border-radius:var(--radius-full);color:#fff;text-transform:uppercase;white-space:nowrap}.job-project{font-size:.75rem;color:var(--text-muted)}.job-amount{font-weight:600;color:var(--primary-color);margin-top:.25rem}.job-notes{font-size:.6875rem;color:var(--text-muted);font-style:italic;margin-top:.25rem}.job-performance-indicator{display:inline-flex;align-items:center;gap:.25rem;font-size:.625rem;font-weight:600;padding:.125rem .375rem;border-radius:var(--radius-full);margin-top:.25rem;text-transform:uppercase}.performance-icon{font-size:.6875rem}.performance-early{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46;border:1px solid #6ee7b7}.performance-on-time{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border:1px solid #93c5fd}.performance-late{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;border:1px solid #fca5a5}.job-card-actions{position:absolute;top:.25rem;right:.25rem;display:none;gap:.375rem;background:#fffffff2;padding:.25rem;border-radius:var(--radius-sm);box-shadow:0 1px 3px #00000026}.job-card:hover .job-card-actions{display:flex}.job-folder-btn,.job-edit-btn,.job-delete-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;transition:all var(--transition-fast)}.job-folder-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.job-edit-btn:hover{background:var(--warning-color);color:#fff;border-color:var(--warning-color)}.job-delete-btn:hover{background:var(--danger-color);color:#fff;border-color:var(--danger-color)}.job-folder-btn{color:var(--primary-color)}.job-edit-btn{color:var(--warning-color, #d97706)}.job-delete-btn{color:var(--danger-color)}.unscheduled-sidebar{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:.25rem .5rem;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);box-shadow:0 2px 4px #0000001a;color:#fff}.sidebar-header h3{margin:0;font-size:1rem;font-weight:600}.job-count{background:#fff3;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.sidebar-description{padding:.75rem 1rem;font-size:.75rem;color:var(--text-muted);background:var(--bg-hover);border-bottom:1px solid var(--border-color)}.unscheduled-list{padding:.75rem;max-height:calc(100vh - 350px);overflow-y:auto}.no-jobs{padding:2rem 1rem;text-align:center;color:var(--text-muted)}.no-jobs p{margin:.25rem 0}.no-jobs .hint{font-size:.75rem}.unscheduled-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem;margin-bottom:.5rem;cursor:grab;transition:all var(--transition-fast)}.unscheduled-card:hover{border-color:var(--primary-color);box-shadow:var(--shadow)}.unscheduled-card:active{cursor:grabbing}.unscheduled-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem}.unscheduled-client{font-weight:600;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unscheduled-project{font-size:.75rem;color:var(--primary-color);font-weight:500}.unscheduled-address{font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem}.unscheduled-values{margin-top:.5rem}.value-row{display:flex;justify-content:space-between;font-size:.8125rem;margin-bottom:.125rem}.value-label{color:var(--text-muted)}.value-amount{font-weight:600;color:var(--text-color)}.value-amount.scheduled{color:var(--warning-color)}.value-row.remaining .value-amount{color:var(--primary-color)}.unscheduled-hint{font-size:.6875rem;color:var(--text-muted);text-align:center;font-style:italic}.unscheduled-phase-badge{display:inline-block;font-size:.65rem;font-weight:600;color:#fff;padding:.125rem .5rem;border-radius:9999px;margin-top:.375rem;text-transform:uppercase;letter-spacing:.03em}.unscheduled-actions{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-light)}.view-job-folder-link{background:none;border:none;font-size:.7rem;color:var(--primary-color);cursor:pointer;padding:.25rem .5rem;text-decoration:none;transition:all var(--transition-fast);font-weight:500}.view-job-folder-link:hover{color:var(--primary-hover);text-decoration:underline}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.schedule-modal{background:#fff;border-radius:var(--radius-lg);max-width:500px;width:100%;box-shadow:0 20px 25px -5px #0000001a;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.schedule-modal .modal-body{overflow-y:auto;flex:1}.schedule-modal .modal-header-v2{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.schedule-modal .modal-footer-v2{border-top:1px solid var(--border-color);margin:0;padding:1rem 1.5rem}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-color)}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);line-height:1;padding:.25rem;transition:color var(--transition-fast)}.modal-close:hover{color:var(--text-color)}.modal-body{padding:1.5rem}.job-info-section{background:var(--bg-hover);border-radius:var(--radius-md);padding:1rem;margin-bottom:1rem}.job-info-row{display:flex;justify-content:space-between;margin-bottom:.375rem;font-size:.875rem}.job-info-row:last-child{margin-bottom:0}.info-label{color:var(--text-muted)}.info-value{font-weight:500;color:var(--text-color)}.info-value.highlight{color:var(--primary-color);font-weight:600}.modal-error{background:var(--danger-light);color:var(--danger-color);padding:.75rem 1rem;border-radius:var(--radius-md);margin-bottom:1rem;font-size:.875rem}.schedule-modal .form-group{margin-bottom:1rem}.schedule-modal .form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.375rem}.schedule-modal .form-group select,.schedule-modal .form-group input,.schedule-modal .form-group textarea{width:100%;padding:.625rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-color);background:var(--bg-white);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.schedule-modal .form-group select:focus,.schedule-modal .form-group input:focus,.schedule-modal .form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.capacity-info{background:var(--primary-subtle);border-radius:var(--radius-md);padding:.75rem;margin-bottom:1rem;display:grid;grid-template-columns:1fr auto;gap:.375rem .75rem;font-size:.8125rem}.capacity-label{color:var(--text-muted)}.capacity-value{font-weight:600;color:var(--text-color);text-align:right}.capacity-value.over{color:var(--danger-color)}.field-warning{font-size:.75rem;color:var(--warning-color);margin-top:.25rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.btn-cancel{padding:.625rem 1.25rem;background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-cancel:hover{background:var(--bg-active)}.btn-save{padding:.625rem 1.25rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn-save:hover{background:var(--primary-hover)}@media(max-width:1200px){.schedule-content{grid-template-columns:1fr}.unscheduled-sidebar{order:-1}.unscheduled-list{max-height:200px}.projection-header,.crew-row{grid-template-columns:150px repeat(4,minmax(0,1fr))}}@media(max-width:768px){.schedule-header{flex-direction:column;align-items:flex-start}.schedule-filters{margin-left:0;width:100%;flex-wrap:wrap}.projection-header,.crew-row{grid-template-columns:120px repeat(4,minmax(100px,1fr))}.schedule-main{overflow-x:auto}.projection-grid{min-width:600px}}.production-board{padding:1.5rem;max-width:1800px;margin:0 auto;background:#e2e8f0;min-height:100%}.production-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.production-header h2{margin:0;font-size:1.5rem;font-weight:600}.production-filters{display:flex;gap:.75rem;margin-left:auto}.production-filters select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;background:var(--bg-white)}.production-stats{display:flex;gap:1.5rem;padding:.75rem 1rem;background:var(--bg-white);border-radius:var(--radius-md);margin-bottom:1rem;flex-wrap:wrap}.stat-item{font-size:.875rem;color:var(--text-secondary);padding-left:.75rem;border-left:3px solid var(--border-color)}.stat-item strong{color:var(--text-color);margin-right:.25rem}.production-columns{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;overflow-x:auto;padding-bottom:1rem}.board-column{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);min-width:220px;display:flex;flex-direction:column;max-height:calc(100vh - 280px)}.column-header{padding:1rem;border-top:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff;box-shadow:0 2px 4px #0000001a}.column-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.column-name{font-weight:600;color:#fff}.column-count{background:#ffffffe6;color:var(--primary-color);font-size:.75rem;padding:.125rem .5rem;border-radius:var(--radius-full);font-weight:600}.column-value{font-size:.875rem;color:#ffffffd9}.column-content{flex:1;padding:.75rem;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.column-empty{text-align:center;color:var(--text-muted);font-size:.8125rem;padding:2rem 1rem}.board-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem;cursor:pointer;transition:all var(--transition-fast);position:relative;display:flex;flex-direction:column;min-height:100px}.board-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-color)}.board-card.blocked{border-left:3px solid var(--warning-color);background:var(--warning-light)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.card-client{font-weight:600;font-size:.875rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-days{font-size:.6875rem;padding:.125rem .375rem;border-radius:var(--radius-full);font-weight:600}.card-days.days-ok{background:var(--success-light);color:var(--success-color)}.card-days.days-warning{background:var(--warning-light);color:var(--warning-color)}.card-days.days-overdue{background:var(--danger-light);color:var(--danger-color)}.card-project{font-size:.7rem;color:var(--primary-color);font-weight:600;margin-bottom:.25rem}.card-client{font-weight:600;color:var(--text-color);font-size:.9rem}.card-address{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.card-status{margin-top:auto;padding-top:.5rem}.card-status .status-badge{display:inline-block;font-size:.7rem;padding:.25rem .5rem;border-radius:4px;font-weight:600}.card-status .status-badge.pending{background:var(--warning-light, #fef3c7);color:var(--warning-color, #d97706)}.card-status .status-badge.confirmed{background:var(--success-light, #d1fae5);color:var(--success-color, #059669)}.card-status .status-badge.active{background:var(--primary-light, #dbeafe);color:var(--primary-color, #2563eb)}.indicator.hoa-badge{background:var(--primary-light);color:var(--primary-color)}.indicator.invoice-required{background:#fef3c7;color:#92400e}.card-actions{position:absolute;bottom:.5rem;right:.5rem;display:none;gap:.25rem}.board-card:hover .card-actions{display:flex}.action-btn{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.25rem .5rem;cursor:pointer;font-size:.75rem;transition:all var(--transition-fast)}.action-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.card-schedule-info{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--text-secondary);margin-top:.5rem;padding:.375rem .5rem;background:var(--primary-subtle);border-radius:var(--radius-sm)}.card-schedule-info .schedule-icon{font-size:.875rem}.card-schedule-info .schedule-date{font-weight:600;color:var(--primary-color)}.card-schedule-info .schedule-crew{color:var(--text-muted);font-size:.7rem}.card-schedule-info .schedule-crew:before{content:"•";margin:0 .25rem}.card-link{display:inline-block;background:none;border:none;font-size:.75rem;color:var(--primary-color);cursor:pointer;padding:.25rem 0;margin-top:.375rem;text-decoration:none;transition:all var(--transition-fast)}.card-link:hover{color:var(--primary-hover);text-decoration:underline}.view-schedule-link{font-weight:500}.job-folder-overlay{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.job-folder{background:var(--bg-white);border-radius:12px;width:100%;max-width:1200px;height:95vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 0 0 1px #0000000d,0 25px 50px -12px #00000040;animation:slideUp .3s ease-out}.folder-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.75rem;background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);color:#fff;position:relative;overflow:hidden;flex-shrink:0}.folder-header:before{content:"";position:absolute;top:0;right:0;width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);transform:translate(30%,-50%)}.header-info{position:relative;z-index:1}.header-info h2{margin:0;font-size:1.375rem;font-weight:700;letter-spacing:-.02em}.header-client{font-size:.9rem;opacity:.9;margin-top:.25rem;display:block}.header-print-btn{padding:.5rem .875rem;background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:8px;color:#fff;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.header-print-btn:hover{background:#ffffff40;border-color:#fff6;transform:translateY(-1px)}.header-actions{display:flex;align-items:center;gap:.75rem;position:relative;z-index:1}.phase-badge{padding:.5rem 1rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:#fff3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.15)}.close-btn{background:#ffffff1a;border:none;color:#fff;font-size:1.25rem;cursor:pointer;padding:.5rem;line-height:1;border-radius:8px;transition:all .2s ease;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#fff3;transform:scale(1.05)}.folder-message{padding:.875rem 1.25rem;background:linear-gradient(90deg,#dbeafe,#e0f2fe);color:#1e40af;font-size:.875rem;text-align:center;font-weight:500;border-bottom:1px solid #bfdbfe;flex-shrink:0}.phase-progress{display:flex;justify-content:center;align-items:center;gap:.5rem;padding:1.25rem 1.5rem;background:linear-gradient(180deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0;flex-shrink:0}.phase-step{display:flex;flex-direction:column;align-items:center;position:relative;min-width:70px}.step-indicator{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;background:var(--bg-white);border:2px solid var(--primary-color);color:var(--primary-color);z-index:1;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.phase-step.complete .step-indicator{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;color:#fff;box-shadow:0 2px 8px #10b9814d}.phase-step.current .step-indicator{background:linear-gradient(135deg,var(--accent-color) 0%,var(--accent-hover) 100%);border-color:var(--accent-color);color:#fff;box-shadow:0 2px 8px #f59e0b66;transform:scale(1.1)}.step-label{margin-top:.625rem;font-size:.6875rem;font-weight:500;color:#94a3b8;text-align:center;max-width:70px;line-height:1.3;transition:all .3s ease}.phase-step.current .step-label{color:var(--accent-hover);font-weight:600}.phase-step.complete .step-label{color:#059669}.step-connector{position:absolute;top:18px;left:50%;width:70px;height:3px;background:var(--primary-color);opacity:.3;z-index:0;border-radius:2px}.step-connector.complete{background:linear-gradient(90deg,#10b981,#34d399);opacity:1}.folder-tabs{display:flex;gap:.25rem;padding:.75rem 1.25rem 0;background:#f8fafc;border-bottom:1px solid var(--border-color);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0}.folder-tabs::-webkit-scrollbar{display:none}.folder-tabs .tab{padding:.75rem 1.25rem;background:transparent;border:none;font-size:.8125rem;font-weight:500;color:#64748b;cursor:pointer;border-radius:8px 8px 0 0;margin-bottom:-1px;transition:all .2s ease;white-space:nowrap;position:relative}.folder-tabs .tab:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:transparent;border-radius:2px 2px 0 0;transition:background .2s ease}.folder-tabs .tab:hover{color:#334155;background:#00000008}.folder-tabs .tab.active{color:var(--primary-hover);background:var(--bg-white);border:1px solid var(--border-color);border-bottom-color:var(--bg-white);font-weight:600}.folder-tabs .tab.active:after{background:var(--primary-color);height:3px;bottom:-1px}.folder-tabs .tab.has-unread{position:relative}.folder-tabs .tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;margin-left:6px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:10px;font-weight:700;border-radius:10px;box-shadow:0 2px 4px #ef44444d}.messages-tab .messages-container{display:flex;flex-direction:column;gap:1.25rem}.messages-tab .messages-list{max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;padding:1.25rem;background:linear-gradient(180deg,#f8fafc,#f1f5f9);border-radius:12px;border:1px solid #e2e8f0}.messages-tab .message-item{padding:1rem 1.25rem;border-radius:16px;max-width:85%;box-shadow:0 1px 3px #0000000d}.messages-tab .message-customer{background:#fff;color:#1e293b;border:1px solid #e2e8f0;align-self:flex-start;border-bottom-left-radius:4px}.messages-tab .message-admin{background:linear-gradient(135deg,#3b82f6,#1e40af);color:#fff;align-self:flex-end;border-bottom-right-radius:4px;box-shadow:0 2px 8px #3b82f640}.messages-tab .message-header{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.5rem;font-size:.75rem}.messages-tab .message-customer .message-header{color:#94a3b8}.messages-tab .message-admin .message-header{color:#ffffffbf}.messages-tab .message-customer .message-content{color:#334155}.messages-tab .message-admin .message-content{color:#fff}.messages-tab .message-sender{font-weight:600}.messages-tab .message-content{font-size:.9375rem;line-height:1.6;white-space:pre-wrap}.messages-tab .message-images{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.messages-tab .message-image{max-width:150px;max-height:150px;border-radius:4px;cursor:pointer;object-fit:cover;border:1px solid var(--border-color);transition:transform .2s}.messages-tab .message-image:hover{transform:scale(1.05)}.messages-tab .message-compose{display:flex;flex-direction:column;gap:1rem;padding-top:1.25rem;border-top:1px solid #e2e8f0}.messages-tab .message-compose textarea{padding:1rem;border:1px solid #e2e8f0;border-radius:12px;font-size:.9375rem;resize:vertical;min-height:100px;font-family:inherit;background:#f8fafc;transition:all .2s ease}.messages-tab .message-compose textarea:hover{border-color:#cbd5e1;background:#fff}.messages-tab .message-compose textarea:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61a}.messages-tab .message-compose button{align-self:flex-end;padding:.75rem 1.75rem}.messages-tab .message-images-preview{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.messages-tab .preview-image-wrapper{position:relative;width:80px;height:80px}.messages-tab .preview-image-wrapper img{width:100%;height:100%;object-fit:cover;border-radius:4px;border:1px solid var(--border-color)}.messages-tab .remove-preview-btn{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#ef4444;color:#fff;border:none;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}.messages-tab .message-compose-actions{display:flex;gap:.75rem;justify-content:flex-end}.messages-tab .attach-btn{padding:.75rem 1.25rem;font-size:.875rem;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;font-weight:500;transition:all .2s ease}.messages-tab .attach-btn:hover:not(:disabled){background:#e2e8f0;border-color:#cbd5e1}.messages-tab .attach-btn:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.folder-content{flex:1;overflow-y:auto;padding:1.5rem 1.75rem;background:#f8fafc;min-height:0}.folder-section{margin-bottom:1.5rem;background:var(--bg-white);border-radius:12px;padding:1.25rem 1.5rem;box-shadow:0 1px 3px #0000000d,0 1px 2px #00000008;border:1px solid rgba(0,0,0,.05)}.folder-section h3{font-size:.8125rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid #f1f5f9}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem 2rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-item label{font-size:.75rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.info-item span{font-size:.9375rem;color:#1e293b;font-weight:500}.value-highlight{font-weight:700;color:var(--primary-hover)!important;font-size:1.125rem!important}.production-controls{display:flex;flex-direction:column;gap:1.25rem}.control-row{display:flex;flex-direction:column;gap:.5rem}.control-row label{font-size:.8125rem;font-weight:500;color:#475569}.control-row select,.control-row textarea{padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:10px;font-size:.9375rem;background:#f8fafc;color:#1e293b;transition:all .2s ease}.control-row select:hover,.control-row textarea:hover{border-color:#cbd5e1;background:#fff}.control-row select:focus,.control-row textarea:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61a}.control-row .btn-save-notes{margin-top:.5rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:600;background:linear-gradient(135deg,var(--accent-hover) 0%,var(--accent-color) 100%);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 4px #0000001a;align-self:flex-start}.control-row .btn-save-notes:hover{background:linear-gradient(135deg,var(--accent-color) 0%,var(--accent-hover) 100%);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.control-row .btn-save-notes:disabled{opacity:.6;cursor:not-allowed;transform:none}.checkbox-row label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.9375rem;color:#334155;padding:.5rem 0}.checkbox-row input[type=checkbox]{width:20px;height:20px;accent-color:#3b82f6;cursor:pointer}.advance-section{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid #f1f5f9;display:flex;align-items:center;gap:1rem}.advance-btn{padding:.875rem 1.75rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-weight:600;font-size:.9375rem;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #10b98133}.advance-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.advance-btn:disabled{background:#94a3b8;cursor:not-allowed;box-shadow:none}.advance-hint{font-size:.8125rem;color:#f59e0b;background:#fffbeb;padding:.5rem .75rem;border-radius:6px;border:1px solid #fde68a}.send-invoice-section{display:flex;flex-direction:column;gap:.75rem}.send-invoice-btn{padding:.875rem 1.75rem;background:linear-gradient(135deg,#3b82f6,#1e40af);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.9375rem;box-shadow:0 2px 4px #3b82f633}.send-invoice-btn:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 8px #3b82f64d}.send-invoice-btn:disabled{background:#94a3b8;cursor:not-allowed;box-shadow:none}.invoice-hint{font-size:.8125rem;color:#64748b;font-style:italic;background:#f8fafc;padding:.5rem .75rem;border-radius:6px}.no-data{color:#94a3b8;font-style:italic;margin:0;padding:1rem;text-align:center;background:#f8fafc;border-radius:8px;font-size:.9375rem}.crew-list,.schedule-list{display:flex;flex-direction:column;gap:.75rem}.crew-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0;transition:all .2s ease}.schedule-item{display:flex;flex-direction:column;gap:.5rem;padding:.875rem 1rem;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0;transition:all .2s ease}.schedule-item-main{display:flex;align-items:center;gap:1rem;width:100%}.schedule-notes{font-size:.8125rem;color:#64748b;font-style:italic;padding-left:.5rem;border-left:2px solid #cbd5e1}.crew-item:hover,.schedule-item:hover{background:#f1f5f9;border-color:#cbd5e1}.crew-name,.schedule-crew{font-weight:600;color:#1e293b}.crew-company{color:#64748b;font-size:.8125rem}.crew-role{margin-left:auto;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--primary-hover);background:var(--primary-light, #dbeafe);padding:.375rem .75rem;border-radius:20px}.schedule-week{font-size:.8125rem;color:#64748b}.schedule-amount{margin-left:auto;font-weight:600;color:var(--success-color)}.documents-section{display:flex;flex-direction:column;gap:1.5rem}.upload-form{background:var(--bg-hover);padding:1rem;border-radius:var(--radius-md)}.upload-form h4{margin:0 0 .75rem;font-size:.875rem;color:var(--text-secondary)}.upload-row{display:flex;gap:.75rem;margin-bottom:.5rem}.upload-row select,.upload-row input[type=text]{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem}.upload-row select{width:150px}.upload-row input[type=text]{flex:1}.upload-row input[type=file]{font-size:.875rem}.uploading{color:var(--primary-color);font-size:.875rem}.upload-error{color:var(--danger-color);font-size:.8125rem;margin-top:.5rem}.documents-list h4{margin:0 0 .75rem;font-size:.875rem;color:var(--text-secondary)}.no-docs{color:var(--text-muted);font-style:italic}.doc-items{display:flex;flex-direction:column;gap:.5rem}.doc-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:var(--bg-hover);border-radius:var(--radius-md)}.doc-icon{font-size:1.5rem}.doc-info{flex:1}.doc-name{font-weight:500;color:var(--primary-color);text-decoration:none}.doc-name:hover{text-decoration:underline}.doc-meta{display:flex;gap:.75rem;font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.doc-type{text-transform:uppercase}.doc-description{font-size:.8125rem;color:var(--text-secondary);margin-top:.25rem}.doc-delete{background:none;border:none;color:var(--danger-color);font-size:1.25rem;cursor:pointer;padding:.25rem;opacity:.6;transition:opacity var(--transition-fast)}.doc-delete:hover{opacity:1}.phase-timeline{background:var(--bg-white);border-radius:12px;padding:1.25rem 1.5rem;box-shadow:0 1px 3px #0000000d,0 1px 2px #00000008;border:1px solid rgba(0,0,0,.05)}.phase-timeline h4{margin:0 0 1.25rem;font-size:.8125rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.no-history{color:#94a3b8;font-style:italic;padding:1rem;text-align:center;background:#f8fafc;border-radius:8px}.timeline-items{display:flex;flex-direction:column}.timeline-item{display:flex;gap:1rem;position:relative}.timeline-marker{display:flex;flex-direction:column;align-items:center}.marker-dot{width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);z-index:1;box-shadow:0 2px 4px #2563eb4d}.marker-line{width:2px;flex:1;background:linear-gradient(180deg,#e2e8f0,#f1f5f9);min-height:30px}.timeline-content{flex:1;padding-bottom:1.5rem;background:#f8fafc;padding:.875rem 1rem;border-radius:10px;margin-bottom:.75rem;border:1px solid #e2e8f0}.timeline-header{font-size:.9375rem;font-weight:500}.phase-change{display:flex;align-items:center;gap:.5rem}.from-phase{color:#64748b;background:#e2e8f0;padding:.25rem .5rem;border-radius:4px;font-size:.8125rem}.arrow{color:#94a3b8;font-weight:700}.to-phase{font-weight:600;color:var(--primary-hover);background:var(--primary-light, #dbeafe);padding:.25rem .5rem;border-radius:4px;font-size:.8125rem}.phase-start strong{color:var(--primary-hover)}.timeline-date{font-size:.75rem;color:#94a3b8;margin-top:.5rem}.timeline-notes{font-size:.8125rem;color:#475569;margin-top:.5rem;font-style:italic;background:#fff;padding:.5rem .75rem;border-radius:6px;border-left:3px solid var(--primary-color)}.timeline-by{font-size:.75rem;color:#94a3b8;margin-top:.5rem}@media(max-width:1400px){.production-columns{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.production-columns{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr}}@media(max-width:600px){.production-columns{grid-template-columns:1fr}.production-header{flex-direction:column;align-items:flex-start}.production-filters{margin-left:0;width:100%}.production-stats{flex-direction:column;gap:.5rem}.job-folder{max-height:100vh;border-radius:0}.phase-progress{flex-wrap:wrap;gap:1rem}.step-connector{display:none}}.job-folder-loading{padding:0}.job-folder-loading .skeleton-header{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%)}.skeleton{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}.job-folder-loading .skeleton{background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);background-size:200% 100%}.skeleton-title{height:1.5rem;width:140px;margin-bottom:.5rem}.skeleton-subtitle{height:1rem;width:180px}.skeleton-badge{height:2rem;width:100px;border-radius:var(--radius-md)}.skeleton-phase-progress{display:flex;gap:1rem;padding:1rem 1.5rem;background:var(--bg-light);justify-content:center}.skeleton-phase-progress .skeleton{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%}.skeleton-phase-item{width:80px;height:60px;border-radius:var(--radius-md)}.skeleton-tabs{display:flex;gap:0;padding:0 1.5rem;background:var(--bg-light);border-bottom:1px solid var(--border-color)}.skeleton-tabs .skeleton{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%}.skeleton-tab{width:80px;height:2.5rem;border-radius:var(--radius-sm) var(--radius-sm) 0 0;margin-bottom:-1px}.skeleton-content{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.skeleton-content .skeleton{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%}.skeleton-line{height:1rem;width:100%}.skeleton-line.short{width:40%}.skeleton-line.medium{width:70%}.skeleton-block{height:120px;width:100%;border-radius:var(--radius-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.clients-page{padding:1.5rem;height:100%;display:flex;flex-direction:column;gap:1rem}.clients-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.clients-header .header-left{display:flex;align-items:center;gap:1rem}.clients-header h1{margin:0;font-size:1.5rem;color:var(--gray-800)}.clients-header .header-actions{display:flex;align-items:center;gap:.75rem}.clients-header .search-input{padding:.5rem 1rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.875rem;width:250px}.clients-content{display:grid;grid-template-columns:350px 1fr;gap:1.5rem;flex:1;min-height:0}.clients-list-panel{background:#fff;border-radius:8px;border:1px solid var(--gray-200);display:flex;flex-direction:column;overflow:hidden}.clients-list-panel h3{padding:1rem;margin:0;border-bottom:1px solid var(--gray-200);font-size:.95rem;color:var(--gray-700)}.clients-list{flex:1;overflow-y:auto;padding:.5rem}.client-item{padding:.75rem 1rem;border-radius:6px;cursor:pointer;transition:background-color .15s;margin-bottom:.25rem}.client-item:hover{background:var(--gray-50)}.client-item.active{background:var(--primary-light);border-left:3px solid var(--primary-color)}.client-item-name{font-weight:600;color:var(--gray-800);margin-bottom:.25rem}.client-item-details{font-size:.8rem;color:var(--gray-500);display:flex;flex-wrap:wrap;gap:.5rem}.client-source-badge{font-size:.7rem;padding:.15rem .4rem;background:var(--gray-100);border-radius:4px;color:var(--gray-600);text-transform:capitalize;margin-top:.25rem;display:inline-block}.client-detail-panel{background:#fff;border-radius:8px;border:1px solid var(--gray-200);overflow-y:auto;padding:1.5rem}.client-form{max-width:600px}.client-form h3{margin:0 0 1.5rem;color:var(--gray-800)}.client-form .form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.client-form .form-group{display:flex;flex-direction:column;gap:.35rem}.client-form .form-group.full-width{grid-column:span 2}.client-form .form-group label{font-size:.85rem;font-weight:500;color:var(--gray-600)}.client-form .form-group input,.client-form .form-group select,.client-form .form-group textarea{padding:.5rem .75rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.9rem}.client-form .form-group input:focus,.client-form .form-group select:focus,.client-form .form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-light)}.client-form .form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--gray-200)}.client-detail .detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.client-detail .detail-header h2{margin:0;font-size:1.5rem;color:var(--gray-800)}.client-detail .detail-actions{display:flex;gap:.5rem}.client-detail .detail-info{background:var(--gray-50);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.5rem}.client-detail .info-row{display:flex;align-items:flex-start;padding:.5rem 0;border-bottom:1px solid var(--gray-200)}.client-detail .info-row:last-child{border-bottom:none}.client-detail .info-label{font-weight:500;color:var(--gray-600);width:100px;flex-shrink:0}.client-detail .info-row a{color:var(--primary-color);text-decoration:none}.client-detail .info-row a:hover{text-decoration:underline}.client-detail .referral-note{color:var(--gray-500);font-style:italic}.client-detail .notes-row{flex-direction:column;gap:.5rem}.client-detail .notes-row .info-label{width:auto}.client-estimates h3{margin:0 0 1rem;font-size:1rem;color:var(--gray-700)}.client-estimates .no-estimates{color:var(--gray-500);font-style:italic}.client-estimates .estimates-list{display:flex;flex-direction:column;gap:.75rem}.client-estimates .estimate-item{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;padding:.75rem 1rem;transition:all .15s}.client-estimates .estimate-item:hover{background:#fff;border-color:var(--primary-color)}.client-estimates .estimate-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.client-estimates .project-id{font-weight:600;color:var(--gray-800)}.client-estimates .estimate-item-address{font-size:.85rem;color:var(--gray-600)}.client-estimates .estimate-item-date{font-size:.8rem;color:var(--gray-500);margin-top:.25rem}.empty-detail{display:flex;align-items:center;justify-content:center;height:100%;color:var(--gray-500)}@media(max-width:900px){.clients-content{grid-template-columns:1fr}.clients-list-panel{max-height:300px}.client-form .form-grid{grid-template-columns:1fr}.client-form .form-group.full-width{grid-column:span 1}}.clients-page-v2{padding:1.5rem;height:100%;display:flex;flex-direction:column;gap:1.25rem;background:var(--bg-page)}.clients-page-v2 .clients-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);padding:1.5rem 2rem;margin:-1.5rem -1.5rem 0;position:relative}.clients-page-v2 .clients-header:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(255,255,255,.15) 0%,transparent 60%);pointer-events:none}.clients-page-v2 .clients-title-section{display:flex;align-items:center;gap:1rem;position:relative;z-index:1}.clients-page-v2 .clients-icon-badge{width:56px;height:56px;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.3)}.clients-page-v2 .clients-icon-badge span{font-size:1.75rem}.clients-page-v2 .clients-title-text h1{margin:0;font-size:1.75rem;font-weight:700;color:#fff}.clients-page-v2 .clients-subtitle{margin:.25rem 0 0;font-size:.9375rem;color:#ffffffe6}.clients-page-v2 .clients-header-actions{position:relative;z-index:1}.clients-page-v2 .btn-add-client{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--accent-color);color:#fff;border:none;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #00000026}.clients-page-v2 .btn-add-client:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #0003}.clients-page-v2 .btn-add-client span{font-size:1.25rem;font-weight:400}.clients-stats-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.clients-stat{background:var(--bg-white);border-radius:12px;padding:1rem 1.25rem;display:flex;align-items:center;gap:.875rem;box-shadow:0 1px 3px #00000014;border:1px solid var(--border-light);transition:all .2s}.clients-stat:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.clients-stat .stat-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.clients-stat:nth-child(1) .stat-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.clients-stat:nth-child(2) .stat-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.clients-stat:nth-child(3) .stat-icon{background:linear-gradient(135deg,#fef3c7,#fde68a)}.clients-stat:nth-child(4) .stat-icon{background:linear-gradient(135deg,#ede9fe,#ddd6fe)}.clients-stat .stat-info{display:flex;flex-direction:column}.clients-stat .stat-value{font-size:1.375rem;font-weight:700;color:var(--text-color);line-height:1.2}.clients-stat .stat-label{font-size:.75rem;color:var(--text-secondary);font-weight:500}.clients-message{padding:.875rem 1rem;border-radius:10px;font-size:.875rem;font-weight:500}.clients-message-success{background:#dcfce7;color:#166534;border:1px solid #86efac}.clients-message-error{background:#fee2e2;color:#dc2626;border:1px solid #fca5a5}.clients-main-content{display:grid;grid-template-columns:380px 1fr;gap:1.5rem;flex:1;min-height:0}.clients-list-panel-v2{background:var(--bg-white);border-radius:16px;box-shadow:0 1px 3px #0000000d,0 4px 12px #00000008;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-color)}.clients-list-header{padding:1rem;display:flex;flex-direction:column;gap:.75rem;border-bottom:1px solid var(--border-color);background:var(--bg-hover)}.clients-search-box{display:flex;align-items:center;gap:.5rem;background:var(--bg-white);border:1px solid var(--border-color);border-radius:8px;padding:.5rem .75rem;transition:border-color .15s,box-shadow .15s}.clients-search-box:focus-within{border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.clients-search-box .search-icon{font-size:.875rem;opacity:.6}.clients-search-box input{flex:1;border:none;background:transparent;font-size:.875rem;outline:none}.clients-filter-select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:8px;font-size:.8125rem;background:var(--bg-white);cursor:pointer}.clients-list-count{padding:.5rem 1rem;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border-color)}.clients-list-v2{flex:1;overflow-y:auto;padding:.5rem}.clients-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem;color:var(--text-muted)}.clients-loading .loading-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.clients-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;color:var(--text-muted)}.clients-empty .empty-icon{font-size:2.5rem;margin-bottom:.5rem;opacity:.5}.clients-empty p{margin:0 0 1rem}.client-card-v2{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;border-radius:10px;cursor:pointer;transition:all .15s ease;margin-bottom:.375rem;border:1px solid transparent;min-height:64px}.client-card-v2:hover{background:var(--bg-hover)}.client-card-v2.active{background:linear-gradient(135deg,#eff6ff,#f8fafc);border-color:#93c5fd}@media(hover:none){.client-card-v2:active{background:var(--bg-hover);transform:scale(.99)}.btn-add-client:active,.btn-edit:active,.btn-delete:active,.btn-save:active,.btn-cancel:active{transform:scale(.97)}.contact-item:active{background:var(--bg-white);border-color:var(--primary-color)}.estimate-card-v2:active{transform:scale(.98)}}.client-avatar{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;color:#fff;flex-shrink:0;box-shadow:0 2px 6px #00000026}.client-card-info{flex:1;min-width:0}.client-card-name{font-weight:600;font-size:.9375rem;color:var(--text-color);margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-card-contact{display:flex;flex-direction:column;gap:.125rem;font-size:.75rem;color:var(--text-muted)}.client-card-contact span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-card-address{font-size:.75rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.125rem}.client-card-source{flex-shrink:0}.client-card-source .source-label{display:inline-block;font-size:.6875rem;font-weight:500;padding:.25rem .5rem;background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#6d28d9;border-radius:6px;white-space:nowrap}.client-card-source .source-icon{font-size:1rem;opacity:.7}.clients-detail-panel-v2{background:var(--bg-white);border-radius:16px;box-shadow:0 1px 3px #0000000d,0 4px 12px #00000008;overflow-y:auto;border:1px solid var(--border-color)}.empty-detail-v2{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-muted);padding:3rem}.empty-detail-v2 .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.4}.empty-detail-v2 h3{margin:0 0 .5rem;font-size:1.125rem;color:var(--text-color)}.empty-detail-v2 p{margin:0;font-size:.875rem}.client-detail-v2{padding:1.5rem}.detail-header-v2{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color);margin-bottom:1.5rem}.detail-title-section{display:flex;align-items:center;gap:1rem}.detail-avatar{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;color:#fff;box-shadow:0 4px 12px #00000026}.detail-title-info h2{margin:0 0 .375rem;font-size:1.5rem;font-weight:700;color:var(--text-color)}.detail-source-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:linear-gradient(135deg,#ede9fe,#ddd6fe);border-radius:20px;font-size:.8125rem;font-weight:500;color:#6d28d9}.detail-actions-v2{display:flex;gap:.5rem}.btn-edit,.btn-delete{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;border-radius:8px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease;border:1px solid var(--border-color);background:var(--bg-white)}.btn-edit:hover{background:var(--bg-hover);border-color:var(--primary-color);color:var(--primary-color)}.btn-delete{color:#dc2626}.btn-delete:hover{background:#fee2e2;border-color:#fca5a5}.detail-content-v2{display:flex;flex-direction:column;gap:1.5rem}.detail-section h3{margin:0 0 1rem;font-size:.875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.section-header{display:flex;justify-content:space-between;align-items:center}.section-count{background:var(--bg-hover);padding:.25rem .625rem;border-radius:12px;font-size:.75rem;font-weight:600;color:var(--text-muted)}.contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.contact-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--bg-hover);border-radius:10px;text-decoration:none;color:inherit;transition:all .15s ease;border:1px solid transparent;overflow:hidden;min-width:0}a.contact-item:hover{background:var(--bg-white);border-color:var(--primary-color)}.contact-icon{font-size:1.25rem;flex-shrink:0}.contact-item>div{display:flex;flex-direction:column;gap:.125rem;min-width:0;flex:1}.contact-label{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.contact-value{font-size:.875rem;font-weight:500;color:var(--text-color);word-break:break-word;overflow-wrap:break-word}.notes-content{background:var(--bg-hover);border-radius:10px;padding:1rem;font-size:.875rem;color:var(--text-color);line-height:1.6;white-space:pre-wrap}.referral-stats-section{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-radius:12px;padding:1.25rem;border:1px solid #bbf7d0}.referral-stats-section h3{color:#166534}.referral-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}.referral-stat-card{display:flex;align-items:center;gap:.75rem;background:var(--bg-white);border-radius:10px;padding:1rem;box-shadow:var(--shadow-xs)}.referral-stat-icon{font-size:1.5rem}.referral-stat-info{display:flex;flex-direction:column}.referral-stat-value{font-size:1.5rem;font-weight:700;color:#166534;line-height:1.2}.referral-stat-label{font-size:.75rem;color:var(--text-muted);font-weight:500}.referral-payments-list h4{margin:0 0 .75rem;font-size:.8125rem;font-weight:600;color:#166534}.referral-payment-item{display:flex;justify-content:space-between;align-items:center;background:var(--bg-white);border-radius:8px;padding:.75rem 1rem;margin-bottom:.5rem;box-shadow:var(--shadow-xs)}.referral-payment-item:last-child{margin-bottom:0}.payment-info{display:flex;align-items:center;gap:.75rem}.payment-amount{font-size:1rem;font-weight:700;color:#166534}.payment-status{font-size:.6875rem;font-weight:600;text-transform:uppercase;padding:.25rem .5rem;border-radius:6px;background:#e5e7eb;color:var(--text-muted)}.referral-payment-item.status-earned .payment-status{background:#fef3c7;color:#92400e}.referral-payment-item.status-paid .payment-status{background:#d1fae5;color:#166534}.payment-details{display:flex;gap:1rem;font-size:.75rem;color:var(--text-muted)}.referral-promo{background:var(--bg-white);border-radius:8px;padding:1rem;margin-top:.5rem}.referral-promo p{margin:0 0 .5rem;font-size:.875rem;color:#166534;font-weight:500}.referral-promo ul{margin:0;padding-left:1.25rem;font-size:.8125rem;color:var(--text-secondary)}.referral-promo li{margin-bottom:.25rem}.referral-promo li:last-child{margin-bottom:0}.no-estimates-v2{display:flex;flex-direction:column;align-items:center;padding:2rem;background:var(--bg-hover);border-radius:10px;text-align:center;color:var(--text-muted)}.no-estimates-v2 span{font-size:2rem;margin-bottom:.5rem;opacity:.5}.no-estimates-v2 p{margin:0;font-size:.875rem}.estimates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.estimate-card-v2{background:var(--bg-hover);border:1px solid var(--border-color);border-radius:10px;padding:1rem;transition:all .15s ease}.estimate-card-v2:hover{background:var(--bg-white);border-color:var(--primary-color);box-shadow:0 2px 8px #00000014}.estimate-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.estimate-project-id{font-weight:600;font-size:.9375rem;color:var(--text-color)}.estimate-status-badge{padding:.25rem .5rem;border-radius:6px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.estimate-card-address{font-size:.8125rem;color:var(--text-muted);margin-bottom:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.estimate-card-footer{display:flex;justify-content:space-between;align-items:center}.estimate-date{font-size:.75rem;color:var(--text-muted)}.client-form-v2{display:flex;flex-direction:column;height:100%}.client-form-v2 .form-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);background:var(--bg-hover)}.client-form-v2 .form-header h2{margin:0;font-size:1.25rem;font-weight:700;color:var(--text-color)}.btn-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:8px;font-size:1.25rem;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.btn-close:hover{background:var(--bg-white);color:var(--text-color)}.client-form-v2 .form-body{flex:1;overflow-y:auto;padding:1.5rem}.client-form-v2 .form-section{margin-bottom:1.5rem}.client-form-v2 .form-section h3{margin:0 0 1rem;font-size:.8125rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.client-form-v2 .form-row{margin-bottom:1rem}.client-form-v2 .form-row.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.client-form-v2 .form-row.three-col{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem}.client-form-v2 .form-field{display:flex;flex-direction:column;gap:.375rem}.client-form-v2 .form-field label{font-size:.8125rem;font-weight:500;color:var(--text-color)}.client-form-v2 .form-field label .required{color:#dc2626}.client-form-v2 .form-field input,.client-form-v2 .form-field select,.client-form-v2 .form-field textarea{padding:.625rem .875rem;border:1px solid var(--border-color);border-radius:8px;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.client-form-v2 .form-field input:focus,.client-form-v2 .form-field select:focus,.client-form-v2 .form-field textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.client-form-v2 .form-field textarea{resize:vertical;min-height:100px}.client-form-v2 .form-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color);background:var(--bg-hover)}.btn-cancel{padding:.625rem 1.25rem;background:var(--bg-white);border:1px solid var(--border-color);border-radius:8px;font-size:.875rem;font-weight:500;color:var(--text-color);cursor:pointer;transition:all .15s ease}.btn-cancel:hover{background:var(--bg-hover)}.btn-save{padding:.625rem 1.25rem;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;border-radius:8px;font-size:.875rem;font-weight:600;color:#fff;cursor:pointer;transition:all .15s ease}.btn-save:hover{box-shadow:0 4px 12px #3b82f64d}@media(min-width:769px)and (max-width:1100px){.clients-main-content{grid-template-columns:320px 1fr;gap:1rem}.clients-page-v2 .clients-header{flex-wrap:wrap;padding:1.25rem 1.5rem;margin:-1.5rem -1.5rem 0}.clients-stats-bar{grid-template-columns:repeat(4,1fr)}.contact-grid,.estimates-grid{grid-template-columns:repeat(2,1fr)}.client-avatar{width:40px;height:40px;font-size:.8125rem}.detail-avatar{width:56px;height:56px;font-size:1.125rem}}@media(max-width:768px){.clients-page-v2{padding:1rem;gap:1rem}.clients-main-content{grid-template-columns:1fr}.clients-list-panel-v2{max-height:350px}.clients-page-v2 .clients-header{flex-direction:column;gap:1rem;align-items:flex-start;margin:-1rem -1rem 0;padding:1.25rem 1.5rem}.clients-page-v2 .clients-icon-badge{width:48px;height:48px;border-radius:12px}.clients-page-v2 .clients-icon-badge span,.clients-page-v2 .clients-title-text h1{font-size:1.5rem}.clients-page-v2 .clients-subtitle{font-size:.875rem}.clients-page-v2 .clients-header-actions{width:100%}.clients-page-v2 .btn-add-client{width:100%;justify-content:center}.clients-stats-bar{grid-template-columns:repeat(2,1fr);gap:.75rem}.clients-stat{padding:.875rem 1rem}.clients-stat .stat-value{font-size:1.25rem}.client-form-v2 .form-row.two-col,.contact-grid,.estimates-grid{grid-template-columns:1fr}.detail-header-v2{flex-direction:column;gap:1rem}.detail-actions-v2{width:100%;justify-content:flex-start}.btn-edit,.btn-delete{flex:1;justify-content:center}}@media(max-width:480px){.clients-page-v2 .clients-header{padding:1rem}.clients-page-v2 .clients-icon-badge{width:44px;height:44px;border-radius:10px}.clients-page-v2 .clients-icon-badge span{font-size:1.25rem}.clients-page-v2 .clients-title-text h1{font-size:1.375rem}.clients-stats-bar{grid-template-columns:repeat(2,1fr)}.clients-stat .stat-icon{width:36px;height:36px;font-size:1rem}.clients-list-header,.client-card-v2{padding:.75rem}.client-avatar{width:36px;height:36px;font-size:.75rem;border-radius:10px}.client-card-name{font-size:.875rem}.detail-avatar{width:48px;height:48px;font-size:1rem}.detail-title-info h2{font-size:1.25rem}}.client-selector{margin-bottom:1rem;position:relative}.selected-client{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--primary-light);border:1px solid var(--primary-color);border-radius:6px}.selected-client-name{font-weight:600;color:var(--gray-800)}.clear-client-btn{background:none;border:none;font-size:1.25rem;color:var(--gray-500);cursor:pointer;padding:0;line-height:1}.clear-client-btn:hover{color:var(--danger-color)}.client-search{position:relative}.client-search input{width:100%;padding:.75rem 1rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.9rem}.client-search input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-light)}.client-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--gray-300);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:100;max-height:250px;overflow-y:auto;margin-top:4px}.client-option{padding:.75rem 1rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gray-100)}.client-option:last-child{border-bottom:none}.client-option:hover{background:var(--gray-50)}.client-option-name{font-weight:500;color:var(--gray-800)}.client-option-phone{font-size:.85rem;color:var(--gray-500)}.client-option.no-results{color:var(--gray-500);font-style:italic;cursor:default}.client-option.no-results:hover{background:transparent}.email-match-notification{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.5rem;padding:.5rem .75rem;background:var(--primary-light);border:1px solid var(--primary-color);border-radius:6px;font-size:.85rem;color:var(--gray-700)}.email-match-notification span{flex:1}.email-match-notification strong{color:var(--gray-900)}.use-client-btn{padding:.35rem .75rem;background:var(--primary-color);color:#fff;border:none;border-radius:4px;font-size:.8rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s ease}.use-client-btn:hover{background:var(--primary-hover)}.crew-tab{display:flex;flex-direction:column;gap:1.5rem}.assignment-notice{background:var(--warning-light, #fff3cd);border:1px solid var(--warning-color, #ffc107);border-radius:6px;padding:.75rem 1rem;color:var(--gray-700);font-size:.9rem}.assigned-crew-list{display:flex;flex-direction:column;gap:.5rem}.assigned-crew-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--gray-50);border-radius:6px;border:1px solid var(--gray-200)}.assigned-crew-item .crew-info{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.assigned-crew-item .crew-name{font-weight:600;color:var(--gray-800)}.assigned-crew-item .crew-company{color:var(--gray-500);font-size:.85rem}.assigned-crew-item .crew-role{background:var(--primary-light);color:var(--primary-color);padding:.15rem .5rem;border-radius:4px;font-size:.75rem;text-transform:capitalize}.assigned-crew-item .crew-percent{background:var(--success-light, #d4edda);color:var(--success-color, #28a745);padding:.15rem .5rem;border-radius:4px;font-size:.75rem}.assign-crew-form{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--gray-200)}.assign-crew-form select{flex:1;min-width:150px;padding:.5rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.9rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h3{margin:0}.payment-form{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;padding:1rem;margin-bottom:1rem}.payment-form .form-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.payment-form .form-row:last-child{margin-bottom:0}.payment-form select,.payment-form input{flex:1;min-width:120px;padding:.5rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.9rem}.payment-form input[type=number]{max-width:120px}.payment-form input[type=date]{max-width:150px}.payments-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.payment-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;transition:all .2s ease}.payment-item:hover{background:#f1f5f9;border-color:#cbd5e1}.payment-item .payment-info{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.payment-item .payment-sub{font-weight:600;color:#1e293b}.payment-item .payment-amount{font-weight:700;color:#059669;font-size:1.0625rem}.payment-item .payment-method,.payment-item .payment-date,.payment-item .payment-ref{color:#64748b;font-size:.8125rem}.payments-total{margin-top:1rem;padding-top:1rem;border-top:2px solid #e2e8f0;text-align:right;font-size:1.0625rem}.payments-total strong{color:#1e293b}.payments-tab{display:flex;flex-direction:column;gap:1.5rem}.payment-summary-section{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;border:1px solid #e2e8f0}.payment-summary{display:flex;flex-direction:column;gap:.25rem}.payment-summary .summary-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #e2e8f0}.payment-summary .summary-row:last-child{border-bottom:none}.payment-summary .summary-row.balance{margin-top:.5rem;padding-top:1rem;border-top:2px solid #cbd5e1;border-bottom:none;background:#fff;margin:.5rem -1rem -.5rem;padding:1rem;border-radius:0 0 11px 11px}.payment-summary .summary-label{color:#475569;font-weight:500;font-size:.9375rem}.payment-summary .summary-value{font-weight:700;font-size:1.125rem;color:#1e293b}.payment-summary .summary-value.received,.payment-summary .summary-value.paid{color:#059669}.payment-summary .summary-value.due{color:#d97706}.deposit-update{display:flex;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.deposit-update label{color:#475569;font-size:.9rem;font-weight:500;white-space:nowrap}.deposit-update input{max-width:120px;padding:.625rem .75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;background:#f8fafc;transition:all .2s ease}.deposit-update input:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61a}.checklist-items{display:flex;flex-direction:column;gap:.5rem}.checklist-item{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.75rem 1rem;border-radius:10px;transition:all .2s ease;background:#f8fafc;border:1px solid #e2e8f0}.checklist-item:hover{background:#f1f5f9;border-color:#cbd5e1}.checklist-item input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#3b82f6}.customer-payments-list{margin-top:0}.customer-payments-list .payment-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:1rem;margin-bottom:.75rem;transition:all .2s ease}.customer-payments-list .payment-item:hover{background:#f1f5f9;border-color:#cbd5e1}.customer-payments-list .payment-item .payment-notes{color:#64748b;font-size:.8125rem;font-style:italic;background:#fff;padding:.5rem .75rem;border-radius:6px;margin-top:.5rem;border-left:3px solid #3b82f6}.work-order-tab{display:flex;flex-direction:column;gap:1.5rem}.paint-colors-grid{display:flex;flex-wrap:wrap;gap:1rem}.paint-color-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:6px;border:1px solid var(--gray-200);min-width:150px}.paint-color-item .color-label{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;font-weight:600}.paint-color-item .color-value{font-weight:500;color:var(--gray-800)}.work-order-list{display:flex;flex-wrap:wrap;gap:.5rem}.work-order-tag{padding:.375rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500;text-transform:capitalize}.area-tag{background:var(--primary-light, #e0f2fe);color:var(--primary-color, #0284c7)}.service-tag{background:var(--success-light, #d1fae5);color:var(--success-color, #059669)}.measurements-summary{overflow-x:auto}.measurements-table{width:100%;border-collapse:collapse;font-size:.9rem}.measurements-table th,.measurements-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--gray-200)}.measurements-table th{background:var(--gray-50);font-weight:600;color:var(--gray-600);font-size:.8rem;text-transform:uppercase}.measurements-table td{color:var(--gray-700)}.measurements-table .total-cell{font-weight:600;color:var(--gray-800)}.labor-materials-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.labor-materials-summary .summary-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:var(--gray-50);border-radius:6px}.labor-materials-summary .summary-label{font-size:.75rem;color:var(--gray-500);text-transform:uppercase}.labor-materials-summary .summary-value{font-size:1.1rem;font-weight:600;color:var(--gray-800)}.job-details-content{background:var(--gray-50);padding:1rem;border-radius:6px;white-space:pre-wrap;line-height:1.5;color:var(--gray-700)}.work-order-actions{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;background:linear-gradient(135deg,var(--primary-color) 0%,#2563eb 100%);border-radius:8px;margin-bottom:.5rem}.view-work-order-btn{padding:.75rem 2rem;font-size:1rem;font-weight:600;background:#fff;color:var(--primary-color);border:none;border-radius:6px;cursor:pointer;transition:transform .2s,box-shadow .2s}.view-work-order-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.work-order-hint{font-size:.8rem;color:#ffffffd9;text-align:center}.scope-section .scope-content{display:flex;flex-direction:column;gap:.75rem}.scope-row{display:flex;flex-wrap:wrap;gap:.5rem}.scope-label{font-weight:600;color:var(--gray-600);min-width:70px}.scope-value{color:var(--gray-800);flex:1}.work-order-tab .colors-grid{display:flex;flex-wrap:wrap;gap:1rem}.work-order-tab .color-item{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--gray-50);border-radius:6px;border:1px solid var(--gray-200)}.work-order-tab .color-type{font-weight:600;color:var(--gray-600)}.work-order-tab .color-name{color:var(--gray-800)}.work-order-tab .color-gallons{color:var(--gray-500);font-size:.85rem}.work-order-tab .paint-totals{display:flex;gap:2rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--gray-200);font-size:.9rem;color:var(--gray-600)}.work-order-tab .labor-table{width:100%;border-collapse:collapse;font-size:.9rem}.work-order-tab .labor-table thead{background:var(--primary-color);color:#fff}.work-order-tab .labor-table th{padding:.75rem;text-align:left;font-weight:600}.work-order-tab .labor-table th:last-child,.work-order-tab .labor-table td:last-child{text-align:right}.work-order-tab .labor-table td{padding:.5rem .75rem;border-bottom:1px solid var(--gray-200)}.work-order-tab .labor-table td.number{text-align:right;font-family:var(--font-mono, monospace)}.work-order-tab .labor-table tfoot tr.subtotal td{border-top:2px solid var(--gray-300);font-weight:600;background:var(--gray-50)}.work-order-tab .labor-table tfoot tr.materials-row td{color:var(--gray-600);font-style:italic;background:var(--gray-50)}.work-order-tab .labor-table tfoot tr.grand-total td{background:var(--primary-color);color:#fff;font-weight:700;font-size:1rem}.work-order-tab .detailed-breakdown{display:flex;flex-direction:column;gap:1rem}.work-order-tab .side-breakdown{background:var(--gray-50);border-radius:8px;overflow:hidden}.work-order-tab .side-header{background:var(--primary-color);color:#fff;padding:.5rem 1rem;margin:0;font-size:.9rem;font-weight:600}.work-order-tab .side-items{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem}.work-order-tab .side-item{display:flex;justify-content:space-between;padding:.25rem 0;border-bottom:1px dashed var(--gray-200)}.work-order-tab .side-item:last-child{border-bottom:none}.work-order-tab .item-name{color:var(--gray-700)}.work-order-tab .item-hours{font-family:var(--font-mono, monospace);color:var(--gray-600)}.work-order-tab .side-total{display:flex;justify-content:space-between;padding:.5rem 1rem;background:linear-gradient(to bottom,#f8f9fa,#e9ecef);font-weight:600;color:var(--gray-700);border-top:1px solid var(--gray-300)}.work-order-tab .item-notes-edit{display:flex;gap:.5rem;margin-top:.25rem;align-items:center}.work-order-tab .item-notes-edit .notes-input{flex:1;padding:.25rem .5rem;font-size:.8125rem;border:1px solid var(--gray-300);border-radius:4px;background:var(--gray-50)}.work-order-tab .item-notes-edit .notes-input:focus{outline:none;border-color:var(--primary-color);background:#fff}.work-order-tab .item-notes-edit .notes-input::placeholder{color:var(--gray-400);font-style:italic}.work-order-tab .btn-save-notes{padding:.25rem .5rem;font-size:.75rem;font-weight:600;background:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;white-space:nowrap}.work-order-tab .btn-save-notes:hover{background:var(--primary-dark)}.work-order-tab .site-photos .images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.work-order-tab .site-photos .image-item{background:var(--gray-50);border-radius:8px;overflow:hidden;border:1px solid var(--gray-200)}.work-order-tab .site-photos .image-item img{width:100%;height:150px;object-fit:cover;cursor:pointer;transition:opacity .2s}.work-order-tab .site-photos .image-item img:hover{opacity:.85}.work-order-tab .site-photos .image-caption{padding:.5rem .75rem;display:flex;flex-direction:column;gap:.125rem}.work-order-tab .site-photos .image-side{font-size:.7rem;color:var(--gray-500);text-transform:uppercase;font-weight:600}.work-order-tab .site-photos .image-item-name{font-size:.85rem;color:var(--gray-700)}.work-order-tab .site-documentation .side-drawings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.work-order-tab .site-documentation .side-drawing-item{background:var(--gray-50);border-radius:8px;overflow:hidden;border:1px solid var(--gray-200)}.work-order-tab .site-documentation .side-drawing-item h4{background:var(--primary-color);color:#fff;margin:0;padding:.5rem .75rem;font-size:.85rem;font-weight:600}.work-order-tab .site-documentation .side-drawing-item img{width:100%;cursor:pointer;transition:opacity .2s}.work-order-tab .site-documentation .side-drawing-item img:hover{opacity:.9}.work-order-tab .site-documentation .drawing-notes{padding:.5rem .75rem;background:#fefce8;border-top:1px solid var(--gray-200)}.work-order-tab .site-documentation .drawing-notes pre{margin:0;font-size:.8rem;white-space:pre-wrap;font-family:inherit;color:var(--gray-700)}.send-work-order-section{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #10b981;border-radius:8px}.send-work-order-section h3{color:#047857}.send-work-order-form{display:flex;flex-direction:column;gap:.75rem}.send-work-order-form select{padding:.5rem .75rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.9rem;background:#fff}.send-work-order-form textarea{padding:.5rem .75rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.9rem;resize:vertical;font-family:inherit}.send-work-order-form textarea:focus,.send-work-order-form select:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.send-work-order-btn{background:#10b981;border-color:#10b981;align-self:flex-start;padding:.5rem 1.5rem}.send-work-order-btn:hover:not(:disabled){background:#059669;border-color:#059669}.send-work-order-btn:disabled{background:#9ca3af;border-color:#9ca3af;cursor:not-allowed}.jobs-page{padding:1.5rem;max-width:1600px;margin:0 auto}.jobs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.jobs-header h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-color)}.jobs-stats{display:flex;gap:1.5rem}.stat-item{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:1.5rem;font-weight:700;color:var(--primary-color)}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.jobs-filters{background:var(--bg-white);border-radius:var(--radius-lg);padding:1rem 1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.search-form{display:flex;gap:.75rem;margin-bottom:1rem}.search-form .search-input{flex:1;padding:.625rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9375rem}.search-form .search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.btn-search{padding:.625rem 1.25rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn-search:hover{background:var(--primary-hover)}.filter-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.25rem}.filter-group label{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.filter-group select,.filter-group input{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;min-width:140px}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:var(--primary-color)}.btn-clear-filters{padding:.5rem 1rem;background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.btn-clear-filters:hover{background:var(--danger-light);color:var(--danger-color);border-color:var(--danger-color)}.jobs-table-container{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.jobs-table{width:100%;border-collapse:collapse}.jobs-table th{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff;padding:.875rem 1rem;text-align:left;font-weight:600;font-size:.8125rem;text-transform:uppercase;letter-spacing:.025em;white-space:nowrap}.jobs-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-light);font-size:.875rem}.job-row{cursor:pointer;transition:background var(--transition-fast)}.job-row:hover{background:var(--bg-hover)}.project-cell .project-id{font-weight:600;color:var(--primary-color)}.client-cell{display:flex;flex-direction:column}.client-name{font-weight:500}.client-phone{font-size:.75rem;color:var(--text-muted)}.address-cell .address{font-size:.8125rem;color:var(--text-secondary)}.phase-cell{display:flex;align-items:center;gap:.5rem}.phase-badge{padding:.25rem .625rem;border-radius:var(--radius-full);color:#fff;font-size:.75rem;font-weight:500;white-space:nowrap}.days-badge{font-size:.6875rem;color:var(--warning-color);background:var(--warning-light);padding:.125rem .375rem;border-radius:var(--radius-sm)}.value-cell{font-weight:600}.paid-cell .has-payments{color:var(--success-color)}.payment-count{font-size:.75rem;color:var(--text-muted);margin-left:.25rem}.balance-cell.has-balance{color:var(--warning-color);font-weight:500}.balance-cell.paid-full{color:var(--success-color)}.profit-cell.positive{color:var(--success-color);font-weight:500}.profit-cell.negative{color:var(--danger-color);font-weight:500}.pm-cell{font-size:.8125rem;color:var(--text-secondary)}.actions-cell{text-align:center;white-space:nowrap}.link-button{background:none;border:none;padding:0;font:inherit;color:var(--primary-color);font-weight:600;cursor:pointer;text-decoration:none;transition:all var(--transition-fast)}.link-button:hover{color:var(--primary-hover);text-decoration:underline}.link-button.client-link{font-weight:500}.btn-action{padding:.3rem .6rem;background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);margin-left:.25rem}.btn-action:first-child{margin-left:0}.btn-action:hover{background:var(--bg-hover);border-color:var(--primary-color);color:var(--primary-color)}.btn-action-primary{background:var(--primary-subtle);color:var(--primary-color);border-color:transparent}.btn-action-primary:hover{background:var(--primary-color);color:#fff}.jobs-table tfoot{background:var(--bg-subtle);border-top:2px solid var(--primary-color)}.totals-row td{padding:1rem!important;font-weight:600;font-size:.9375rem}.totals-label{text-align:right;padding-right:1.5rem!important;color:var(--text-secondary);text-transform:uppercase;font-size:.8125rem!important;letter-spacing:.025em}.totals-row .value-cell,.totals-row .paid-cell,.totals-row .balance-cell,.totals-row .profit-cell{font-family:var(--font-mono, "SF Mono", "Monaco", "Consolas", monospace)}.jobs-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;padding:1rem;margin-top:1rem}.btn-page{padding:.5rem 1rem;background:var(--bg-white);color:var(--text-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.btn-page:hover:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-page:disabled{opacity:.5;cursor:not-allowed}.page-info{font-size:.875rem;color:var(--text-secondary)}.jobs-page .loading-state,.jobs-page .empty-state{text-align:center;padding:3rem;color:var(--text-muted)}.jobs-page .empty-state .hint{font-size:.875rem;margin-top:.5rem}.jobs-page .error-message{background:var(--danger-light);color:var(--danger-color);padding:1rem;border-radius:var(--radius-md);margin-bottom:1rem}@media(max-width:1024px){.jobs-table-container{overflow-x:auto}.jobs-table{min-width:900px}.filter-row{flex-direction:column;align-items:stretch}.filter-group,.filter-group select,.filter-group input{width:100%}}@media(max-width:640px){.jobs-header{flex-direction:column;align-items:flex-start;gap:1rem}.search-form{flex-direction:column}.btn-search{width:100%}}.jobs-page-v2{padding:1.5rem;max-width:1600px;margin:0 auto}.jobs-header-v2{margin-bottom:1.5rem}.jobs-title-section{display:flex;align-items:center;gap:1rem}.jobs-icon-badge{width:56px;height:56px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #3b82f64d}.jobs-icon-badge span{font-size:1.75rem}.jobs-title-text h1{margin:0;font-size:1.75rem;font-weight:700;color:var(--text-color)}.jobs-subtitle{margin:.25rem 0 0;font-size:.9375rem;color:var(--text-secondary)}.jobs-stats-bar{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:1.5rem}.jobs-stat-card{background:var(--bg-white);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;align-items:center;gap:.875rem;box-shadow:var(--shadow);border:1px solid var(--border-light);transition:all var(--transition-fast)}.jobs-stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.jobs-stat-card.highlight{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-color:#bae6fd}.jobs-stat-card.highlight.profit{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#bbf7d0}.jobs-stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.jobs-stat-icon.total-icon{background:linear-gradient(135deg,#e0e7ff,#c7d2fe)}.jobs-stat-icon.progress-icon{background:linear-gradient(135deg,#fef3c7,#fde68a)}.jobs-stat-icon.paid-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.jobs-stat-icon.unpaid-icon{background:linear-gradient(135deg,#fee2e2,#fecaca)}.jobs-stat-icon.value-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.jobs-stat-icon.profit-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.jobs-stat-info{display:flex;flex-direction:column}.jobs-stat-value{font-size:1.375rem;font-weight:700;color:var(--text-color);line-height:1.2}.jobs-stat-label{font-size:.75rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.025em}.jobs-filters-v2{background:var(--bg-white);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.5rem;box-shadow:var(--shadow);border:1px solid var(--border-light)}.jobs-filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.filters-title{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.btn-clear-filters-v2{padding:.375rem .875rem;background:transparent;color:var(--danger-color);border:1px solid var(--danger-color);border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-clear-filters-v2:hover{background:var(--danger-color);color:#fff}.jobs-search-form{display:flex;gap:.75rem;margin-bottom:1rem}.search-input-wrapper{flex:1;position:relative;display:flex;align-items:center}.search-input-wrapper .search-icon{position:absolute;left:1rem;font-size:1rem;opacity:.5}.jobs-search-input{width:100%;padding:.75rem 1rem .75rem 2.75rem;border:1px solid var(--border-color);border-radius:var(--radius-lg);font-size:.9375rem;transition:all var(--transition-fast)}.jobs-search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.btn-search-v2{padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff;border:none;border-radius:var(--radius-lg);font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-search-v2:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.jobs-filter-row{display:flex;flex-wrap:wrap;gap:1rem}.jobs-filter-group{display:flex;flex-direction:column;gap:.375rem;flex:1;min-width:140px}.jobs-filter-group label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.025em}.jobs-filter-group select,.jobs-filter-group input{padding:.625rem .875rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;background:var(--bg-white);transition:all var(--transition-fast)}.jobs-filter-group select:focus,.jobs-filter-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.jobs-table-container-v2{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;border:1px solid var(--border-light)}.jobs-table-v2{width:100%;border-collapse:collapse}.jobs-table-v2 th{background:var(--primary-color);color:#fff;padding:1rem;text-align:left;font-weight:600;font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.jobs-table-v2 th.text-right{text-align:right}.jobs-table-v2 th.text-center{text-align:center}.jobs-table-v2 td{padding:.875rem 1rem;border-bottom:1px solid var(--border-light);font-size:.875rem;vertical-align:middle}.jobs-table-v2 td.text-right{text-align:right}.jobs-table-v2 td.text-center{text-align:center}.job-row-v2{transition:background var(--transition-fast)}.job-row-v2:hover{background:var(--bg-hover)}.link-button-v2{background:none;border:none;padding:0;font:inherit;color:var(--primary-color);font-weight:600;cursor:pointer;text-decoration:none;transition:all var(--transition-fast)}.link-button-v2:hover{color:var(--primary-hover);text-decoration:underline}.link-button-v2.client-link{font-weight:500}.client-cell-v2{display:flex;flex-direction:column;gap:.125rem}.client-phone-v2{font-size:.75rem;color:var(--text-muted)}.address-cell-v2 .address-text{font-size:.8125rem;color:var(--text-secondary)}.phase-cell-v2{display:flex;align-items:center;gap:.5rem}.phase-badge-v2{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:var(--radius-full);color:#fff;font-size:.75rem;font-weight:600;white-space:nowrap}.phase-badge-v2 .phase-icon{font-size:.875rem}.phase-badge-v2.small{padding:.25rem .5rem;font-size:.6875rem}.days-badge-v2{font-size:.6875rem;color:var(--warning-color);background:var(--warning-light);padding:.125rem .5rem;border-radius:var(--radius-sm);font-weight:600}.value-cell-v2{font-weight:600;font-family:var(--font-mono, "SF Mono", "Monaco", "Consolas", monospace)}.paid-cell-v2 .has-payments{color:var(--success-color)}.payment-count-v2{font-size:.75rem;color:var(--text-muted);margin-left:.25rem}.balance-cell-v2{font-family:var(--font-mono, "SF Mono", "Monaco", "Consolas", monospace)}.balance-cell-v2.has-balance{color:var(--warning-color);font-weight:600}.balance-cell-v2.paid-full{color:var(--success-color)}.profit-cell-v2{font-family:var(--font-mono, "SF Mono", "Monaco", "Consolas", monospace);font-weight:600}.profit-cell-v2.positive{color:var(--success-color)}.profit-cell-v2.negative{color:var(--danger-color)}.pm-cell-v2{font-size:.8125rem;color:var(--text-secondary)}.actions-cell-v2{display:flex;gap:.5rem;justify-content:center}.btn-action-v2{padding:.375rem .75rem;background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.75rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-action-v2:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-action-v2.primary{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff;border-color:transparent}.btn-action-v2.primary:hover{transform:translateY(-1px);box-shadow:0 2px 8px #3b82f64d}.jobs-table-v2 tfoot{background:var(--bg-subtle);border-top:2px solid var(--primary-color)}.totals-row-v2 td{padding:1rem!important;font-weight:600;font-size:.9375rem}.totals-label-v2{text-align:right;padding-right:1.5rem!important;color:var(--text-secondary);text-transform:uppercase;font-size:.8125rem!important;letter-spacing:.025em}.jobs-cards-container{display:none}.job-card-v2{background:var(--bg-white);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow);border:1px solid var(--border-light);cursor:pointer;transition:all var(--transition-fast)}.job-card-v2:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary-color)}.job-card-header-v2{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.job-card-title{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.job-project-id{font-size:1.125rem;font-weight:700;color:var(--primary-color)}.job-card-client{margin-bottom:.5rem}.job-card-client .link-button-v2{font-size:1rem}.job-card-address{font-size:.875rem;color:var(--text-secondary);margin-bottom:1rem}.job-card-financials{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;padding:.875rem;background:var(--bg-subtle);border-radius:var(--radius-md);margin-bottom:.875rem}.financial-item{display:flex;flex-direction:column;align-items:center;text-align:center}.financial-label{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.025em;margin-bottom:.25rem}.financial-value{font-size:.9375rem;font-weight:700;font-family:var(--font-mono, "SF Mono", "Monaco", "Consolas", monospace)}.financial-value.paid{color:var(--success-color)}.financial-value.balance{color:var(--warning-color)}.financial-value.complete,.financial-value.profit-positive{color:var(--success-color)}.financial-value.profit-negative{color:var(--danger-color)}.job-card-pm{font-size:.8125rem;color:var(--text-secondary);margin-bottom:.875rem}.job-card-pm .pm-label{font-weight:600;color:var(--text-muted)}.job-card-actions-v2{display:flex;gap:.5rem;padding-top:.875rem;border-top:1px solid var(--border-light)}.job-card-actions-v2 .btn-action-v2{flex:1;text-align:center;padding:.625rem}.jobs-totals-card{background:linear-gradient(135deg,#1e40af,#1d4ed8);border-radius:var(--radius-lg);padding:1.25rem;color:#fff}.totals-card-header{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;opacity:.9}.totals-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.totals-item{display:flex;flex-direction:column}.totals-item-label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.025em;opacity:.8;margin-bottom:.25rem}.totals-item-value{font-size:1.25rem;font-weight:700;font-family:var(--font-mono, "SF Mono", "Monaco", "Consolas", monospace)}.totals-item-value.paid{color:#86efac}.totals-item-value.balance{color:#fcd34d}.totals-item-value.profit-positive{color:#86efac}.totals-item-value.profit-negative{color:#fca5a5}.jobs-pagination-v2{display:flex;justify-content:center;align-items:center;gap:1rem;padding:1.25rem;margin-top:1rem}.btn-page-v2{padding:.625rem 1.25rem;background:var(--bg-white);color:var(--text-color);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-page-v2:hover:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-page-v2:disabled{opacity:.5;cursor:not-allowed}.page-info-v2{font-size:.875rem;color:var(--text-secondary);font-weight:500}.jobs-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--text-secondary);gap:1rem}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-light);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.jobs-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--text-secondary);text-align:center}.jobs-empty-state .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.jobs-empty-state p{margin:0;font-size:1.125rem}.jobs-empty-state .hint{font-size:.875rem;color:var(--text-muted);margin-top:.5rem}.jobs-error-message{background:linear-gradient(135deg,#fef2f2,#fee2e2);color:var(--danger-color);padding:1rem 1.25rem;border-radius:var(--radius-lg);margin-bottom:1.5rem;border:1px solid #fecaca;font-weight:500}@media(max-width:1200px){.jobs-stats-bar{grid-template-columns:repeat(3,1fr)}.jobs-table-container-v2{overflow-x:auto;-webkit-overflow-scrolling:touch}.jobs-table-v2{min-width:1000px}}@media(max-width:1024px){.jobs-page-v2{padding:1rem}.jobs-stats-bar{grid-template-columns:repeat(2,1fr);gap:.75rem}.jobs-stat-card{padding:.875rem}.jobs-stat-value{font-size:1.125rem}.jobs-table-container-v2{display:none}.jobs-cards-container{display:block}.jobs-filter-row{flex-direction:column;gap:.75rem}.jobs-filter-group{width:100%}.jobs-search-form{flex-direction:column}.btn-search-v2{width:100%}}@media(max-width:768px){.jobs-header-v2{margin-bottom:1rem}.jobs-icon-badge{width:48px;height:48px;border-radius:12px}.jobs-icon-badge span,.jobs-title-text h1{font-size:1.5rem}.jobs-subtitle{font-size:.875rem}.jobs-stats-bar{grid-template-columns:repeat(2,1fr);gap:.625rem}.jobs-stat-card{padding:.75rem;gap:.625rem}.jobs-stat-icon{width:36px;height:36px;font-size:1rem}.jobs-stat-value{font-size:1rem}.jobs-stat-label{font-size:.6875rem}.jobs-filters-v2,.job-card-v2{padding:1rem}.job-card-financials{grid-template-columns:repeat(2,1fr);gap:.625rem;padding:.75rem}.financial-value{font-size:.875rem}.job-card-actions-v2 .btn-action-v2{padding:.5rem;font-size:.75rem}.jobs-pagination-v2{padding:1rem;gap:.75rem}.btn-page-v2{padding:.5rem 1rem;font-size:.8125rem}}@media(max-width:480px){.jobs-page-v2{padding:.75rem}.jobs-title-section{gap:.75rem}.jobs-icon-badge{width:44px;height:44px}.jobs-title-text h1{font-size:1.25rem}.jobs-stats-bar{grid-template-columns:1fr 1fr}.jobs-stat-card.highlight{grid-column:span 2}.search-input-wrapper .search-icon{left:.875rem}.jobs-search-input{padding-left:2.5rem}.job-card-v2:hover{transform:none}.totals-card-grid{grid-template-columns:1fr 1fr;gap:.75rem}.totals-item-value{font-size:1rem}}@media(hover:none){.jobs-stat-card:hover{transform:none}.job-card-v2:hover{transform:none;border-color:var(--border-light)}.job-card-v2:active{background:var(--bg-hover);border-color:var(--primary-color)}.btn-action-v2:hover{background:var(--bg-subtle);color:var(--text-secondary);border-color:var(--border-color)}.btn-action-v2:active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-action-v2.primary:hover{transform:none;box-shadow:none}.btn-action-v2.primary:active{transform:scale(.98)}.btn-page-v2:hover:not(:disabled){background:var(--bg-white);color:var(--text-color);border-color:var(--border-color)}.btn-page-v2:active:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-search-v2:hover{transform:none;box-shadow:none}.btn-search-v2:active{transform:scale(.98)}.link-button-v2:active{color:var(--primary-hover)}.btn-action-v2{min-height:44px;min-width:44px}.btn-page-v2,.jobs-filter-group select,.jobs-filter-group input{min-height:44px}}.production-board-v2{padding:1.5rem;max-width:1800px;margin:0 auto;background:#f8fafc;min-height:100%}.production-header-v2{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);padding:1.5rem 2rem;margin:-1.5rem -1.5rem 1.5rem;border-radius:0;position:relative}.production-header-v2:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(255,255,255,.15) 0%,transparent 60%);pointer-events:none}.production-title-section{display:flex;align-items:center;gap:1rem}.production-icon-badge{width:56px;height:56px;background:#fff3;border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000001a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);position:relative;z-index:1}.production-icon-badge span{font-size:1.75rem}.production-title-text h1{margin:0;font-size:1.75rem;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1);position:relative;z-index:1}.production-subtitle{margin:.25rem 0 0;font-size:.9375rem;color:#ffffffd9;position:relative;z-index:1}.production-header-actions{display:flex;align-items:flex-end;gap:1rem;position:relative;z-index:1}.production-filters-v2{display:flex;gap:1rem}.production-filters-v2 .filter-wrapper{display:flex;flex-direction:column;gap:.375rem}.production-filters-v2 .filter-wrapper label{font-size:.75rem;font-weight:600;color:#ffffffe6;text-transform:uppercase;letter-spacing:.025em}.production-filters-v2 select{padding:.625rem 1rem;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);font-size:.875rem;background:#fffffff2;min-width:160px;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 4px #0000001a}.production-filters-v2 select:focus{outline:none;border-color:#fff;box-shadow:0 0 0 3px #ffffff4d}.refresh-btn-v2{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:#fffffff2;color:var(--primary-color);border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 4px #0000001a}.refresh-btn-v2:hover:not(:disabled){background:#fff;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.refresh-btn-v2:disabled{opacity:.6;cursor:not-allowed}.refresh-btn-v2 .refresh-icon{font-size:1rem}.production-message-banner{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;padding:.875rem 1.25rem;border-radius:var(--radius-md);margin-bottom:1.25rem;font-weight:600;text-align:center;border:1px solid #86efac;box-shadow:0 2px 4px #22c55e1a}.production-summary-bar{display:inline-flex;align-items:center;gap:1rem;margin-bottom:1rem;background:var(--bg-white);padding:.5rem 1rem;border-radius:var(--radius-md);box-shadow:0 1px 2px #0000000f;border:1px solid var(--border-light);font-size:.8125rem}.summary-stat{display:flex;align-items:center;gap:.375rem}.summary-icon{font-size:.875rem}.summary-label{color:var(--text-secondary);font-weight:500}.summary-value{font-weight:700;color:var(--text-color)}.summary-divider{width:1px;height:1rem;background:var(--border-color)}.production-columns-v2{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;overflow-x:auto;padding-bottom:1rem;-webkit-overflow-scrolling:touch}.board-column-v2{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:0 2px 8px #00000014;min-width:220px;display:flex;flex-direction:column;max-height:calc(100vh - 340px);border:1px solid var(--border-light);overflow:hidden}.column-header-v2{padding:1rem 1.25rem;border-radius:0;color:#fff;position:relative}.column-header-v2:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(255,255,255,.15) 0%,transparent 60%);pointer-events:none}.column-title-v2{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem;position:relative;z-index:1}.column-name-v2{font-weight:600;font-size:.9375rem;text-shadow:0 1px 2px rgba(0,0,0,.1)}.column-count-v2{background:#fffffff2;color:#1e293b;font-size:.75rem;padding:.25rem .75rem;border-radius:var(--radius-full);font-weight:700;box-shadow:0 1px 2px #0000001a}.column-value-v2{font-size:.8125rem;color:#ffffffe6;font-family:var(--font-mono, "SF Mono", "Monaco", "Consolas", monospace);position:relative;z-index:1}.column-content-v2{flex:1;padding:.75rem;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;background:linear-gradient(180deg,#f8fafc,#f1f5f9)}.column-empty-v2{text-align:center;color:var(--text-muted);font-size:.8125rem;padding:2rem 1rem;font-style:italic}.board-card-v2{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.875rem .875rem .875rem 1rem;cursor:pointer;transition:all var(--transition-fast);position:relative;display:flex;flex-direction:column;min-height:100px;box-shadow:0 1px 3px #0000000f}.board-card-v2:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary-color);border-radius:var(--radius-md) 0 0 var(--radius-md);opacity:0;transition:opacity var(--transition-fast)}.board-card-v2:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--primary-color);transform:translateY(-2px)}.board-card-v2:hover:before{opacity:1}.board-card-v2.blocked{border-left:4px solid var(--warning-color);background:linear-gradient(135deg,#fffbeb,#fef3c7)}.card-project-v2{font-size:.75rem;color:var(--primary-color);font-weight:700;margin-bottom:.375rem;letter-spacing:.025em}.card-client-v2{font-weight:600;color:var(--text-color);font-size:.9375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-address-v2{font-size:.75rem;color:var(--text-muted);margin-top:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-schedule-info-v2{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--text-secondary);margin-top:.625rem;padding:.5rem .625rem;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:var(--radius-sm);border:1px solid #bfdbfe}.card-schedule-info-v2 .schedule-icon{font-size:.875rem}.card-schedule-info-v2 .schedule-date{font-weight:600;color:var(--primary-color)}.card-schedule-info-v2 .schedule-crew{color:var(--text-muted);font-size:.6875rem}.card-schedule-info-v2 .schedule-crew:before{content:"•";margin:0 .25rem}.card-link-v2{display:inline-block;background:none;border:none;font-size:.75rem;color:var(--primary-color);cursor:pointer;padding:.25rem 0;margin-top:.5rem;text-decoration:none;transition:all var(--transition-fast);font-weight:600}.card-link-v2:hover{color:var(--primary-hover);text-decoration:underline}.card-sub-payment-warning{display:flex;align-items:center;gap:.375rem;margin-top:.5rem;padding:.375rem .5rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:var(--radius-sm);border:1px solid #f59e0b}.sub-payment-icon{font-size:.875rem}.sub-payment-text{font-size:.6875rem;font-weight:600;color:#92400e}.btn-pay-crew{margin-left:auto;padding:.25rem .5rem;font-size:.625rem;font-weight:600;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);text-transform:uppercase;letter-spacing:.025em}.btn-pay-crew:hover{background:linear-gradient(135deg,#15803d,#166534);transform:translateY(-1px)}.quick-pay-modal{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:420px;overflow:hidden}.quick-pay-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff}.quick-pay-header h3{margin:0;font-size:1.125rem;font-weight:600}.quick-pay-content{padding:1.25rem}.quick-pay-job-info{padding:.75rem 1rem;background:var(--bg-color);border-radius:var(--radius-md);margin-bottom:1rem}.quick-pay-project{font-size:.75rem;font-weight:600;color:var(--primary-color);text-transform:uppercase;letter-spacing:.05em}.quick-pay-client{font-size:1rem;font-weight:600;color:var(--text-color);margin-top:.25rem}.quick-pay-address{font-size:.875rem;color:var(--text-light)}.quick-pay-crew{margin-bottom:1rem}.quick-pay-crew label{display:block;font-size:.75rem;font-weight:500;color:var(--text-light);margin-bottom:.25rem}.quick-pay-crew .crew-name{font-size:1rem;font-weight:600;color:var(--text-color)}.quick-pay-amount-section{padding:.75rem 1rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:var(--radius-md);margin-bottom:1rem}.quick-pay-amount-section .amount-info{display:flex;justify-content:space-between;align-items:center}.quick-pay-amount-section .amount-label{font-size:.875rem;color:#92400e;font-weight:500}.quick-pay-amount-section .amount-value{font-size:1.25rem;font-weight:700;color:#92400e}.quick-pay-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.25rem}.quick-pay-form .form-group{display:flex;flex-direction:column;gap:.375rem}.quick-pay-form label{font-size:.75rem;font-weight:500;color:var(--text-light)}.quick-pay-form input,.quick-pay-form select{padding:.625rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9375rem;transition:all var(--transition-fast)}.quick-pay-form input:focus,.quick-pay-form select:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.quick-pay-actions{display:flex;gap:.75rem;justify-content:flex-end}.quick-pay-actions button{padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.quick-pay-loading{text-align:center;padding:2rem;color:var(--text-light)}.card-status-v2{margin-top:auto;padding-top:.625rem}.status-badge-v2{display:inline-block;font-size:.6875rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-weight:600;text-transform:uppercase;letter-spacing:.025em}.status-badge-v2.pending{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.status-badge-v2.confirmed{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46}.status-badge-v2.active{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af}.card-nav-arrow{position:absolute;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;border:none;background:var(--primary-color);color:#fff;font-size:16px;font-weight:700;cursor:pointer;opacity:0;transition:opacity .2s,transform .2s;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003;z-index:10}.card-nav-left{left:-12px}.card-nav-right{right:-12px}.board-card-v2:hover .card-nav-arrow{opacity:1}.card-nav-arrow:hover{transform:translateY(-50%) scale(1.15);background:var(--primary-dark, #153254)}.card-nav-left:hover{background:var(--text-secondary)}.production-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--text-secondary);gap:1rem}@media(max-width:1200px){.production-columns-v2{grid-template-columns:repeat(3,1fr)}.production-summary-bar{flex-wrap:wrap}}@media(max-width:1024px){.production-board-v2{padding:1rem}.production-header-v2{flex-direction:column;align-items:stretch;margin:-1rem -1rem 1rem;padding:1.25rem 1.5rem}.production-header-actions{flex-direction:column;align-items:stretch}.production-filters-v2{flex-direction:column}.production-filters-v2 select{width:100%}.refresh-btn-v2{justify-content:center}.production-columns-v2{grid-template-columns:repeat(2,1fr)}.board-column-v2{min-width:180px;max-height:none}}@media(max-width:768px){.production-board-v2{padding:0}.production-header-v2{margin:0 0 1rem;padding:1.25rem 1rem;border-radius:0}.production-icon-badge{width:44px;height:44px;border-radius:10px}.production-icon-badge span{font-size:1.25rem}.production-title-text h1{font-size:1.375rem}.production-subtitle{font-size:.8125rem}.production-columns-v2{grid-template-columns:1fr;gap:1rem;padding:0 1rem 1rem}.production-summary-bar{margin:0 1rem 1rem}.board-column-v2{min-width:100%;max-height:400px}}@media(max-width:480px){.production-board-v2{padding:0}.production-header-v2{padding:1rem}.production-title-section{gap:.75rem}.production-icon-badge{width:40px;height:40px}.production-title-text h1{font-size:1.125rem}.production-summary-bar{margin:0 .75rem .75rem}.board-column-v2{max-height:350px}.column-header-v2{padding:.75rem}.column-name-v2{font-size:.875rem}.board-card-v2{padding:.75rem;min-height:90px}.production-columns-v2{padding:0 .75rem .75rem}}@media(hover:none){.board-card-v2:hover{transform:none;border-color:var(--border-color)}.board-card-v2:active{background:var(--bg-hover);border-color:var(--primary-color)}.card-actions-v2{display:flex}.action-btn-v2{min-height:36px;min-width:36px;display:flex;align-items:center;justify-content:center}.action-btn-v2:hover{background:var(--bg-white);color:inherit;border-color:var(--border-color)}.action-btn-v2:active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.refresh-btn-v2:hover:not(:disabled){background:var(--bg-white);color:var(--text-color);border-color:var(--border-color)}.refresh-btn-v2:active:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.card-link-v2:active{color:var(--primary-hover)}}.schedule-page-v2{padding:1.5rem;max-width:1800px;margin:0 auto;background:#f1f5f9;min-height:100%}.schedule-header-v2{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.schedule-title-section{display:flex;align-items:center;gap:1rem}.schedule-icon-badge{width:56px;height:56px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #3b82f64d}.schedule-icon-badge span{font-size:1.75rem}.schedule-title-text h1{margin:0;font-size:1.75rem;font-weight:700;color:var(--text-color)}.schedule-subtitle{margin:.25rem 0 0;font-size:.9375rem;color:var(--text-secondary)}.schedule-header-actions{display:flex;align-items:flex-end;gap:1rem}.cycle-navigation{display:flex;align-items:center;gap:.5rem;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.375rem}.cycle-nav-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);font-size:.875rem;transition:all var(--transition-fast)}.cycle-nav-btn:hover{background:var(--bg-subtle);color:var(--text-color)}.cycle-info{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:0 .75rem;min-width:180px}.cycle-dates{font-size:.875rem;font-weight:600;color:var(--text-color);white-space:nowrap}.cycle-today-btn{padding:.125rem .5rem;font-size:.6875rem;font-weight:500;background:var(--accent-blue);color:#fff;border:none;border-radius:3px;cursor:pointer;text-transform:uppercase;letter-spacing:.025em;transition:all var(--transition-fast)}.cycle-today-btn:hover{background:var(--accent-blue-dark, #2563eb)}.schedule-filters-v2{display:flex;gap:1rem}.schedule-filters-v2 .filter-wrapper{display:flex;flex-direction:column;gap:.375rem}.schedule-filters-v2 .filter-wrapper label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.025em}.schedule-filters-v2 select{padding:.625rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;background:var(--bg-white);min-width:140px;cursor:pointer;transition:all var(--transition-fast)}.schedule-filters-v2 select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.schedule-refresh-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--bg-white);color:var(--text-color);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.schedule-refresh-btn:hover:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.schedule-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.schedule-refresh-btn .refresh-icon{font-size:1rem}.schedule-message-banner{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:var(--primary-color);padding:.75rem 1rem;border-radius:var(--radius-md);margin-bottom:1rem;font-weight:500;text-align:center;border:1px solid #93c5fd}.schedule-stats-bar{display:flex;gap:1rem;margin-bottom:1.5rem}.schedule-stat-card{background:var(--bg-white);border-radius:var(--radius-lg);padding:.875rem 1.25rem;display:flex;align-items:center;gap:.75rem;box-shadow:var(--shadow);border:1px solid var(--border-light);transition:all var(--transition-fast)}.schedule-stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.schedule-stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.schedule-stat-info{display:flex;flex-direction:column}.schedule-stat-value{font-size:1.375rem;font-weight:700;color:var(--text-color);line-height:1.2}.schedule-stat-label{font-size:.75rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.025em}.schedule-content-v2{display:grid;grid-template-columns:1fr 320px;gap:1.5rem;align-items:start}.schedule-main-v2{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;border:1px solid var(--border-light)}.schedule-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--text-secondary);gap:1rem}.projection-grid-v2{width:100%}.projection-grid-empty-v2{padding:3rem 2rem;text-align:center;color:var(--text-secondary)}.projection-grid-empty-v2 .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.projection-grid-empty-v2 p{margin:.5rem 0;font-size:1rem}.projection-grid-empty-v2 .hint{font-size:.875rem;color:var(--text-muted)}.projection-header-v2{display:grid;grid-template-columns:200px repeat(var(--num-weeks, 4),1fr);background:var(--primary-color);color:#fff;font-weight:600;position:sticky;top:0;z-index:10}.crew-column-header-v2,.week-column-header-v2{padding:1rem;text-align:center;border-right:1px solid rgba(255,255,255,.2);font-size:.875rem;text-transform:uppercase;letter-spacing:.025em}.crew-column-header-v2{text-align:left;display:flex;align-items:center;gap:.5rem}.week-column-header-v2:last-child{border-right:none}.projection-body-v2{max-height:calc(100vh - 380px);overflow-y:auto}.unscheduled-sidebar-v2{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border-light);display:flex;flex-direction:column;max-height:calc(100vh - 280px)}.sidebar-header-v2{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border-light);background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.sidebar-title{display:flex;align-items:center;gap:.5rem}.sidebar-icon{font-size:1.25rem}.sidebar-header-v2 h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-color)}.job-count-v2{background:var(--primary-color);color:#fff;font-size:.75rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-weight:700}.sidebar-description-v2{padding:.75rem 1.25rem;font-size:.8125rem;color:var(--text-muted);background:#f8fafc;border-bottom:1px solid var(--border-light)}.unscheduled-list-v2{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.625rem}.no-jobs-v2{text-align:center;padding:2rem 1rem;color:var(--text-muted)}.no-jobs-v2 .empty-icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.5}.no-jobs-v2 p{margin:.25rem 0}.no-jobs-v2 .hint{font-size:.8125rem;color:var(--text-muted);margin-top:.5rem}.unscheduled-card-v2{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.875rem;cursor:grab;transition:all var(--transition-fast);position:relative}.unscheduled-card-v2:hover{border-color:var(--primary-color);box-shadow:var(--shadow-md);transform:translateY(-2px)}.unscheduled-card-v2:active{cursor:grabbing}.unscheduled-header-v2{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.unscheduled-project-v2{font-size:.75rem;color:var(--primary-color);font-weight:700;letter-spacing:.025em}.unscheduled-phase-badge-v2{font-size:.625rem;padding:.125rem .5rem;border-radius:var(--radius-full);color:#fff;font-weight:600;text-transform:uppercase}.unscheduled-client-v2{font-weight:600;color:var(--text-color);font-size:.9375rem;margin-bottom:.25rem}.unscheduled-address-v2{font-size:.75rem;color:var(--text-muted);margin-bottom:.625rem}.unscheduled-values-v2{background:var(--bg-subtle);border-radius:var(--radius-sm);padding:.5rem .625rem;margin-bottom:.625rem}.value-row-v2{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;padding:.125rem 0}.value-row-v2 .value-label{color:var(--text-muted);font-size:.75rem}.value-row-v2 .value-amount{font-weight:600;font-family:var(--font-mono, "SF Mono", "Monaco", "Consolas", monospace)}.value-row-v2 .value-amount.scheduled{color:var(--success-color)}.value-row-v2.remaining{border-top:1px dashed var(--border-color);padding-top:.375rem;margin-top:.25rem}.value-row-v2.remaining .value-amount{color:var(--warning-color)}.unscheduled-actions-v2{display:flex;justify-content:space-between;align-items:center}.view-folder-btn-v2{background:none;border:none;font-size:.75rem;color:var(--primary-color);font-weight:600;cursor:pointer;padding:.25rem 0;transition:all var(--transition-fast)}.view-folder-btn-v2:hover{color:var(--primary-hover);text-decoration:underline}.drag-hint-v2{color:var(--text-muted);font-size:1rem;letter-spacing:-2px;opacity:.5}@media(max-width:1200px){.schedule-content-v2{grid-template-columns:1fr 280px}.schedule-stats-bar{flex-wrap:wrap}}@media(max-width:1024px){.schedule-page-v2{padding:1rem}.schedule-header-v2,.schedule-header-actions{flex-direction:column;align-items:stretch}.cycle-navigation{order:-1;justify-content:center}.schedule-filters-v2{flex-direction:column;gap:.75rem}.schedule-filters-v2 select{width:100%}.schedule-refresh-btn{justify-content:center}.schedule-content-v2{grid-template-columns:1fr}.schedule-main-v2{overflow-x:auto}.unscheduled-sidebar-v2{max-height:400px}.schedule-stat-card{flex:1;min-width:100px}}@media(max-width:768px){.schedule-icon-badge{width:48px;height:48px;border-radius:12px}.schedule-icon-badge span,.schedule-title-text h1{font-size:1.5rem}.schedule-subtitle{font-size:.875rem}.schedule-stats-bar{gap:.625rem}.schedule-stat-card{padding:.75rem}.schedule-stat-icon{width:36px;height:36px;font-size:1rem}.schedule-stat-value{font-size:1.125rem}.schedule-stat-label{font-size:.6875rem}.projection-body-v2{max-height:400px}}@media(max-width:480px){.schedule-page-v2{padding:.75rem}.schedule-title-section{gap:.75rem}.schedule-icon-badge{width:44px;height:44px}.schedule-title-text h1{font-size:1.25rem}.schedule-stats-bar{flex-direction:column}.schedule-stat-card{width:100%}.unscheduled-sidebar-v2{max-height:350px}}@media(hover:none){.schedule-stat-card:hover{transform:none}.unscheduled-card-v2:hover{transform:none;border-color:var(--border-color)}.unscheduled-card-v2:active{border-color:var(--primary-color);box-shadow:var(--shadow-md)}.schedule-refresh-btn:hover:not(:disabled){background:var(--bg-white);color:var(--text-color);border-color:var(--border-color)}.schedule-refresh-btn:active:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.view-folder-btn-v2{min-height:44px;display:flex;align-items:center}}.subcontractor-page-v2{padding:1.5rem 2rem;background:#f8fafc;min-height:100vh}.subcontractor-header-v2{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem;background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);padding:1.5rem 2rem;margin:-1.5rem -2rem 1.5rem;position:relative;overflow:hidden}.subcontractor-header-v2:before{content:"";position:absolute;top:0;right:0;width:400px;height:400px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);transform:translate(30%,-50%)}.subcontractor-title-section{display:flex;align-items:center;gap:1rem;position:relative;z-index:1}.subcontractor-icon-badge{width:52px;height:52px;background:#ffffff26;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.subcontractor-title-text h1{margin:0;font-size:1.5rem;font-weight:700;color:#fff;letter-spacing:-.02em}.subcontractor-subtitle{margin:.25rem 0 0;font-size:.875rem;color:#ffffffd9}.subcontractor-refresh-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:10px;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:relative;z-index:1}.subcontractor-refresh-btn:hover:not(:disabled){background:#ffffff40;border-color:#fff6;transform:translateY(-1px)}.subcontractor-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.subcontractor-refresh-btn .refresh-icon{font-size:1rem;transition:transform .3s ease}.subcontractor-refresh-btn:active .refresh-icon{transform:rotate(180deg)}.subcontractor-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:var(--text-secondary);gap:1rem}.subcontractor-message-banner{background:linear-gradient(135deg,#059669,#10b981);color:#fff;padding:.75rem 1.25rem;border-radius:var(--radius-sm);margin-bottom:1.5rem;font-weight:500;box-shadow:var(--shadow-sm)}.subcontractor-stats-bar{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.subcontractor-stat-card{display:flex;align-items:center;gap:1rem;background:#fff;padding:1.25rem 1.5rem;border-radius:12px;box-shadow:0 1px 3px #0000000d,0 1px 2px #00000008;border:1px solid rgba(0,0,0,.05);min-width:160px;transition:all .2s ease}.subcontractor-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000000d,0 2px 4px #00000008}.subcontractor-stat-card.warning{border-color:var(--accent-color);background:linear-gradient(135deg,#fffbeb,#fef3c7)}.subcontractor-stat-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;border-radius:10px;background:#f1f5f9}.subcontractor-stat-icon.active{background:linear-gradient(135deg,#dcfce7,#bbf7d0)}.subcontractor-stat-icon.inactive{background:linear-gradient(135deg,#fee2e2,#fecaca)}.subcontractor-stat-icon.pm{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.subcontractor-stat-icon.warning{background:linear-gradient(135deg,#fef3c7,#fde68a)}.subcontractor-stat-info{display:flex;flex-direction:column;gap:.125rem}.subcontractor-stat-value{font-size:1.5rem;font-weight:700;color:#1e293b;line-height:1.2}.subcontractor-stat-label{font-size:.75rem;font-weight:500;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.subcontractor-tabs-v2{display:flex;gap:.5rem;margin-bottom:1.5rem;background:#fff;padding:.5rem;border-radius:12px;box-shadow:0 1px 3px #0000000d,0 1px 2px #00000008;border:1px solid rgba(0,0,0,.05)}.subcontractor-tab-v2{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:transparent;border:none;color:#64748b;font-size:.875rem;font-weight:500;cursor:pointer;border-radius:8px;transition:all .2s ease}.subcontractor-tab-v2:hover{background:#f1f5f9;color:#334155}.subcontractor-tab-v2.active{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff;box-shadow:0 2px 4px #2563eb33}.subcontractor-tab-v2 .tab-icon{font-size:1rem}.subcontractor-tab-v2 .tab-count{background:#00000014;padding:.25rem .625rem;border-radius:20px;font-size:.75rem;font-weight:600}.subcontractor-tab-v2.active .tab-count{background:#fff3}.subcontractor-content-v2{background:var(--bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);overflow:hidden}.subcontractor-section-header-v2{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);position:relative}.subcontractor-section-header-v2:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(255,255,255,.15) 0%,transparent 60%);pointer-events:none}.subcontractor-section-header-v2 h3{margin:0;font-size:1.125rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1);position:relative;z-index:1}.subcontractor-add-btn-v2{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:linear-gradient(135deg,var(--accent-hover) 0%,var(--accent-color) 100%);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 4px #0000001a;position:relative;z-index:1}.subcontractor-add-btn-v2:hover{background:linear-gradient(135deg,var(--accent-color) 0%,var(--accent-hover) 100%);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.subcontractor-table-wrapper-v2,.pm-table-wrapper-v2{overflow-x:auto;-webkit-overflow-scrolling:touch}.subcontractor-table-v2,.pm-table-v2{width:100%;border-collapse:collapse;font-size:.8125rem}.subcontractor-table-v2 th,.pm-table-v2 th{background:var(--primary-color);color:#fff;padding:.875rem .5rem;text-align:left;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;position:sticky;top:0;z-index:10}.subcontractor-table-v2 td,.pm-table-v2 td{padding:.625rem .5rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.subcontractor-table-v2 tbody tr:hover,.pm-table-v2 tbody tr:hover{background:var(--bg-hover)}.subcontractor-table-v2 .inactive-row,.pm-table-v2 .inactive-row{opacity:.6;background:var(--bg-subtle)}.subcontractor-table-v2 .name-cell,.pm-table-v2 .name-cell{font-weight:600;color:var(--text-color)}.subcontractor-table-v2 .percent-cell{font-weight:600}.subcontractor-table-v2 .date-cell{white-space:nowrap}.subcontractor-table-v2 .date-cell.expired{color:var(--danger-color);font-weight:600}.subcontractor-table-v2 .date-cell.expiring{color:#f59e0b;font-weight:600}.yn-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.6875rem;font-weight:600}.yn-badge.yes{background:#dcfce7;color:#166534}.yn-badge.no{background:#fee2e2;color:#991b1b}.yn-badge.na{background:#f3f4f6;color:#6b7280}.compliance-bar{position:relative;height:24px;background:#e5e7eb;border-radius:12px;overflow:hidden;min-width:80px;max-width:120px}.compliance-bar-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(135deg,#10b981,#059669);border-radius:12px;transition:width .3s ease}.compliance-bar-text{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100%;font-size:.75rem;font-weight:600;color:#374151}.compliance-bar.complete .compliance-bar-text{color:#fff}.compliance-bar.has-expiring .compliance-bar-fill{background:linear-gradient(135deg,#f59e0b,#d97706)}.compliance-bar.has-expired .compliance-bar-fill{background:linear-gradient(135deg,#ef4444,#dc2626)}.compliance-warning{position:absolute;right:-8px;top:-8px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:700;color:#fff}.compliance-warning.expiring{background:#f59e0b}.compliance-warning.expired{background:#ef4444;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.expiration-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;white-space:nowrap}.expiration-badge.valid{background:#dcfce7;color:#166534}.expiration-badge.warning{background:#fef3c7;color:#92400e}.expiration-badge.critical{background:#fee2e2;color:#991b1b;animation:pulse 2s infinite}.expiration-badge.expired{background:#ef4444;color:#fff;font-weight:600}.expiration-badge.exempt{background:#e0e7ff;color:#4338ca}.expiration-badge.na{background:#f3f4f6;color:#9ca3af}.status-pill{display:inline-block;padding:.25rem .625rem;border-radius:9999px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.status-pill.active{background:#dcfce7;color:#166534}.status-pill.inactive{background:#f3f4f6;color:#6b7280}.subcontractor-table-v2.compact th,.subcontractor-table-v2.compact td{padding:.625rem .75rem}.subcontractor-table-v2 .name-cell{min-width:140px}.subcontractor-table-v2 .name-cell .sub-name{display:block;font-weight:600;color:#111827}.subcontractor-table-v2 .name-cell .sub-phone{display:block;font-size:.75rem;color:#6b7280}.subcontractor-table-v2 .unassigned{color:#9ca3af;font-style:italic}.subcontractor-table-v2 .compliance-cell{min-width:100px}.subcontractor-table-v2 .expiration-cell{min-width:90px}.document-slots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.document-slot{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:all .2s ease}.document-slot.has-doc{border-color:#10b981;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.document-slot.missing{border-color:#fca5a5;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.document-slot:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.document-slot .slot-icon{font-size:1.75rem}.document-slot .slot-label{font-weight:600;font-size:.875rem;color:#374151;text-align:center}.document-slot .slot-status{display:flex;align-items:center;gap:.375rem;font-size:.75rem;padding:.25rem .625rem;border-radius:9999px}.document-slot .slot-status.uploaded{background:#dcfce7;color:#166534}.document-slot .slot-status.marked{background:#dbeafe;color:#1e40af}.document-slot .slot-status.missing{background:#fee2e2;color:#991b1b}.document-slot .slot-status .status-icon{font-weight:700}.document-slot .view-link{color:#059669;text-decoration:underline;font-weight:500}.document-slot .view-link:hover{color:#047857}.document-slot .slot-upload-btn{margin-top:.5rem;padding:.375rem .875rem;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease}.document-slot .slot-upload-btn:hover{transform:scale(1.02);box-shadow:0 2px 8px #6366f14d}.document-slot .slot-upload-btn input[type=file]{display:none}.document-slot .slot-expiration{width:100%;margin-top:.5rem;display:flex;flex-direction:column;gap:.25rem}.document-slot .slot-expiration input[type=date]{width:100%;padding:.375rem;border:1px solid #d1d5db;border-radius:6px;font-size:.75rem}.document-slot .exp-indicator{font-size:.6875rem;font-weight:600;text-align:center;padding:.125rem .375rem;border-radius:4px}.document-slot .exp-indicator.valid{background:#dcfce7;color:#166534}.document-slot .exp-indicator.expiring{background:#fef3c7;color:#92400e}.document-slot .exp-indicator.expired{background:#fee2e2;color:#991b1b}.document-slot .slot-checkbox{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:#6b7280;margin-top:.5rem}.document-slot .slot-checkbox input{width:14px;height:14px}.insurance-checks{margin-top:1rem;padding:1rem;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.insurance-checks h5{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.75rem}.insurance-checks .check-row{margin-bottom:.5rem}.insurance-checks .check-row:last-child{margin-bottom:0}.status-toggle{display:flex;align-items:center;gap:.75rem}.toggle-switch{position:relative;width:44px;height:24px}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#d1d5db;transition:.3s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-slider{background:linear-gradient(135deg,#10b981,#059669)}.toggle-label{font-weight:600;font-size:.875rem}.toggle-label.active{color:#059669}.toggle-label.inactive{color:#6b7280}.section-hint{font-size:.8125rem;color:#6b7280;margin-bottom:1rem}.card-compliance-v2 .compliance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.card-compliance-v2 .compliance-score{font-weight:700;color:#374151}.card-compliance-v2 .compliance-bar{margin-bottom:.5rem;max-width:100%}.card-compliance-v2 .compliance-missing{font-size:.75rem;color:#dc2626;background:#fee2e2;padding:.375rem .625rem;border-radius:4px}.card-expirations-v2{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:#f9fafb;border-radius:8px;margin-bottom:.75rem}.card-expirations-v2 .expiration-row{display:flex;justify-content:space-between;align-items:center}.card-expirations-v2 .expiration-label{font-size:.8125rem;color:#6b7280}.actions-cell-v2{display:flex;gap:.375rem;white-space:nowrap}.action-btn-v2{padding:.375rem .625rem;border:none;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.action-btn-v2.edit{background:linear-gradient(135deg,#e0e7ff,#dbeafe);color:var(--primary-color);border:1px solid transparent}.action-btn-v2.edit:hover{background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);color:#fff;box-shadow:0 2px 4px #0000001a}.action-btn-v2.delete{background:#fee2e2;color:#dc2626}.action-btn-v2.delete:hover{background:#dc2626;color:#fff}.action-btn-v2.invite{background:#dbeafe;color:#2563eb}.action-btn-v2.invite:hover{background:#2563eb;color:#fff}.action-btn-v2.invite:disabled{opacity:.6;cursor:not-allowed}.card-action-btn.invite{background:#dbeafe;color:#2563eb}.card-action-btn.invite:hover{background:#2563eb;color:#fff}.card-action-btn.invite:disabled{opacity:.6;cursor:not-allowed}.modal-btn-v2.invite{background:#2563eb;color:#fff}.modal-btn-v2.invite:hover{background:#1d4ed8}.modal-btn-v2.invite:disabled{opacity:.6;cursor:not-allowed}.empty-cell-v2{padding:3rem 1.5rem!important;text-align:center;color:var(--text-secondary)}.empty-cell-v2 .empty-icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.5}.empty-cell-v2 p{margin:.25rem 0}.empty-cell-v2 .hint{font-size:.8125rem;color:var(--text-muted)}.subcontractor-cards-v2,.pm-cards-v2{display:none;padding:1rem;gap:1rem}.subcontractor-card-v2,.pm-card-v2{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;box-shadow:var(--shadow-sm)}.subcontractor-card-v2.inactive,.pm-card-v2.inactive{opacity:.6;background:var(--bg-subtle)}.subcontractor-card-v2 .card-header-v2,.pm-card-v2 .card-header-v2{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.card-identity .card-name{display:block;font-weight:600;font-size:1rem;color:var(--text-color)}.card-identity .card-company{display:block;font-size:.8125rem;color:var(--text-secondary);margin-top:.125rem}.card-details-v2{margin-bottom:.75rem}.card-details-v2 .detail-row{display:flex;justify-content:space-between;padding:.375rem 0;border-bottom:1px solid var(--border-color)}.card-details-v2 .detail-label{color:var(--text-secondary);font-size:.8125rem}.card-details-v2 .detail-value{font-weight:500;font-size:.8125rem}.card-compliance-v2{background:var(--bg-subtle);border-radius:var(--radius-sm);padding:.75rem;margin-bottom:.75rem}.card-compliance-v2 .compliance-title{display:block;font-size:.6875rem;text-transform:uppercase;letter-spacing:.025em;color:var(--text-secondary);margin-bottom:.5rem}.card-compliance-v2 .compliance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.card-compliance-v2 .compliance-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.card-compliance-v2 .compliance-label{font-size:.6875rem;color:var(--text-secondary)}.card-expirations-v2{display:flex;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.card-expirations-v2 .expiration-item{display:flex;gap:.25rem;font-size:.75rem;color:var(--text-secondary)}.card-expirations-v2 .expiration-item.expired{color:var(--danger-color);font-weight:600}.card-expirations-v2 .expiration-item.expiring{color:#f59e0b;font-weight:600}.card-actions-v2{display:flex;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.card-action-btn{flex:1;padding:.625rem;border:none;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);min-height:44px}.card-action-btn.edit{background:#dbeafe;color:#1d4ed8}.card-action-btn.edit:active{background:#1d4ed8;color:#fff}.card-action-btn.delete{background:#fee2e2;color:#dc2626}.card-action-btn.delete:active{background:#dc2626;color:#fff}.subcontractor-empty-v2{text-align:center;padding:3rem;color:var(--text-secondary)}.subcontractor-empty-v2 .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.subcontractor-empty-v2 .hint{font-size:.8125rem;color:var(--text-muted);margin-top:.25rem}.section-subtitle{font-size:.875rem;color:var(--text-secondary);font-weight:400;margin-left:.5rem}.template-upload-section{background:var(--bg-subtle);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.template-upload-section h4{margin:0 0 1rem;font-size:1rem;color:var(--text-color)}.template-upload-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.template-upload-form .form-group-v2{margin-bottom:1rem}.template-upload-btn{display:inline-block;background:var(--primary-color);color:#fff;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;transition:background .2s}.template-upload-btn:hover{background:var(--primary-hover)}.template-upload-btn input{display:none}.templates-list-section{margin-bottom:2rem}.templates-list-section h4{margin:0 0 1rem;font-size:1rem;color:var(--text-color)}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.template-card{display:flex;align-items:flex-start;gap:1rem;background:var(--bg-white);border:1px solid var(--border-color);border-radius:8px;padding:1rem;transition:box-shadow .2s}.template-card:hover{box-shadow:0 2px 8px #0000001a}.template-icon{font-size:2rem;opacity:.7}.template-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.template-name{font-weight:600;color:var(--text-color)}.template-type-badge{display:inline-block;font-size:.75rem;padding:.125rem .5rem;background:var(--primary-light);color:var(--primary-color);border-radius:4px;width:fit-content}.template-desc{font-size:.8125rem;color:var(--text-secondary)}.template-file{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-actions{display:flex;flex-direction:column;gap:.5rem}.template-btn{padding:.375rem .75rem;border:none;border-radius:4px;font-size:.8125rem;cursor:pointer;text-decoration:none;text-align:center;transition:background .2s}.template-btn.view{background:var(--primary-color);color:#fff}.template-btn.view:hover{background:var(--primary-hover)}.template-btn.download{background:var(--bg-hover);color:var(--text-color)}.template-btn.download:hover{background:var(--border-color)}.template-btn.delete{background:transparent;color:var(--danger-color);border:1px solid var(--danger-color)}.template-btn.delete:hover{background:var(--danger-color);color:#fff}.templates-quicklinks{background:var(--bg-subtle);border-radius:8px;padding:1.5rem}.templates-quicklinks h4{margin:0 0 1rem;font-size:1rem;color:var(--text-color)}.quicklinks-grid{display:flex;flex-wrap:wrap;gap:1rem}.quicklink-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-white);border:1px solid var(--border-color);border-radius:6px;text-decoration:none;transition:all .2s}.quicklink-card:hover{border-color:var(--primary-color);box-shadow:0 2px 4px #0000001a}.quicklink-icon{font-size:1.5rem}.quicklink-text{font-weight:500;color:var(--text-color)}.quicklink-source{font-size:.75rem;color:var(--text-muted)}@media(max-width:768px){.template-upload-form .form-row,.templates-grid{grid-template-columns:1fr}.template-card{flex-direction:column}.template-actions{flex-direction:row;width:100%}.template-btn{flex:1}}.templates-tab{padding:0!important;background:var(--bg-color)}.templates-layout{display:grid;grid-template-columns:1fr 360px;gap:1.5rem;padding:1.5rem;min-height:calc(100vh - 200px)}.templates-main{display:flex;flex-direction:column;gap:1.5rem}.templates-header{display:flex;justify-content:space-between;align-items:center}.templates-title{display:flex;align-items:center;gap:.75rem}.templates-title h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-color)}.templates-count{background:var(--bg-hover);color:var(--text-secondary);padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:500}.templates-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:var(--bg-white);border:2px dashed var(--border-color);border-radius:var(--radius-lg)}.templates-empty-state .empty-illustration{margin-bottom:1.5rem}.templates-empty-state h4{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--text-color)}.templates-empty-state p{margin:0;color:var(--text-secondary);font-size:.9375rem;max-width:320px}.templates-grid-pro{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.template-card-pro{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-base)}.template-card-pro:hover{box-shadow:var(--shadow-md);border-color:var(--primary-color)}.template-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem 1rem .75rem;background:linear-gradient(135deg,var(--bg-color) 0%,var(--bg-white) 100%)}.template-icon-pro{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;border-radius:var(--radius-md);background:var(--bg-white);box-shadow:var(--shadow-xs)}.template-icon-pro.w9{background:linear-gradient(135deg,#dbeafe,#eff6ff)}.template-icon-pro.agreement{background:linear-gradient(135deg,#f3e8ff,#faf5ff)}.template-icon-pro.certificate{background:linear-gradient(135deg,#dcfce7,#f0fdf4)}.template-delete-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);opacity:0}.template-card-pro:hover .template-delete-btn{opacity:1}.template-delete-btn:hover{background:var(--danger-light);color:var(--danger-color)}.template-card-body{padding:0 1rem .75rem}.template-name-pro{margin:0 0 .5rem;font-size:.9375rem;font-weight:600;color:var(--text-color);line-height:1.3}.template-type-pill{display:inline-block;padding:.125rem .5rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.template-type-pill.w9{background:#dbeafe;color:#1e40af}.template-type-pill.agreement{background:#f3e8ff;color:#7c3aed}.template-type-pill.certificate{background:#dcfce7;color:#15803d}.template-type-pill.other{background:var(--bg-hover);color:var(--text-secondary)}.template-desc-pro{margin:.5rem 0 0;font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.template-card-footer{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-top:1px solid var(--border-light);background:var(--bg-color)}.template-file-info{display:flex;align-items:center;gap:.375rem;min-width:0;flex:1}.template-file-info .file-icon{flex-shrink:0;color:var(--text-muted)}.template-file-info .file-name{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-view-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.template-view-btn:hover{background:var(--primary-hover)}.templates-sidebar{display:flex;flex-direction:column;gap:1.25rem}.upload-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.upload-card-header svg{flex-shrink:0}.upload-card-header h4{margin:0;font-size:.9375rem;font-weight:600}.upload-form{padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.upload-field{display:flex;flex-direction:column;gap:.375rem}.upload-field label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.upload-field label .optional{font-weight:400;color:var(--text-muted)}.upload-field input,.upload-field select{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.upload-field input:focus,.upload-field select:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.upload-field input::placeholder{color:var(--text-muted)}.upload-dropzone{display:block;cursor:pointer;border:2px dashed var(--border-color);border-radius:var(--radius-md);padding:1.5rem;text-align:center;transition:all var(--transition-fast);background:var(--bg-color)}.upload-dropzone:hover:not(.disabled){border-color:var(--primary-color);background:var(--primary-subtle)}.upload-dropzone.disabled{opacity:.5;cursor:not-allowed}.upload-dropzone input{display:none}.dropzone-content{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-secondary)}.dropzone-content svg{color:var(--text-muted)}.dropzone-content span{font-size:.875rem}.dropzone-content .file-types{font-size:.75rem;color:var(--text-muted)}.upload-spinner{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.resources-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem}.resources-card h4{margin:0 0 .25rem;font-size:.9375rem;font-weight:600;color:var(--text-color)}.resources-desc{margin:0 0 1rem;font-size:.8125rem;color:var(--text-secondary)}.resource-links{display:flex;flex-direction:column;gap:.75rem}.resource-link{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-color);border:1px solid var(--border-light);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-fast)}.resource-link:hover{border-color:var(--primary-color);box-shadow:var(--shadow-xs)}.resource-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);flex-shrink:0}.resource-icon.irs{background:#fef2f2;color:#dc2626}.resource-icon.acord{background:#dbeafe;color:#2563eb}.resource-info{flex:1;min-width:0}.resource-name{display:block;font-size:.875rem;font-weight:500;color:var(--text-color)}.resource-source{display:block;font-size:.75rem;color:var(--text-muted)}.resource-link .external-icon{flex-shrink:0;color:var(--text-muted);transition:color var(--transition-fast)}.resource-link:hover .external-icon{color:var(--primary-color)}@media(max-width:1024px){.templates-layout{grid-template-columns:1fr;gap:1.25rem}.templates-sidebar{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}}@media(max-width:640px){.templates-layout{padding:1rem}.templates-grid-pro,.templates-sidebar{grid-template-columns:1fr}.template-card-header{padding:.75rem .75rem .5rem}.template-card-body{padding:0 .75rem .5rem}.template-card-footer{padding:.5rem .75rem;flex-direction:column;gap:.5rem}.template-view-btn{width:100%;justify-content:center}}.resources-page{min-height:100vh;background:var(--bg-color)}.resources-header{background:linear-gradient(135deg,#1e293b,#334155);padding:2rem 2rem 1.5rem;color:#fff}.resources-header-content h1{margin:0 0 .25rem;font-size:1.75rem;font-weight:700}.resources-header-content p{margin:0;opacity:.8;font-size:.9375rem}.resources-tabs{display:flex;gap:.5rem;padding:0 2rem;background:#1e293b}.resources-tab{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:transparent;border:none;color:#ffffffb3;font-size:.9375rem;font-weight:500;cursor:pointer;border-bottom:3px solid transparent;transition:all var(--transition-fast)}.resources-tab:hover{color:#fff;background:#ffffff0d}.resources-tab.active{color:#fff;border-bottom-color:var(--accent-color);background:#ffffff1a}.resources-tab .tab-icon{font-size:1.125rem}.resources-content{padding:1.5rem 2rem}.resources-layout{display:grid;grid-template-columns:1fr 360px;gap:1.5rem;max-width:1400px}.resources-main{display:flex;flex-direction:column;gap:1.5rem}.resources-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.section-title{display:flex;align-items:flex-start;gap:.75rem}.section-icon{font-size:1.5rem;margin-top:.125rem}.section-title h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-color)}.section-title p{margin:.25rem 0 0;font-size:.875rem;color:var(--text-secondary)}.resources-count{background:var(--bg-hover);color:var(--text-secondary);padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;white-space:nowrap}.resources-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem;color:var(--text-secondary)}.resources-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:var(--bg-white);border:2px dashed var(--border-color);border-radius:var(--radius-lg)}.resources-empty .empty-illustration{margin-bottom:1.5rem}.resources-empty h3{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--text-color)}.resources-empty p{margin:0;color:var(--text-secondary);font-size:.9375rem;max-width:320px}.resources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.resource-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-base)}.resource-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-color)}.resource-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem 1rem .75rem;background:linear-gradient(135deg,var(--bg-color) 0%,var(--bg-white) 100%)}.resource-icon-wrapper{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;background:var(--bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.resource-delete-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);opacity:0}.resource-card:hover .resource-delete-btn{opacity:1}.resource-delete-btn:hover{background:var(--danger-light);color:var(--danger-color)}.resource-card-body{padding:0 1rem .75rem}.resource-name{margin:0 0 .375rem;font-size:.9375rem;font-weight:600;color:var(--text-color);line-height:1.3}.resource-desc{margin:0;font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.resource-card-footer{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-top:1px solid var(--border-light);background:var(--bg-color)}.resource-file-info{display:flex;align-items:center;gap:.375rem;min-width:0;flex:1}.resource-file-info .file-icon{flex-shrink:0;color:var(--text-muted)}.resource-file-info .file-name{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-view-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.resource-view-btn:hover{background:var(--primary-hover)}.resources-sidebar{display:flex;flex-direction:column;gap:1.25rem}.category-display{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;color:var(--text-secondary)}.category-display .category-icon{font-size:1rem}.resources-tips-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem}.resources-tips-card h4{margin:0 0 .75rem;font-size:.9375rem;font-weight:600;color:var(--text-color)}.tips-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.tips-list li{font-size:.8125rem;color:var(--text-secondary);padding:.375rem 0;border-bottom:1px solid var(--border-light)}.tips-list li:last-child{border-bottom:none}.section-actions{display:flex;gap:.5rem}.btn-create-doc{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn-create-doc:hover{background:var(--primary-hover)}.btn-create-doc.large{margin-top:1rem;padding:.75rem 1.5rem}.resource-card .resource-type-badge{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;padding:.125rem .5rem;border-radius:var(--radius-full);background:var(--bg-hover);color:var(--text-secondary)}.resource-card.richtext .resource-type-badge{background:#dbeafe;color:#1e40af}.resource-actions{display:flex;gap:.375rem;width:100%}.resource-btn{padding:.375rem .75rem;border:none;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.resource-btn.view{flex:1;background:var(--primary-color);color:#fff}.resource-btn.view:hover{background:var(--primary-hover)}.resource-btn.edit{background:var(--bg-hover);color:var(--text-secondary)}.resource-btn.edit:hover{background:var(--border-color)}.resource-btn.delete{width:32px;padding:.375rem;background:transparent;color:var(--text-muted);display:flex;align-items:center;justify-content:center}.resource-btn.delete:hover{background:var(--danger-light);color:var(--danger-color)}.upload-card-header{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff}.upload-card-header .chevron{margin-left:auto;transition:transform var(--transition-fast)}.upload-card-header .chevron.open{transform:rotate(180deg)}.upload-hint{font-size:.8125rem;color:var(--text-secondary);margin-bottom:.75rem}.resource-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.resource-modal{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.resource-modal.editor-modal{width:100%;max-width:900px;height:85vh}.resource-modal.view-modal{width:100%;max-width:800px;height:85vh}.resource-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);background:var(--bg-color);flex-shrink:0}.resource-modal .modal-header h2{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-color)}.modal-title-group{flex:1;min-width:0}.modal-subtitle{margin:.25rem 0 0;font-size:.8125rem;color:var(--text-secondary)}.modal-actions{display:flex;align-items:center;gap:.5rem}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);font-size:1.5rem;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);line-height:1}.modal-close:hover{background:var(--bg-hover);color:var(--text-color)}.resource-modal .modal-body{flex:1;padding:1.5rem;overflow-y:auto}.resource-modal .modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color);background:var(--bg-color);flex-shrink:0}.editor-fields{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-bottom:1.25rem}.editor-field{display:flex;flex-direction:column;gap:.375rem}.editor-field label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.editor-field input{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.9375rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.editor-field input:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus)}.editor-wrapper{display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:0}.editor-wrapper>label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.editor-hint{font-size:.8125rem;color:var(--text-muted);margin:0}.resources-editor{flex:1;display:flex;flex-direction:column;min-height:300px;border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.resources-editor .editor-toolbar{border-bottom:1px solid var(--border-color);padding:.5rem;background:var(--bg-color);flex-shrink:0}.resources-editor .editor-content{flex:1;overflow-y:auto;padding:1rem}.resources-editor .editor-content .ProseMirror{min-height:100%;outline:none}.resources-editor .editor-content .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--text-muted);pointer-events:none;height:0}.btn-cancel{padding:.5rem 1rem;background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-cancel:hover{background:var(--border-color)}.btn-save{padding:.5rem 1.25rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn-save:hover:not(:disabled){background:var(--primary-hover)}.btn-save:disabled{opacity:.6;cursor:not-allowed}.btn-print{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-print:hover{background:var(--border-color)}.btn-edit{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-edit:hover{background:var(--border-color)}.view-body{background:var(--bg-white)}.document-content{max-width:700px;margin:0 auto;padding:1.5rem;font-size:.9375rem;line-height:1.7;color:var(--text-color)}.document-content h1,.document-content h2,.document-content h3,.document-content h4,.document-content h5,.document-content h6{margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.3;color:var(--text-color)}.document-content h1{font-size:1.75em}.document-content h2{font-size:1.5em}.document-content h3{font-size:1.25em}.document-content h4{font-size:1.125em}.document-content h1:first-child,.document-content h2:first-child,.document-content h3:first-child{margin-top:0}.document-content p{margin-bottom:1em}.document-content ul,.document-content ol{margin-left:1.5em;margin-bottom:1em}.document-content li{margin-bottom:.25em}.document-content strong{font-weight:600}.document-content a{color:var(--primary-color);text-decoration:underline}.document-content a:hover{color:var(--primary-hover)}@media(max-width:1024px){.resources-layout{grid-template-columns:1fr;gap:1.25rem}.resources-sidebar{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}}@media(max-width:768px){.resources-header{padding:1.5rem 1rem 1rem}.resources-header-content h1{font-size:1.5rem}.resources-tabs{padding:0 1rem}.resources-tab{padding:.75rem 1rem;font-size:.875rem}.resources-content{padding:1rem}.resources-section-header{flex-direction:column;gap:.5rem}}@media(max-width:640px){.resources-grid,.resources-sidebar{grid-template-columns:1fr}.resource-card-footer{flex-direction:column;gap:.5rem}.resource-view-btn{width:100%;justify-content:center}}.payments-stats-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1.25rem;background:var(--bg-subtle);border-bottom:1px solid var(--border-color)}.payments-stat-card{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--bg-white);border-radius:var(--radius-md);border:1px solid var(--border-color)}.payments-stat-card.unpaid{border-left:3px solid var(--warning-color)}.payments-stat-card.paid{border-left:3px solid var(--success-color)}.payments-stat-card.highlight{border-left:3px solid var(--primary-color);background:var(--primary-subtle)}.payments-stat-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:1.125rem;background:var(--bg-color)}.payments-stat-icon.unpaid{background:var(--warning-light)}.payments-stat-icon.paid{background:var(--success-light)}.payments-stat-icon.balance{background:var(--primary-light)}.payments-stat-info{display:flex;flex-direction:column}.payments-stat-value{font-size:1.25rem;font-weight:700;color:var(--text-color)}.payments-stat-label{font-size:.75rem;color:var(--text-light);text-transform:uppercase;letter-spacing:.025em}.payments-filters{display:flex;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-white);align-items:flex-end}.payments-filters .filter-group{display:flex;flex-direction:column;gap:.375rem}.payments-filters label{font-size:.75rem;font-weight:500;color:var(--text-light)}.payments-filters select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;min-width:150px}.payments-refresh-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;cursor:pointer;transition:all var(--transition-fast);margin-left:auto}.payments-refresh-btn:hover{background:var(--bg-hover)}.payments-table-wrapper{overflow-x:auto}.payments-table{width:100%;border-collapse:collapse;font-size:.875rem}.payments-table th{background:var(--primary-color);color:#fff;padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;white-space:nowrap}.payments-table th.text-right{text-align:right}.payments-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.payments-table td.text-right{text-align:right}.payments-table tbody tr:hover{background:var(--bg-hover)}.payments-table .paid-row{opacity:.7;background:var(--bg-subtle)}.payments-table .project-cell{font-weight:600;color:var(--primary-color);font-size:.75rem;text-transform:uppercase}.payments-table .client-info{display:flex;flex-direction:column}.payments-table .client-name{font-weight:500}.payments-table .client-address{font-size:.75rem;color:var(--text-light)}.payments-table .phase-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;text-transform:uppercase;background:var(--bg-color);color:var(--text-secondary)}.payments-table .phase-badge.complete{background:var(--success-light);color:var(--success-color)}.payments-table .phase-badge.in_progress{background:var(--primary-light);color:var(--primary-color)}.payments-table .balance-cell .unpaid{color:var(--danger-color);font-weight:600}.payments-table .balance-cell .paid{color:var(--success-color);font-weight:600}.payments-table .status-badge{display:inline-block;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase}.payments-table .status-badge.unpaid{background:var(--warning-light);color:var(--warning-color)}.payments-table .status-badge.paid{background:var(--success-light);color:var(--success-color)}.payments-table .actions-cell{text-align:center}.payments-table .pay-btn{padding:.375rem .75rem;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.payments-table .pay-btn:hover{background:linear-gradient(135deg,#15803d,#166534);transform:translateY(-1px)}@media(max-width:768px){.payments-stats-bar{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:1rem}.payments-filters{flex-wrap:wrap}.payments-filters .filter-group{flex:1;min-width:120px}.payments-table{font-size:.8125rem}.payments-table th,.payments-table td{padding:.5rem .625rem}}.subcontractor-modal-overlay-v2{position:fixed;inset:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.subcontractor-modal-v2{background:var(--bg-white);border-radius:16px;box-shadow:0 0 0 1px #0000000d,0 25px 50px -12px #00000040;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out}.subcontractor-modal-v2.pm-modal{max-width:500px}.subcontractor-modal-v2.schedule-modal-v2{max-width:480px}.schedule-job-banner{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:#fff;border:1px solid var(--border-color);border-radius:8px;margin-bottom:1.25rem}.job-banner-left{display:flex;align-items:center;gap:.625rem}.job-banner-client{font-weight:600;color:var(--text-color)}.job-banner-project{font-size:.75rem;color:var(--text-muted);background:var(--bg-secondary);padding:.125rem .5rem;border-radius:4px}.job-banner-right{text-align:right}.job-banner-remaining{display:block;font-size:1.125rem;font-weight:700;color:var(--text-color)}.job-banner-label{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase}.modal-error-v2{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:.625rem .875rem;border-radius:6px;margin-bottom:1rem;font-size:.8125rem}.schedule-capacity-row{display:flex;gap:.5rem;margin:.75rem 0 1rem}.schedule-capacity-row .capacity-item{flex:1;text-align:center;padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px}.schedule-capacity-row .capacity-num{display:block;font-weight:600;font-size:.9375rem;color:var(--text-color)}.schedule-capacity-row .capacity-lbl{font-size:.625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}.schedule-capacity-row .capacity-item.ok .capacity-num{color:var(--success-color)}.schedule-capacity-row .capacity-item.over .capacity-num{color:var(--danger-color)}.field-hint{display:block;margin-top:.375rem;font-size:.75rem;color:var(--text-muted)}.field-hint.warning{color:var(--warning-color)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header-v2{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);border-radius:var(--radius-lg) var(--radius-lg) 0 0;color:#fff;position:relative;overflow:hidden}.modal-header-v2:before{content:"";position:absolute;top:0;right:0;width:200px;height:200px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);transform:translate(30%,-50%)}.modal-title-section{display:flex;align-items:center;gap:.75rem;position:relative;z-index:1}.modal-title-section .modal-icon{font-size:1.5rem}.modal-title-section h3{margin:0;font-size:1.125rem;font-weight:600;color:#fff}.modal-close-v2{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:8px;font-size:1.25rem;color:#fff;cursor:pointer;transition:all .2s ease;position:relative;z-index:1}.modal-close-v2:hover{background:#fff3;transform:scale(1.05)}.modal-body-v2{padding:1.5rem;overflow-y:auto;flex:1;background:#f8fafc}.form-section-v2{margin-bottom:1.5rem}.form-section-v2:last-child{margin-bottom:0}.form-section-title{font-size:.875rem;font-weight:600;color:var(--text-color);margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.form-grid-v2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.form-group-v2{display:flex;flex-direction:column;gap:.375rem}.form-group-v2.full-width{grid-column:1 / -1}.form-group-v2 label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.form-group-v2 input,.form-group-v2 select,.form-group-v2 textarea{padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:10px;font-size:.9375rem;background:#fff;transition:all .2s ease}.form-group-v2 input:hover,.form-group-v2 select:hover,.form-group-v2 textarea:hover{border-color:#cbd5e1}.form-group-v2 input:focus,.form-group-v2 select:focus,.form-group-v2 textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.form-group-v2 input::placeholder,.form-group-v2 textarea::placeholder{color:var(--text-muted)}.checkbox-grid-v2{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem}.checkbox-item-v2{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.75rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px;transition:all .2s ease}.checkbox-item-v2:hover{background:#f8fafc;border-color:#cbd5e1}.checkbox-item-v2 input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary-color);cursor:pointer}.checkbox-item-v2 .checkbox-label{font-size:.9375rem;color:#334155;font-weight:500}.mt-3{margin-top:1rem}.documents-section-v2{border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:1rem;background:var(--bg-subtle)}.document-upload-row-v2{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.document-upload-row-v2 select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;background:var(--bg-white)}.file-upload-btn-v2{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;background:var(--primary-color);color:#fff;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.file-upload-btn-v2:hover{background:var(--primary-dark)}.file-upload-btn-v2 input[type=file]{display:none}.documents-list-v2{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.document-item-v2{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.doc-type-badge{padding:.25rem .5rem;background:#dbeafe;color:#1d4ed8;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;text-transform:uppercase}.doc-link{flex:1;color:var(--primary-color);text-decoration:none;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-link:hover{text-decoration:underline}.doc-delete-btn{padding:.375rem .625rem;background:#fee2e2;color:#dc2626;border:none;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.doc-delete-btn:hover{background:#dc2626;color:#fff}.modal-footer-v2{display:flex;justify-content:flex-end;gap:.75rem;padding:1.25rem 1.5rem;border-top:1px solid #e2e8f0;background:#fff;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.modal-btn-v2{padding:.75rem 1.5rem;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:44px}.modal-btn-v2.cancel{background:#f1f5f9;border:1px solid #e2e8f0;color:#475569}.modal-btn-v2.cancel:hover{background:#e2e8f0;border-color:#cbd5e1}.modal-btn-v2.save{background:linear-gradient(135deg,var(--accent-color) 0%,var(--accent-hover) 100%);border:none;color:#fff;box-shadow:0 2px 4px #f59e0b4d}.modal-btn-v2.save:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-hover) 0%,#b45309 100%);transform:translateY(-1px);box-shadow:0 4px 8px #f59e0b66}.modal-btn-v2.save:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}@media(max-width:1200px){.subcontractor-page-v2{padding:1rem 1.5rem}.subcontractor-table-v2 th,.subcontractor-table-v2 td{padding:.5rem .375rem;font-size:.75rem}.form-grid-v2{grid-template-columns:repeat(2,1fr)}}@media(max-width:1024px){.subcontractor-stats-bar{gap:.75rem}.subcontractor-stat-card{padding:.75rem 1rem;min-width:130px}.subcontractor-table-wrapper-v2{display:none}.subcontractor-cards-v2{display:flex;flex-direction:column}.pm-table-wrapper-v2{display:none}.pm-cards-v2{display:flex;flex-direction:column}.subcontractor-modal-v2{max-width:100%;max-height:95vh}.form-grid-v2{grid-template-columns:1fr}}@media(max-width:768px){.subcontractor-page-v2{padding:1rem}.subcontractor-header-v2{flex-direction:column;align-items:flex-start;gap:1rem}.subcontractor-title-section{flex-wrap:wrap}.subcontractor-icon-badge{width:40px;height:40px;font-size:1.25rem}.subcontractor-title-text h1{font-size:1.25rem}.subcontractor-refresh-btn{width:100%;justify-content:center}.subcontractor-stats-bar{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.subcontractor-stat-card{min-width:auto}.subcontractor-tabs-v2{flex-direction:column}.subcontractor-tab-v2{justify-content:center}.subcontractor-section-header-v2{flex-direction:column;gap:.75rem;align-items:stretch}.subcontractor-add-btn-v2{justify-content:center;padding:.75rem}.modal-body-v2{padding:1rem}.checkbox-grid-v2{flex-direction:column;gap:.5rem}.checkbox-item-v2{min-height:44px}.modal-footer-v2{flex-direction:column-reverse;padding:1rem}.modal-btn-v2{width:100%;justify-content:center}}@media(max-width:480px){.subcontractor-page-v2{padding:.75rem}.subcontractor-icon-badge{width:36px;height:36px;font-size:1.125rem}.subcontractor-title-text h1{font-size:1.125rem}.subcontractor-subtitle{font-size:.75rem}.subcontractor-stat-card{padding:.625rem .75rem}.subcontractor-stat-value{font-size:1.125rem}.subcontractor-card-v2,.pm-card-v2{padding:.75rem}.card-compliance-v2 .compliance-grid{grid-template-columns:repeat(2,1fr)}.document-upload-row-v2{flex-direction:column;align-items:stretch}.document-upload-row-v2 select{width:100%}.file-upload-btn-v2{width:100%;padding:.75rem;min-height:44px}}@media(hover:none){.subcontractor-stat-card:hover{transform:none}.subcontractor-tab-v2:hover{background:transparent;color:var(--text-secondary)}.subcontractor-tab-v2:active{background:var(--bg-hover)}.action-btn-v2:hover{background:inherit;color:inherit}.action-btn-v2.edit:active{background:#1d4ed8;color:#fff}.action-btn-v2.delete:active{background:#dc2626;color:#fff}.subcontractor-refresh-btn:hover:not(:disabled){background:var(--bg-white);color:var(--text-color);border-color:var(--border-color)}.subcontractor-refresh-btn:active:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.subcontractor-add-btn-v2:hover{background:var(--primary-color);transform:none}.subcontractor-add-btn-v2:active{background:var(--primary-dark)}.modal-btn-v2.cancel:hover{background:var(--bg-white);border-color:var(--border-color)}.modal-btn-v2.cancel:active{background:var(--bg-hover)}.modal-btn-v2.save:hover:not(:disabled){background:var(--primary-color)}.modal-btn-v2.save:active:not(:disabled){background:var(--primary-dark)}}.admin-page{padding:1.5rem}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-header h2{margin:0;font-size:1.5rem;font-weight:600}.admin-year-selector{font-size:.875rem;color:var(--text-secondary);background:var(--bg-subtle);padding:.5rem 1rem;border-radius:var(--radius-sm)}.admin-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.admin-tab{padding:.5rem 1rem;background:none;border:none;color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.admin-tab:hover{background:var(--bg-hover);color:var(--text-color)}.admin-tab.active{background:var(--primary-subtle);color:var(--primary-color)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.dashboard-card{background:var(--bg-white);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow)}.dashboard-card h3{margin:0 0 .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.card-value{font-size:1.75rem;font-weight:700;color:var(--text-color);margin-bottom:.25rem}.card-detail{font-size:.8125rem;color:var(--text-secondary)}.goals-card .progress-bar{height:8px;background:var(--bg-subtle);border-radius:4px;overflow:hidden;margin-top:.75rem}.goals-card .progress-fill{height:100%;background:var(--primary-color);border-radius:4px;transition:width .3s ease}.admin-roadmap{display:flex;flex-direction:column;gap:1.5rem}.roadmap-section{background:var(--bg-white);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow)}.roadmap-section-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--primary-color);padding-bottom:.5rem;border-bottom:2px solid var(--primary-subtle)}.roadmap-goals{display:flex;flex-direction:column;gap:.5rem}.roadmap-goal{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.roadmap-goal:hover{background:var(--bg-hover)}.goal-checkbox input{width:18px;height:18px;cursor:pointer}.goal-content{flex:1}.goal-text{font-size:.875rem}.goal-text.completed{text-decoration:line-through;color:var(--text-secondary)}.goal-status select{padding:.25rem .5rem;font-size:.75rem;border-radius:var(--radius-sm);border:2px solid var(--border-color);background:var(--bg-white);cursor:pointer}.admin-marketing h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600}.marketing-table-container{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.marketing-table{width:100%;border-collapse:collapse}.marketing-table th{background:var(--primary-color);color:#fff;padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase}.marketing-table td{padding:.625rem 1rem;border-bottom:1px solid var(--border-light);font-size:.8125rem}.marketing-table .source-name{font-weight:500}.marketing-table .source-category{color:var(--text-secondary);font-size:.75rem}.marketing-table .high-com{color:var(--error-color);font-weight:600}.marketing-table tfoot .totals-row td{font-weight:600;background:var(--bg-subtle);border-top:2px solid var(--primary-color)}.admin-controls{display:flex;align-items:center;gap:1rem}.admin-controls select{padding:.375rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:.875rem;background:var(--bg-white)}.admin-tracking h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600}.tracking-summary{display:flex;gap:2rem;margin-bottom:1rem;padding:1rem;background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.summary-item{display:flex;flex-direction:column;gap:.25rem}.summary-item span{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.summary-item strong{font-size:1rem;color:var(--text-primary)}.summary-item strong.positive{color:var(--success-color)}.summary-item strong.negative{color:var(--error-color)}.sales-plan-settings{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1rem 1.5rem;margin-bottom:1rem}.sales-plan-settings .settings-row{display:flex;gap:2rem;margin-bottom:.75rem}.sales-plan-settings .settings-row:last-child{margin-bottom:0}.sales-plan-settings .setting-item{flex:1;max-width:250px}.sales-plan-settings .setting-item label{display:block;font-size:.75rem;font-weight:600;color:var(--text-secondary);margin-bottom:.25rem}.sales-plan-settings .input-with-prefix,.sales-plan-settings .input-with-suffix{display:flex;align-items:center;border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden;background:#fff}.sales-plan-settings .input-with-prefix:focus-within,.sales-plan-settings .input-with-suffix:focus-within{border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-light)}.sales-plan-settings .prefix,.sales-plan-settings .suffix{padding:.375rem .5rem;background:var(--bg-subtle);color:var(--text-secondary);font-size:.8125rem;font-weight:500}.sales-plan-settings .input-with-prefix input,.sales-plan-settings .input-with-suffix input{flex:1;border:none;padding:.375rem .5rem;font-size:.875rem;outline:none;width:100%;min-width:0}.sales-plan-settings .input-with-prefix input::-webkit-outer-spin-button,.sales-plan-settings .input-with-prefix input::-webkit-inner-spin-button,.sales-plan-settings .input-with-suffix input::-webkit-outer-spin-button,.sales-plan-settings .input-with-suffix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.sales-plan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.sales-plan-header h3{margin:0}.sales-plan-actions{display:flex;align-items:center;gap:1rem}.comparison-toggle{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer}.comparison-toggle input{cursor:pointer}.export-btn{padding:.5rem 1rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.export-btn:hover{background:var(--primary-hover)}.yoy-comparison{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1rem 1.5rem;margin-bottom:1rem}.yoy-comparison h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-primary)}.comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.comparison-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:var(--bg-subtle);border-radius:var(--radius)}.comparison-item .label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.comparison-item .current{font-size:.875rem;color:var(--text-primary)}.comparison-item .previous{font-size:.8125rem;color:var(--text-secondary)}.comparison-item .change{font-size:.875rem;font-weight:600}.comparison-item .change.positive{color:var(--success-color)}.comparison-item .change.negative{color:var(--error-color)}.tracking-table-container{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);max-height:600px;overflow:auto}.tracking-table{width:100%;border-collapse:collapse}.tracking-table th{background:var(--primary-color);color:#fff;padding:.5rem .75rem;text-align:center;font-size:.75rem;font-weight:600;position:sticky;top:0;z-index:1}.tracking-table th:first-child{text-align:left}.tracking-table thead tr:nth-child(2) th{background:var(--primary-hover);font-size:.6875rem;padding:.375rem .5rem;top:28px}.tracking-table thead tr:nth-child(3) th{background:var(--primary-hover);font-size:.6875rem;padding:.375rem .5rem;top:50px}.tracking-table td{padding:.375rem .5rem;border-bottom:1px solid var(--border-light);font-size:.8125rem;text-align:center}.tracking-table td:first-child{text-align:left;white-space:nowrap;font-weight:500}.tracking-table td.positive{color:var(--success-color)}.tracking-table td.negative{color:var(--error-color)}.tracking-table input[type=number]{width:70px;padding:.25rem .375rem;border:1px solid var(--border-light);border-radius:var(--radius);font-size:.75rem;text-align:right}.tracking-table input[type=number]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-light)}.sales-plan-table{max-height:700px}.sales-plan-table .tracking-table{min-width:1600px}.sales-plan-table .tracking-table th{font-size:.625rem;padding:.375rem .25rem;white-space:nowrap}.sales-plan-table .tracking-table thead tr:nth-child(1) th{top:0;z-index:2}.sales-plan-table .tracking-table thead tr:nth-child(2) th{top:22px;z-index:2}.sales-plan-table .tracking-table thead tr:nth-child(3) th{top:42px;z-index:2}.sales-plan-table .col-week{background:#2c3e50!important;border-right:2px solid #1a252f}.sales-plan-table .group-leads{background:#2980b9!important;border-right:2px solid #1a5276}.sales-plan-table .group-estimates{background:#27ae60!important;border-right:2px solid #1e8449}.sales-plan-table .group-jobs{background:#8e44ad!important;border-right:2px solid #6c3483}.sales-plan-table .group-booked{background:#d35400!important;border-right:2px solid #a04000}.sales-plan-table .group-pct-weekly{background:#16a085!important;border-right:2px solid #0e6655}.sales-plan-table .group-pct-ye{background:#c0392b!important;border-right:2px solid #922b21}.sales-plan-table .group-sr{background:#7f8c8d!important}.sales-plan-table thead tr:nth-child(2) .group-leads,.sales-plan-table thead tr:nth-child(3) .group-leads{background:#2471a3!important}.sales-plan-table thead tr:nth-child(2) .group-estimates,.sales-plan-table thead tr:nth-child(3) .group-estimates{background:#229954!important}.sales-plan-table thead tr:nth-child(2) .group-jobs,.sales-plan-table thead tr:nth-child(3) .group-jobs{background:#7d3c98!important}.sales-plan-table thead tr:nth-child(2) .group-booked,.sales-plan-table thead tr:nth-child(3) .group-booked{background:#ba4a00!important}.sales-plan-table thead tr:nth-child(2) .group-pct-weekly,.sales-plan-table thead tr:nth-child(3) .group-pct-weekly{background:#138d75!important}.sales-plan-table thead tr:nth-child(2) .group-pct-ye,.sales-plan-table thead tr:nth-child(3) .group-pct-ye{background:#a93226!important}.sales-plan-table thead tr:nth-child(2) .group-sr,.sales-plan-table thead tr:nth-child(3) .group-sr{background:#707b7c!important}.sales-plan-table .tracking-table td{font-size:.6875rem;padding:.25rem;text-align:center}.sales-plan-table .group-end{border-right:2px solid #dee2e6}.sales-plan-table td.col-leads{background-color:#ebf5fb}.sales-plan-table td.col-estimates{background-color:#eafaf1}.sales-plan-table td.col-jobs{background-color:#f5eef8}.sales-plan-table td.col-booked{background-color:#fdf2e9}.sales-plan-table td.col-pct-weekly{background-color:#e8f8f5}.sales-plan-table td.col-pct-ye{background-color:#fdedec}.sales-plan-table td.col-sr{background-color:#f4f6f6}.sales-plan-table td.calc-col.col-leads{background-color:#d4e6f1}.sales-plan-table td.calc-col.col-estimates{background-color:#d5f5e3}.sales-plan-table td.calc-col.col-jobs{background-color:#e8daef}.sales-plan-table td.calc-col.col-booked{background-color:#fae5d3}.sales-plan-table td.calc-col.col-pct-weekly{background-color:#d1f2eb}.sales-plan-table td.calc-col.col-pct-ye{background-color:#fadbd8}.sales-plan-table td.calc-col.col-sr{background-color:#e5e8e8}.sales-plan-table .week-col{text-align:left;white-space:nowrap;font-weight:500;position:sticky;left:0;background:#fff;z-index:1;border-right:2px solid #dee2e6}.sales-plan-table .calc-col{color:var(--text-secondary)}.sales-plan-table .pct-input{display:flex;align-items:center;justify-content:center;gap:2px;white-space:nowrap}.sales-plan-table .pct-input input{width:40px;text-align:right;flex-shrink:0}.sales-plan-table .pct-input-wrap{display:inline-flex;align-items:center;justify-content:center;gap:2px;white-space:nowrap}.sales-plan-table .pct-input-wrap input{width:45px;text-align:right}.sales-plan-table .tracking-table input[type=number]{width:55px;padding:.2rem .25rem;font-size:.6875rem}.sales-plan-table tbody tr:hover td{filter:brightness(.92)}.sales-plan-table .quarter-edit{background-color:#fff3cd!important;white-space:nowrap;min-width:60px}.sales-plan-table .quarter-edit input{background-color:#fff;border:1px solid #ffc107;width:45px}.sales-plan-table tbody tr:hover .week-col{background-color:#e3f2fd!important}.admin-overhead h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600}.overhead-table-container{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:auto;max-height:700px}.overhead-table{width:100%;border-collapse:collapse;min-width:1000px}.overhead-table th{background:var(--primary-color);color:#fff;padding:.5rem;text-align:center;font-size:.6875rem;font-weight:600;position:sticky;top:0;z-index:2}.overhead-table th.category-col{text-align:left;min-width:180px}.overhead-table .group-row td{background:var(--bg-subtle);padding:.5rem;font-weight:600;font-size:.8125rem;color:var(--primary-color);border-bottom:2px solid var(--primary-color)}.overhead-table .group-header{text-transform:uppercase;letter-spacing:.5px}.overhead-table td{padding:.25rem .375rem;border-bottom:1px solid var(--border-light);font-size:.75rem;text-align:center}.overhead-table td.category-name{text-align:left;font-size:.8125rem;padding-left:1rem}.overhead-table td.total-col{font-weight:600;background:var(--bg-subtle)}.overhead-table input[type=number]{width:60px;padding:.25rem;border:1px solid var(--border-light);border-radius:var(--radius);font-size:.6875rem;text-align:right}.overhead-table input[type=number]:focus{outline:none;border-color:var(--primary-color)}.overhead-table tfoot .totals-row td{background:var(--bg-subtle);border-top:2px solid var(--primary-color);font-weight:600;padding:.5rem}.admin-budget h3{margin:0;font-size:1.125rem;font-weight:600}.budget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.save-budget-btn{padding:.5rem 1.25rem;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;background:var(--bg-subtle);color:var(--text-secondary);transition:all .2s}.save-budget-btn.has-changes{background:var(--primary-color);color:#fff}.save-budget-btn.has-changes:hover{background:var(--primary-hover)}.save-budget-btn:disabled{opacity:.6;cursor:not-allowed}.budget-controls{display:flex;align-items:center;gap:.75rem}.year-select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:.875rem;background:var(--bg-white)}.budget-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.budget-card{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1rem}.budget-card h4{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.budget-card.highlight{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff}.budget-card.highlight h4{color:#ffffffe6}.budget-card.highlight .budget-label{color:#fffc}.budget-values{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem}.budget-label{font-size:.75rem;color:var(--text-secondary);min-width:50px}.budget-value{font-size:1rem;font-weight:600}.budget-value.positive{color:var(--success-color)}.budget-value.negative{color:var(--error-color)}.budget-card.highlight .budget-value.positive,.budget-card.highlight .budget-value.negative{color:#fff}.budget-pct{font-size:.75rem;color:var(--text-secondary);opacity:.8}.budget-card.highlight .budget-pct{color:#ffffffb3}.budget-table-container{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow-x:auto}.budget-table{width:100%;border-collapse:collapse;min-width:800px}.budget-table th{background:var(--primary-color);color:#fff;padding:.625rem .5rem;text-align:center;font-size:.6875rem;font-weight:600;text-transform:uppercase}.budget-table th.category-col{min-width:200px;text-align:left;padding-left:1rem}.budget-table th.amount-col{min-width:90px;border-left:2px solid rgba(255,255,255,.2)}.budget-table th.pct-header{min-width:50px;font-size:.625rem}.budget-table td{padding:.375rem .5rem;border-bottom:1px solid var(--border-light);font-size:.75rem;text-align:center}.budget-table .category-header-row td{background:var(--bg-subtle);padding:.625rem 1rem;font-weight:600;font-size:.8125rem;color:var(--primary-color);border-bottom:2px solid var(--primary-color)}.budget-table .category-header{text-transform:uppercase;letter-spacing:.5px}.budget-table .line-item-name{padding-left:1.5rem;font-weight:400;text-align:left;position:sticky;left:0;background:#fff;z-index:1}.budget-table tbody tr:nth-child(odd):not(.category-header-row):not(.category-total-row):not(.calculated-row) td{background-color:#f8f9fa}.budget-table tbody tr:not(.category-header-row):not(.category-total-row):not(.calculated-row):hover td,.budget-table tbody tr:not(.category-header-row):not(.category-total-row):not(.calculated-row):focus-within td,.budget-table tbody tr:not(.category-header-row):not(.category-total-row):not(.calculated-row).active td{background-color:#e3f2fd!important}.budget-table .readonly-cell{color:var(--text-secondary);font-size:.75rem}.budget-table .pct-col{text-align:center;color:var(--text-secondary);font-size:.75rem}.budget-table .variance-col{text-align:right}.budget-table .variance-col.positive{color:var(--success-color)}.budget-table .variance-col.negative{color:var(--error-color)}.budget-table input[type=text]{width:85px;padding:.25rem .375rem;border:1px solid var(--border-light);border-radius:var(--radius);font-size:.75rem;text-align:right;background:var(--bg-white)}.budget-table input[type=text]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3b82f626}.budget-table .category-total-row td{background:#f0f7ff;border-top:1px solid var(--primary-color);border-bottom:2px solid var(--primary-color)}.budget-table .category-total-row td:first-child,.budget-table .calculated-row td:first-child,.budget-table tfoot td:first-child{text-align:left;padding-left:1rem}.budget-table .calculated-row td{background:rgba(var(--primary-rgb),.08);border-top:2px solid var(--primary-color);border-bottom:2px solid var(--primary-color)}.budget-table tfoot .grand-total-row td{background:var(--bg-subtle);border-top:2px solid var(--primary-color);padding:.75rem 1rem}.budget-table tfoot .net-profit-row td{background:var(--primary-color);color:#fff;padding:.75rem 1rem}.budget-table tfoot .net-profit-row .positive{color:#86efac}.budget-table tfoot .net-profit-row .negative{color:#fca5a5}.budget-table tfoot .net-profit-row .pct-col{color:#fffc}.budget-table tfoot .net-profit-row .variance-col{color:#fff}@media print{body.printing-estimate *,body.printing-invoice *,body.printing-workorder *{visibility:hidden}body.printing-estimate .print-content[data-print-type=estimate],body.printing-estimate .print-content[data-print-type=estimate] *,body.printing-invoice .print-content[data-print-type=invoice],body.printing-invoice .print-content[data-print-type=invoice] *,body.printing-workorder .print-content[data-print-type=workorder],body.printing-workorder .print-content[data-print-type=workorder] *{visibility:visible}body.printing-estimate .print-content[data-print-type=estimate],body.printing-invoice .print-content[data-print-type=invoice],body.printing-workorder .print-content[data-print-type=workorder]{position:absolute;left:0;top:0;width:100%;background:#fff;padding:.5in;box-sizing:border-box}body.printing-estimate .sidebar,body.printing-estimate .header,body.printing-estimate .summary-tabs-row,body.printing-estimate .print-document-btn,body.printing-estimate .fullscreen-toggle,body.printing-estimate .document-actions,body.printing-estimate .email-section,body.printing-estimate .signature-section:not(.signature-display),body.printing-estimate .accept-button,body.printing-invoice .sidebar,body.printing-invoice .header,body.printing-invoice .summary-tabs-row,body.printing-invoice .print-document-btn,body.printing-invoice .fullscreen-toggle,body.printing-invoice .document-actions,body.printing-invoice .email-section,body.printing-workorder .sidebar,body.printing-workorder .header,body.printing-workorder .summary-tabs-row,body.printing-workorder .print-document-btn,body.printing-workorder .fullscreen-toggle,body.printing-workorder .document-actions,body.printing-workorder .email-section{display:none!important}body.printing-estimate .signature-display,body.printing-estimate .signature-display img,body.printing-invoice .signature-display,body.printing-invoice .signature-display img{visibility:visible!important;display:block!important}body.printing-estimate .estimate-header,body.printing-estimate .document-header,body.printing-estimate .section-header,body.printing-invoice .invoice-header,body.printing-invoice .document-header,body.printing-workorder .pay-header,body.printing-workorder .document-header{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}@page{margin:.5in;size:letter}}.customer-payment-form .form-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.customer-payment-form select{min-width:120px}.customer-payment-form input[type=number],.customer-payment-form input[type=text],.customer-payment-form input[type=date]{min-width:120px;flex:1}.payment-type{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.payment-type-deposit{background:#fef3c7;color:#92400e}.payment-type-partial{background:#dbeafe;color:#1e40af}.payment-type-final{background:#d1fae5;color:#065f46}.payment-type-payment{background:#f3f4f6;color:#374151}.payment-summary .summary-divider{height:1px;background:#e5e7eb;margin:.75rem 0}.payment-summary .deposit-row{background:#fef9c3;margin:-.5rem -.5rem .5rem;padding:.75rem;border-radius:4px}.payment-summary .status-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;margin-left:.5rem}.payment-summary .status-badge.complete{background:#d1fae5;color:#065f46}.payment-summary .status-badge.pending{background:#fef3c7;color:#92400e}.payment-summary .status-badge.paid{background:#d1fae5;color:#065f46}.payment-summary .summary-value.pending{color:#d97706}.payment-summary .summary-value.received{color:#059669}.payment-summary .summary-value.due{color:#dc2626}.payment-summary .summary-value.paid{color:#059669}.payment-links-section{background:#f8fafc;border-radius:8px;padding:1rem}.payment-links-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.payment-links-section h3{margin:0}.payment-actions{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:1rem;background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-radius:8px;border:1px solid #c7d2fe}.send-invoice-payment-btn{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;padding:.75rem 1.5rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .2s}.send-invoice-payment-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #4f46e54d}.send-invoice-payment-btn:disabled{opacity:.6;cursor:not-allowed}.action-hint{font-size:.8rem;color:#6366f1}.payment-link-form{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;margin-bottom:1rem}.payment-link-form .form-row{display:flex;gap:.5rem;margin-bottom:.5rem}.payment-link-form .form-row:last-child{margin-bottom:0}.payment-link-form select,.payment-link-form input[type=number],.payment-link-form input[type=text]{padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem}.payment-link-form select{min-width:150px}.payment-link-form input[type=number]{width:120px}.payment-link-form input.full-width{flex:1}.payment-links-list{display:flex;flex-direction:column;gap:.75rem}.payment-link-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;gap:1rem}.payment-link-item.status-pending{border-left:4px solid #f59e0b}.payment-link-item.status-paid{border-left:4px solid #10b981;background:#f0fdf4}.payment-link-item.status-expired{border-left:4px solid #6b7280;opacity:.7}.payment-link-item.status-cancelled{border-left:4px solid #ef4444;opacity:.7}.payment-link-info{flex:1}.payment-link-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.payment-link-status{padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.payment-link-status.status-pending{background:#fef3c7;color:#92400e}.payment-link-status.status-paid{background:#d1fae5;color:#065f46}.payment-link-status.status-expired{background:#f3f4f6;color:#6b7280}.payment-link-status.status-cancelled{background:#fee2e2;color:#dc2626}.payment-link-type{font-size:.85rem;color:#6b7280}.payment-link-amount{font-size:1.1rem;font-weight:700;color:#1f2937}.payment-link-details{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem;color:#6b7280}.payment-link-desc{color:#374151}.payment-link-paid-date{color:#059669;font-weight:500}.payment-link-actions{display:flex;gap:.5rem;flex-wrap:wrap}.payment-link-actions .btn-small{padding:.35rem .75rem;font-size:.8rem;border-radius:4px;border:1px solid #6b7280!important;background:#fff!important;color:#1f2937!important;cursor:pointer;transition:all .15s}.payment-link-actions .btn-small:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.payment-link-actions .btn-small:disabled{opacity:.5;cursor:not-allowed}.payment-link-actions .btn-danger{color:#dc2626;border-color:#fecaca}.payment-link-actions .btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#f87171}.payment-link-success{color:#059669;font-weight:600;font-size:.9rem}.payment-provider-note{margin-top:1rem;padding-top:.75rem;border-top:1px solid #e5e7eb;font-size:.75rem;color:#9ca3af;text-align:right}.payment-links-disabled{opacity:.7}.payment-links-disabled .no-data{color:#6b7280;font-size:.9rem}.floating-pricing-bar.force-visible{display:block!important;left:240px;z-index:999}.sidebar.collapsed~* .floating-pricing-bar.force-visible,.app-with-sidebar:has(.sidebar.collapsed) .floating-pricing-bar.force-visible{left:64px}.floating-pricing-bar.force-visible .floating-pricing-collapsed{display:flex!important;color:#fff!important}.floating-pricing-bar.force-visible .floating-pricing-collapsed *{color:#fff!important}.floating-pricing-bar.force-visible .floating-pricing-main,.floating-pricing-bar.force-visible .floating-pricing-quick,.floating-pricing-bar.force-visible .floating-pricing-label,.floating-pricing-bar.force-visible .floating-pricing-value,.floating-pricing-bar.force-visible .floating-pricing-toggle{opacity:1!important;color:#fff!important}.floating-pricing-bar.force-visible .floating-pricing-value{font-size:1.5rem!important}.floating-pricing-bar.force-visible .floating-pricing-expanded{display:block!important;color:#1f2937!important}.floating-pricing-bar.force-visible .floating-pricing-expanded *{color:#1f2937!important}.floating-pricing-bar.force-visible .floating-pricing-expanded .floating-pricing-section-title{color:#6b7280!important}.floating-pricing-bar.force-visible .floating-pricing-expanded .floating-pricing-row.discount span{color:#059669!important}.floating-pricing-bar.force-visible .floating-pricing-expanded .floating-pricing-row.deposit span:first-child{color:#2563eb!important}.panels.force-card-layout .right-panel,.panels.force-card-layout .panel-toggle-pricing{display:none!important}.panels.force-card-layout{padding-bottom:100px}@media(max-width:1024px){.floating-pricing-bar.force-visible{left:0}}.notification-bell{position:relative}.notification-bell-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;color:#374151;transition:all .2s ease;position:relative}.notification-bell-btn:hover{background:#e5e7eb;border-color:#d1d5db;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.notification-bell-btn:active{transform:translateY(0);background:#d1d5db}.notification-badge{position:absolute;top:-4px;right:-4px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 2px 6px #ef444466;border:2px solid white}.notification-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:380px;max-height:480px;background:#fff;border-radius:14px;box-shadow:0 20px 50px #0003,0 0 0 1px #0000000d;z-index:1000;overflow:hidden;display:flex;flex-direction:column;animation:dropdown-slide-in .2s ease}@keyframes dropdown-slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.notification-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-bottom:1px solid #e5e7eb}.notification-header h4{margin:0;font-size:.9375rem;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:.5rem}.notification-header h4:before{content:"🔔";font-size:1rem}.mark-all-read{background:none;border:none;color:var(--primary-color);font-size:.8125rem;font-weight:500;cursor:pointer;padding:.375rem .75rem;border-radius:6px;transition:all .15s ease}.mark-all-read:hover{background:#2563eb1a}.notification-list{flex:1;overflow-y:auto}.notification-loading,.notification-empty{padding:2.5rem 1.5rem;text-align:center;color:#6b7280}.notification-item{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .15s ease}.notification-item:hover{background:var(--surface-color)}.notification-item:last-child{border-bottom:none}.notification-icon{font-size:1.5rem;flex-shrink:0}.notification-content{flex:1;min-width:0}.notification-title{font-weight:600;font-size:.9rem;margin-bottom:4px}.notification-message{font-size:.85rem;color:var(--text-secondary);margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-project{font-size:.8rem;color:var(--primary-color);margin-bottom:4px}.notification-time{font-size:.75rem;color:var(--text-muted)}.notification-dismiss{background:none;border:none;color:var(--text-muted);font-size:1.25rem;cursor:pointer;padding:4px;line-height:1;opacity:0;transition:opacity .15s ease}.notification-item:hover .notification-dismiss{opacity:1}.notification-dismiss:hover{color:var(--text-primary)}@media(max-width:480px){.notification-dropdown{width:calc(100vw - 32px);right:-16px}}.dashboard-page{padding:var(--space-lg);max-width:1400px;margin:0 auto}.dashboard-page h1{margin:0 0 var(--space-lg) 0;font-size:1.75rem;font-weight:600}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-lg)}.dashboard-card{background:#fff;border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.dashboard-card h2{margin:0 0 var(--space-md) 0;font-size:1.1rem;font-weight:600;color:var(--text-secondary)}.dashboard-card .big-number{font-size:2.5rem;font-weight:700;color:var(--primary-color)}.dashboard-card .subtext{font-size:.9rem;color:var(--text-muted);margin-top:var(--space-xs)}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md);margin-bottom:var(--space-lg)}.stat-card{background:#fff;border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm);text-align:center}.stat-card .stat-value{font-size:1.75rem;font-weight:700;color:var(--primary-color)}.stat-card .stat-label{font-size:.85rem;color:var(--text-secondary);margin-top:var(--space-xs)}.data-table-container{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.data-table-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-color)}.data-table-header h2{margin:0;font-size:1.1rem;font-weight:600}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{background:var(--surface-color);font-weight:600;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--surface-color)}.data-table .amount{font-weight:600;font-family:var(--font-mono)}.data-table .status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:500}.data-table .status-badge.pending{background:#fef3c7;color:#92400e}.data-table .status-badge.earned{background:#d1fae5;color:#065f46}.data-table .status-badge.paid{background:#dbeafe;color:#1e40af}.data-table .actions{display:flex;gap:8px}.btn-sm{padding:6px 12px;font-size:.85rem;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.btn-sm.primary{background:var(--primary-color);color:#fff;border:none}.btn-sm.primary:hover{opacity:.9}.btn-sm.secondary{background:#fff;color:var(--text-primary);border:1px solid var(--border-color)}.btn-sm.secondary:hover{background:var(--surface-color)}.page-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.page-header h1{margin:0;flex:1}.btn-back{padding:8px 16px;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;transition:all .15s ease}.btn-back:hover{background:var(--surface-color)}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.stat-card.highlight{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover))}.stat-card.highlight .stat-value,.stat-card.highlight .stat-label{color:#fff}.dashboard-content{display:flex;flex-direction:column;gap:var(--space-xl)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);flex-wrap:wrap;gap:var(--space-sm)}.section-header h2{margin:0;font-size:1.25rem;font-weight:600}.filter-tabs{display:flex;gap:var(--space-xs);flex-wrap:wrap}.filter-tabs button{padding:6px 14px;background:#fff;border:1px solid var(--border-color);border-radius:20px;cursor:pointer;font-size:.85rem;transition:all .15s ease}.filter-tabs button:hover{background:var(--surface-color)}.filter-tabs button.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.report-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-lg);border-bottom:2px solid var(--border-color);padding-bottom:var(--space-xs)}.report-tabs button{padding:10px 20px;background:none;border:none;cursor:pointer;font-size:.95rem;color:var(--text-secondary);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s ease}.report-tabs button:hover{color:var(--primary-color)}.report-tabs button.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.empty-state{text-align:center;padding:var(--space-xl);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.empty-state p{margin:0 0 var(--space-sm) 0;color:var(--text-secondary)}.empty-state .hint{font-size:.85rem;color:var(--text-muted)}.follow-up-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.follow-up-table th,.follow-up-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-color)}.follow-up-table th{background:var(--surface-color);font-weight:600;font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.follow-up-table tr:last-child td{border-bottom:none}.follow-up-table tr:hover td{background:var(--surface-color)}.follow-up-table .step-subject{font-size:.9rem;max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.follow-up-table .scheduled-date{font-size:.9rem;color:var(--text-secondary)}.follow-up-table .project-id{font-family:var(--font-mono);font-size:.85rem;color:var(--text-secondary)}.follow-up-table .status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:capitalize}.status-pending{background:#fef3c7;color:#92400e}.status-sent{background:#d1fae5;color:#065f46}.status-cancelled{background:#fee2e2;color:#b91c1c}.status-skipped{background:#e5e7eb;color:#4b5563}.status-earned{background:#dbeafe;color:#1e40af}.status-paid{background:#d1fae5;color:#065f46}.btn-cancel{padding:4px 10px;background:#fff;color:#dc2626;border:1px solid #dc2626;border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;transition:all .15s ease}.btn-cancel:hover{background:#fee2e2}.btn-preview{padding:4px 10px;background:#fff;color:var(--primary-color);border:1px solid var(--primary-color);border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;transition:all .15s ease;margin-right:6px}.btn-preview:hover{background:var(--primary-light)}.btn-preview:disabled{opacity:.5;cursor:not-allowed}.btn-send-now{padding:4px 10px;background:var(--success-color);color:#fff;border:1px solid var(--success-color);border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;transition:all .15s ease;margin-right:6px}.btn-send-now:hover{background:#15803d;border-color:#15803d}.btn-send-now:disabled{opacity:.6;cursor:not-allowed}.follow-up-table .actions{white-space:nowrap}.sent-info{font-size:.8rem;color:var(--text-muted)}.email-preview-modal{max-width:600px;width:100%}.email-preview-modal .modal-body{padding:var(--space-lg)}.preview-field{margin-bottom:var(--space-md)}.preview-field label{display:block;font-weight:600;font-size:.85rem;color:var(--text-muted);margin-bottom:4px}.preview-field span{display:block;font-size:1rem;color:var(--text-color)}.preview-field.preview-body{margin-bottom:0}.email-body-preview{background:#f9fafb;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-md);max-height:300px;overflow-y:auto}.email-body-preview p{margin:0 0 8px;line-height:1.6}.email-body-preview p:last-child{margin-bottom:0}.sequences-section{background:#f8fafc;border-radius:var(--radius-lg);padding:var(--space-lg)}.sequences-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:2px solid #e2e8f0}.sequences-section .section-header h2{margin:0;font-size:1.25rem;font-weight:700;color:#1e293b;display:flex;align-items:center;gap:10px}.sequences-section .section-header h2:before{content:"📧";font-size:1.1rem}.sequences-list{display:flex;flex-direction:column;gap:var(--space-md)}.sequence-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f;border:1px solid #e2e8f0;overflow:hidden;transition:all .2s ease}.sequence-card:hover{box-shadow:0 4px 12px #0000001a,0 2px 4px #0000000f;border-color:#cbd5e1}.sequence-card.inactive{background:#f8fafc;border-color:#e2e8f0}.sequence-card.inactive .sequence-header{background:#f1f5f9}.sequence-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);background:linear-gradient(to right,#f8fafc,#fff);border-bottom:1px solid #f1f5f9}.sequence-title-row{display:flex;align-items:center;gap:12px}.expand-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:.7rem;color:#64748b;transition:all .15s ease}.expand-btn:hover{background:#e2e8f0;color:#334155}.sequence-title-row h3{margin:0;font-size:1.05rem;font-weight:600;color:#1e293b}.sequence-title-row .step-count{background:#e0f2fe;color:#0369a1;padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:600}.sequence-card.inactive .sequence-title-row .step-count{background:#f1f5f9;color:#64748b}.sequence-actions{display:flex;align-items:center;gap:8px}.btn-send-test{padding:6px 14px;background:linear-gradient(to bottom,#3b82f6,#2563eb);border:none;border-radius:6px;color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #2563eb33}.btn-send-test:hover{background:linear-gradient(to bottom,#2563eb,#1d4ed8);box-shadow:0 2px 4px #2563eb4d;transform:translateY(-1px)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#cbd5e1;transition:.2s ease;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.2s ease;border-radius:50%;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-slider{background:linear-gradient(to right,#22c55e,#16a34a)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.btn-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .15s ease}.btn-icon:hover{background:#f1f5f9;border-color:#cbd5e1}.btn-icon.btn-edit:hover{background:#dbeafe;border-color:#93c5fd}.btn-icon.btn-delete:hover{background:#fee2e2;border-color:#fca5a5}.sequence-trigger{padding:var(--space-sm) var(--space-lg);font-size:.85rem;color:#64748b;background:#fafafa}.sequence-trigger strong{color:#334155;background:#f1f5f9;padding:2px 8px;border-radius:4px;font-weight:600;text-transform:capitalize}.sequence-steps-expanded{padding:var(--space-md) var(--space-lg) var(--space-lg);background:#fff}.steps-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.steps-header h4{margin:0;font-size:.9rem;font-weight:600;color:#475569;display:flex;align-items:center;gap:8px}.steps-header h4:before{content:"📋";font-size:.85rem}.btn-small{padding:6px 12px;font-size:.8rem}.btn-add-step{background:#fff;border:1px dashed #94a3b8;border-radius:6px;color:#64748b;cursor:pointer;font-weight:500;transition:all .15s ease}.btn-add-step:hover{background:var(--primary-color);color:#fff;border-style:solid;border-color:var(--primary-color)}.no-steps{color:#64748b;font-size:.9rem;text-align:center;padding:var(--space-xl);background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:10px;border:2px dashed #cbd5e1}.no-steps:before{content:"📭";display:block;font-size:2rem;margin-bottom:8px}.sequences-section .empty-state{text-align:center;padding:var(--space-xl) var(--space-lg);background:#fff;border-radius:12px;border:2px dashed #e2e8f0}.sequences-section .empty-state p{color:#64748b;margin-bottom:var(--space-md)}.sequences-section .empty-state .btn-primary{margin-top:var(--space-sm)}.steps-list{display:flex;flex-direction:column;gap:12px;position:relative;padding-left:24px}.steps-list:before{content:"";position:absolute;left:29px;top:24px;bottom:24px;width:2px;background:linear-gradient(to bottom,#e2e8f0,#cbd5e1,#e2e8f0)}.step-item{display:flex;align-items:center;padding:var(--space-md);background:#fff;border-radius:10px;border:1px solid #e2e8f0;margin-left:20px;position:relative;transition:all .15s ease}.step-item:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #0000000f}.step-item.inactive{background:#f8fafc;border-color:#f1f5f9}.step-item.inactive .step-info .step-timing{background:#f1f5f9;color:#94a3b8}.step-item:before{content:"";position:absolute;left:-14px;width:10px;height:10px;background:var(--primary-color);border:2px solid white;border-radius:50%;box-shadow:0 0 0 3px #e0f2fe}.step-item.inactive:before{background:#cbd5e1;box-shadow:0 0 0 3px #f1f5f9}.step-info{display:flex;align-items:center;gap:var(--space-md);flex:1;min-width:0}.step-info .step-timing{flex-shrink:0;min-width:70px;padding:4px 10px;background:linear-gradient(135deg,#e0f2fe,#dbeafe);color:#0369a1;font-size:.8rem;font-weight:700;border-radius:6px;text-align:center}.step-info .step-subject{color:#334155;font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-inactive-badge{background:#fef3c7;color:#92400e;padding:3px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.step-actions{display:flex;gap:6px;opacity:0;transition:opacity .15s ease}.step-item:hover .step-actions{opacity:1}.sequence-form-modal,.step-form-modal{max-width:560px;width:95%;border-radius:16px;box-shadow:0 25px 50px -12px #00000040}.sequence-form-modal .modal-header,.step-form-modal .modal-header{background:linear-gradient(to right,#f8fafc,#fff);border-bottom:1px solid #e2e8f0;padding:var(--space-lg)}.sequence-form-modal .modal-header h2,.step-form-modal .modal-header h2{font-size:1.15rem;font-weight:600;color:#1e293b}.sequence-form-modal .modal-body,.step-form-modal .modal-body{padding:var(--space-lg)}.step-form-modal textarea{resize:vertical;min-height:150px;font-family:inherit;border:1px solid #e2e8f0;border-radius:8px;padding:12px;font-size:.9rem;transition:border-color .15s ease,box-shadow .15s ease}.step-form-modal textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.sequence-form-modal .modal-footer,.step-form-modal .modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;padding:var(--space-md) var(--space-lg)}.form-hint{margin:6px 0 0;font-size:.8rem;color:#64748b;line-height:1.4}.checkbox-label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.referral-program-info{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-xl)}.referral-program-info h3{margin:0 0 var(--space-md) 0;font-size:1.1rem}.tier-cards{display:flex;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap}.tier-card{background:#fff;border-radius:var(--radius-md);padding:var(--space-md);text-align:center;box-shadow:var(--shadow-sm);min-width:120px}.tier-name{font-size:.85rem;color:var(--text-secondary);margin-bottom:var(--space-xs)}.tier-amount{font-size:1.5rem;font-weight:700;color:var(--primary-color)}.program-note{margin:0;font-size:.85rem;color:var(--text-secondary);line-height:1.5}.payments-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.payments-table th,.payments-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-color)}.payments-table th{background:var(--surface-color);font-weight:600;font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.payments-table tr:last-child td{border-bottom:none}.payments-table tr:hover td{background:var(--surface-color)}.payments-table .referrer-name{font-weight:500}.payments-table .referred-info{display:flex;flex-direction:column;gap:2px}.payments-table .referred-info .project-id{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted)}.payments-table .tier{font-size:.85rem;color:var(--text-secondary)}.payments-table .amount{font-weight:600;color:var(--primary-color);font-family:var(--font-mono)}.payments-table .date{font-size:.9rem;color:var(--text-secondary)}.btn-mark-paid{padding:6px 12px;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer;transition:all .15s ease}.btn-mark-paid:hover{opacity:.9}.mark-paid-form{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.mark-paid-form select,.mark-paid-form input{padding:6px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.85rem}.mark-paid-form input{width:150px}.btn-confirm{padding:6px 12px;background:#16a34a;color:#fff;border:none;border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer}.btn-confirm:hover{opacity:.9}.btn-cancel-small{padding:6px 10px;background:#fff;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer}.btn-cancel-small:hover{background:var(--surface-color)}.paid-info{font-size:.8rem;color:var(--text-muted)}.report-section{background:#fff;border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.report-section h2{margin:0 0 var(--space-lg) 0;font-size:1.25rem;font-weight:600}.chart-container{margin-bottom:var(--space-xl)}.bar-chart{display:flex;flex-direction:column;gap:var(--space-sm)}.bar-row{display:grid;grid-template-columns:150px 1fr 80px;align-items:center;gap:var(--space-md)}.bar-label{font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-container{position:relative;height:28px;background:var(--surface-color);border-radius:var(--radius-sm);overflow:hidden}.bar{position:absolute;top:0;left:0;height:100%;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:flex-end;padding-right:8px;transition:width .3s ease}.bar.bar-total{background:#e5e7eb;z-index:1}.bar.bar-accepted{background:var(--primary-color);z-index:2}.bar.bar-revenue{background:linear-gradient(90deg,var(--primary-color),var(--accent-color, #6366f1));z-index:1}.bar-value{font-size:.75rem;font-weight:600;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.2)}.bar-total .bar-value{color:var(--text-secondary);text-shadow:none}.bar-rate,.bar-jobs{font-size:.85rem;font-weight:500;color:var(--text-secondary);text-align:right}.chart-legend{display:flex;gap:var(--space-lg);margin-top:var(--space-md);justify-content:center}.legend-item{display:flex;align-items:center;gap:var(--space-xs);font-size:.85rem;color:var(--text-secondary)}.legend-color{width:14px;height:14px;border-radius:3px}.legend-color.total{background:#e5e7eb}.legend-color.accepted{background:var(--primary-color)}.report-table{width:100%;border-collapse:collapse;margin-top:var(--space-lg)}.report-table th,.report-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-color)}.report-table th{background:var(--surface-color);font-weight:600;font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.report-table tr:hover td{background:var(--surface-hover)}.report-table .source-name{font-weight:500}.report-table .accepted{color:#16a34a}.report-table .declined{color:#dc2626}.report-table .revenue{font-weight:600;color:var(--primary-color);font-family:var(--font-mono)}.report-table .rate{font-weight:500}.report-table .rate.high{color:#16a34a}.report-table .rate.medium{color:#ca8a04}.report-table .rate.low{color:#dc2626}.report-table tfoot td{background:var(--surface-color);font-weight:600}.lead-sources-section{background:#fff;border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.lead-sources-section h2{margin:0 0 var(--space-md) 0;font-size:1.1rem;font-weight:600}.sources-grid{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.source-chip{padding:6px 12px;background:var(--surface-color);border-radius:16px;font-size:.8rem;color:var(--text-secondary)}.source-chip.active{background:var(--primary-light);color:var(--primary-color)}.source-chip.inactive{opacity:.5;text-decoration:line-through}.dashboard-page.loading,.dashboard-page.error{display:flex;align-items:center;justify-content:center;min-height:400px;font-size:1.1rem;color:var(--text-secondary)}.dashboard-page.error{color:#dc2626}@media(max-width:768px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}.bar-row{grid-template-columns:100px 1fr 60px}.bar-label{font-size:.75rem}.tier-cards{justify-content:center}.mark-paid-form{flex-direction:column;align-items:flex-start}.mark-paid-form input{width:100%}.payments-table,.follow-up-table,.report-table{font-size:.85rem}.payments-table th,.payments-table td,.follow-up-table th,.follow-up-table td,.report-table th,.report-table td{padding:8px 10px}}.sub-messages-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding:8px 0}.sub-message-item{padding:12px 16px;border-radius:8px;background:#f0f9ff;border-left:4px solid #3b82f6}.sub-message-item.admin-message{background:#f0fdf4;border-left-color:#22c55e}.sub-message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.sub-message-sender{font-weight:600;color:#1e3a5f;font-size:.9rem}.sub-message-time{font-size:.8rem;color:#64748b}.sub-message-content{color:#374151;font-size:.95rem;margin-bottom:8px}.sub-message-images{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.sub-message-images img{width:80px;height:80px;object-fit:cover;border-radius:6px;cursor:pointer;border:1px solid #ddd}.sub-message-images img:hover{transform:scale(1.05)}.reply-btn{margin-top:8px}.sub-reply-form{margin-top:16px;padding:16px;background:#f8fafc;border-radius:8px;border:1px solid #e5e7eb}.sub-reply-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:500;color:#1e3a5f}.sub-reply-input{display:flex;gap:8px}.sub-reply-input input{flex:1;padding:10px 14px;border:1px solid #ddd;border-radius:6px;font-size:.95rem}.sub-reply-input input:focus{outline:none;border-color:#3b82f6}.sub-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.sub-photo-item{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff}.sub-photo-item img{width:100%;height:140px;object-fit:cover;cursor:pointer}.sub-photo-item img:hover{opacity:.9}.sub-photo-info{padding:10px 12px;display:flex;flex-direction:column;gap:4px}.photo-type-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;width:fit-content}.photo-type-badge.before{background:#dbeafe;color:#1e40af}.photo-type-badge.during{background:#fef3c7;color:#92400e}.photo-type-badge.after{background:#d1fae5;color:#065f46}.photo-type-badge.issue{background:#fee2e2;color:#b91c1c}.photo-uploader{font-size:.85rem;color:#374151;font-weight:500}.photo-desc{font-size:.8rem;color:#64748b}.photo-date{font-size:.75rem;color:#9ca3af}.sub-message-compose{margin-top:16px;display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px solid #e5e7eb}.sub-message-compose textarea{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;font-family:inherit;resize:vertical;min-height:80px;box-sizing:border-box}.sub-message-compose textarea:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px #1e3a5f1a}.sub-message-images-preview{display:flex;flex-wrap:wrap;gap:8px}.sub-preview-image-wrapper{position:relative;width:80px;height:80px}.sub-preview-image-wrapper img{width:100%;height:100%;object-fit:cover;border-radius:6px;border:1px solid #e5e7eb}.sub-remove-preview-btn{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#ef4444;color:#fff;border:none;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}.sub-remove-preview-btn:hover{background:#dc2626}.sub-message-compose-actions{display:flex;gap:10px;justify-content:flex-end}.sub-attach-btn{padding:8px 16px;font-size:.875rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500}.sub-attach-btn:hover:not(:disabled){background:#2563eb}.sub-attach-btn:disabled{background:#9ca3af;cursor:not-allowed}.leads-page{padding:1.5rem;max-width:1600px;margin:0 auto}.leads-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);padding:1.5rem 2rem;margin:-1.5rem -1.5rem 1.5rem;position:relative}.leads-header:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(255,255,255,.15) 0%,transparent 60%);pointer-events:none}.leads-title-section{display:flex;align-items:center;gap:1rem;position:relative;z-index:1}.leads-icon-badge{width:56px;height:56px;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.3)}.leads-icon-badge span{font-size:1.75rem}.leads-title-text h1{margin:0;font-size:1.75rem;font-weight:700;color:#fff}.leads-subtitle{margin:.25rem 0 0;font-size:.9375rem;color:#ffffffe6}.leads-header .btn-back{background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;position:relative;z-index:1}.leads-header .btn-back:hover{background:#ffffff40}.leads-stats-bar{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:1.5rem}.leads-stat-card{background:var(--bg-white);border-radius:12px;padding:1rem 1.25rem;display:flex;align-items:center;gap:.875rem;box-shadow:0 1px 3px #00000014;border:2px solid transparent;transition:all .2s;cursor:pointer}.leads-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.leads-stat-card.active{border-color:var(--primary-color);box-shadow:0 4px 12px #3b82f626}.leads-stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.125rem}.leads-stat-info{display:flex;flex-direction:column}.leads-stat-value{font-size:1.25rem;font-weight:700;color:var(--text-color);line-height:1.2}.leads-stat-label{font-size:.75rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.025em}.leads-filters{background:var(--bg-white);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #00000014}.leads-filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.leads-filters-title{font-size:.875rem;font-weight:600;color:var(--text-color)}.leads-filter-row{display:flex;gap:1rem}.leads-filter-group{flex:1}.leads-filter-group label{display:block;font-size:.75rem;font-weight:500;color:var(--text-secondary);margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.025em}.leads-filter-group input,.leads-filter-group select{width:100%;padding:.625rem .875rem;border:1px solid var(--border-color);border-radius:8px;font-size:.875rem;background:var(--bg-white);transition:all .15s}.leads-filter-group input:focus,.leads-filter-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.leads-table-container{background:var(--bg-white);border-radius:12px;box-shadow:0 1px 3px #00000014;overflow:hidden}.leads-table{width:100%;border-collapse:collapse}.leads-table thead th{background:var(--bg-secondary);padding:.875rem 1rem;text-align:left;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-light)}.leads-table tbody tr{border-bottom:1px solid var(--border-light);transition:background .15s}.leads-table tbody tr:hover{background:var(--bg-secondary)}.leads-table tbody td{padding:1rem;font-size:.875rem}.leads-table .lead-name{font-weight:600;color:var(--text-color)}.leads-table .lead-contact,.leads-table .lead-meta{color:var(--text-secondary);font-size:.8125rem}.lead-status-badge{display:inline-block;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.lead-actions{display:flex;gap:.5rem;align-items:center}.lead-actions select{padding:.375rem .5rem;font-size:.75rem;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-white);cursor:pointer}.lead-actions .btn-convert{padding:.375rem .75rem;font-size:.75rem;border-radius:6px;border:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;cursor:pointer;font-weight:500;transition:all .2s}.lead-actions .btn-convert:hover{transform:translateY(-1px);box-shadow:0 2px 8px #10b9814d}.lead-detail-modal{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding-top:40px;overflow-y:auto}.lead-detail-content{background:var(--bg-white);border-radius:16px;max-width:700px;width:95%;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;border:1px solid var(--border-light)}.lead-detail-header{padding:1.5rem 1.75rem;display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);position:relative}.lead-detail-header:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(255,255,255,.15) 0%,transparent 60%);pointer-events:none}.lead-detail-header h2{margin:0;font-size:1.375rem;font-weight:700;color:#fff;position:relative;z-index:1}.lead-detail-header>div{position:relative;z-index:1}.lead-detail-header .lead-status-badge{font-weight:600}.lead-detail-source{display:inline-block;margin-left:12px;font-size:.8125rem;color:#ffffffd9;background:#ffffff26;padding:.25rem .75rem;border-radius:20px}.lead-detail-close{background:#ffffff26;border:1px solid rgba(255,255,255,.25);font-size:1.25rem;cursor:pointer;color:#fff;width:36px;height:36px;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:10px;transition:all .15s;position:relative;z-index:1}.lead-detail-close:hover{background:#ffffff40}.lead-detail-body{padding:1.75rem;overflow-y:auto;flex:1;background:var(--bg-page)}.lead-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem}.lead-detail-field{background:var(--bg-white);padding:1rem 1.25rem;border-radius:12px;border:1px solid var(--border-light)}.lead-detail-field label{display:block;font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem}.lead-detail-field .value{font-size:.9375rem;font-weight:500;color:var(--text-color)}.lead-detail-section{margin-bottom:1.5rem}.lead-detail-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.lead-detail-section-title{font-size:.8125rem;font-weight:700;color:var(--text-color);display:flex;align-items:center;gap:.5rem}.lead-detail-section-title:before{content:"";width:4px;height:16px;background:var(--primary-color);border-radius:2px}.lead-section-btn{padding:.375rem .875rem;font-size:.75rem;font-weight:600;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-white);color:var(--text-color);cursor:pointer;transition:all .15s}.lead-section-btn:hover{background:var(--bg-secondary);border-color:var(--border-dark)}.lead-section-btn.primary{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.lead-section-btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.lead-section-btn-group{display:flex;gap:.5rem}.lead-info-bar{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem 1.25rem;background:#fff;border-radius:12px;border:1px solid #e2e8f0;margin-bottom:1.5rem}.lead-info-item{display:flex;flex-direction:column;gap:.25rem;min-width:100px}.lead-info-label{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.lead-info-value{font-size:.875rem;font-weight:500;color:var(--text-color)}.lead-field-value{padding:.75rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px;font-size:.9375rem;color:var(--text-color)}.lead-action-btn{padding:.625rem 1rem;border-radius:8px;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s;border:none;color:#fff;display:inline-flex;align-items:center;gap:.375rem;box-shadow:0 2px 4px #0000001a}.lead-action-btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.lead-action-btn.secondary{background:#f1f5f9;border:1px solid #e2e8f0;color:#64748b}.lead-action-btn.secondary:hover{background:#e2e8f0;border-color:#cbd5e1}.lead-status-actions{padding:1.25rem;background:var(--bg-white);border-radius:12px;margin-bottom:1.5rem;border:1px solid var(--border-light)}.lead-status-actions label{display:block;font-size:.8125rem;font-weight:700;color:var(--text-color);margin-bottom:1rem}.lead-status-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.lead-notes-display{padding:1rem 1.25rem;background:var(--bg-white);border-radius:12px;font-size:.875rem;border:1px solid var(--border-light);min-height:80px;line-height:1.6;color:var(--text-color)}.lead-notes-display.empty{color:var(--text-muted);font-style:italic}.lead-notes-textarea{width:100%;padding:1rem 1.25rem;border-radius:12px;border:1px solid var(--border-color);font-size:.875rem;resize:vertical;min-height:120px;line-height:1.6;font-family:inherit;transition:border-color .15s,box-shadow .15s}.lead-notes-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.lead-activity-log{background:var(--bg-white);border:1px solid var(--border-light);border-radius:12px;overflow:hidden}.lead-activity-item{padding:1rem 1.25rem;border-bottom:1px solid var(--border-light);font-size:.8125rem;transition:background .15s}.lead-activity-item:hover{background:var(--bg-hover)}.lead-activity-item:last-child{border-bottom:none}.lead-activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem}.lead-activity-type{font-weight:600;color:var(--text-color);display:flex;align-items:center;gap:.5rem}.lead-activity-type:before{content:"";width:8px;height:8px;background:var(--primary-color);border-radius:50%}.lead-activity-time{font-size:.6875rem;color:var(--text-muted);background:var(--bg-secondary);padding:.25rem .5rem;border-radius:4px}.lead-activity-description{color:var(--text-secondary);line-height:1.5}.disqualify-modal{background:var(--bg-white);border-radius:16px;max-width:420px;width:95%;box-shadow:0 25px 50px -12px #00000040;border:1px solid var(--border-light);overflow:hidden}.disqualify-modal h3{margin:0;padding:1.25rem 1.5rem;font-size:1.125rem;font-weight:700;background:linear-gradient(135deg,#fef2f2,#fee2e2);border-bottom:1px solid #fecaca;color:#991b1b}.disqualify-modal p{margin:0;padding:1.25rem 1.5rem 1rem;color:var(--text-secondary);font-size:.9375rem}.disqualify-modal p strong{color:var(--text-color)}.disqualify-modal select{width:calc(100% - 3rem);margin:0 1.5rem 1.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--border-color);font-size:.875rem;background:var(--bg-white);cursor:pointer;transition:border-color .15s,box-shadow .15s}.disqualify-modal select:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.disqualify-modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem 1.25rem;background:var(--bg-hover);border-top:1px solid var(--border-light)}.disqualify-modal-actions button{padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.disqualify-modal-actions .btn-cancel{background:var(--bg-white);border:1px solid var(--border-color);color:var(--text-color)}.disqualify-modal-actions .btn-cancel:hover{background:var(--bg-secondary)}.disqualify-modal-actions .btn-disqualify{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;color:#fff;box-shadow:0 2px 4px #ef44444d}.disqualify-modal-actions .btn-disqualify:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #ef444466}.disqualify-modal-actions .btn-disqualify:disabled{background:var(--border-color);cursor:not-allowed;box-shadow:none}.estimate-calendar{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-bottom:1px solid #e5e7eb}.calendar-nav{display:flex;align-items:center;gap:.5rem}.calendar-nav .nav-btn{width:32px;height:32px;border:1px solid #e5e7eb;background:#fff;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#6b7280;transition:all .15s}.calendar-nav .nav-btn:hover{background:#f3f4f6;border-color:#d1d5db;color:#374151}.calendar-nav .today-btn{padding:.375rem .875rem;border:1px solid #e5e7eb;background:#fff;border-radius:8px;font-size:.8125rem;font-weight:500;color:#374151;cursor:pointer;transition:all .15s}.calendar-nav .today-btn:hover{background:#f3f4f6;border-color:#d1d5db}.calendar-title{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0}.view-toggle{display:flex;background:#e5e7eb;border-radius:8px;padding:3px}.view-toggle .toggle-btn{padding:.375rem .75rem;border:none;background:transparent;border-radius:6px;font-size:.8125rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .15s}.view-toggle .toggle-btn.active{background:#fff;color:#1f2937;box-shadow:0 1px 2px #0000001a}.calendar-body{padding:1rem}.calendar-loading{padding:3rem;text-align:center;color:#6b7280}.calendar-week{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem}.calendar-day{min-height:140px;background:#f9fafb;border-radius:10px;padding:.75rem;transition:all .15s}.calendar-day.today{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:2px solid #3b82f6}.calendar-day.past{opacity:.6}.calendar-day .day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.calendar-day .day-name{font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase}.calendar-day .day-number{font-size:1.125rem;font-weight:600;color:#374151}.calendar-day .day-number.today-number{background:#3b82f6;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center}.day-appointments{display:flex;flex-direction:column;gap:.5rem}.add-appointment-btn{width:100%;padding:.5rem;border:2px dashed #d1d5db;background:transparent;border-radius:8px;color:#9ca3af;font-size:1.25rem;cursor:pointer;transition:all .15s}.add-appointment-btn:hover{border-color:#3b82f6;color:#3b82f6;background:#3b82f60d}.appointment-card{background:#fff;border-radius:8px;padding:.625rem;box-shadow:0 1px 3px #0000001a;cursor:pointer;border-left:3px solid #f59e0b;transition:all .15s}.appointment-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.appointment-time{font-size:.6875rem;font-weight:600;color:#f59e0b;margin-bottom:.25rem}.appointment-name{font-size:.8125rem;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-location{font-size:.6875rem;color:#6b7280;margin-top:.125rem}.calendar-month{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#f3f4f6;border-bottom:1px solid #e5e7eb}.weekday-header{padding:.75rem .5rem;text-align:center;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase}.calendar-week.month-week{display:grid;grid-template-columns:repeat(7,1fr);gap:0}.calendar-day.month-day{min-height:80px;border-radius:0;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;background:#fff;cursor:pointer;padding:.5rem}.calendar-day.month-day:nth-child(7n){border-right:none}.calendar-day.month-day:hover:not(.past){background:#f9fafb}.calendar-day.month-day.empty{background:#f9fafb;cursor:default}.calendar-day.month-day.has-appointments{background:linear-gradient(135deg,#fffbeb,#fef3c7)}.calendar-day.month-day.today{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#3b82f6}.calendar-day.month-day .day-number{font-size:.875rem;display:block;margin-bottom:.25rem}.appointment-dots{display:flex;gap:3px;flex-wrap:wrap}.appointment-dot{width:8px;height:8px;background:#f59e0b;border-radius:50%}.more-appointments{font-size:.625rem;color:#6b7280;font-weight:500}.calendar-legend{padding:.75rem 1.25rem;background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:1.5rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#6b7280}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-dot.scheduled{background:#f59e0b}.schedule-modal-wide{max-width:700px!important;width:95%}.schedule-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;margin-bottom:1rem}.schedule-calendar-section{border:1px solid #e5e7eb;border-radius:10px;padding:1rem;background:#fafafa}.schedule-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;font-weight:600;color:#374151;font-size:.9rem}.schedule-cal-header button{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#6b7280;padding:.25rem .5rem;border-radius:4px;transition:all .15s ease}.schedule-cal-header button:hover{background:#e5e7eb;color:#374151}.schedule-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:.25rem}.schedule-cal-weekday{text-align:center;font-size:.6875rem;font-weight:600;color:#9ca3af;padding:.25rem}.schedule-cal-grid{display:flex;flex-direction:column}.schedule-cal-week{display:grid;grid-template-columns:repeat(7,1fr)}.schedule-cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.8rem;cursor:pointer;border-radius:6px;transition:all .15s ease;position:relative}.schedule-cal-day:hover:not(.past):not(.empty){background:#e5e7eb}.schedule-cal-day.empty{cursor:default}.schedule-cal-day.past{opacity:.4;cursor:not-allowed}.schedule-cal-day.today .day-num{background:#3b82f6;color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.schedule-cal-day.selected{background:#fef3c7;border:2px solid #f59e0b}.schedule-cal-day.has-appointments{border:2px solid #f59e0b;background:#fffbeb}.schedule-cal-day.has-appointments .apt-count{position:absolute;bottom:2px;font-size:.5625rem;background:#f59e0b;color:#fff;border-radius:6px;padding:0 4px;font-weight:600}.schedule-time-section{display:flex;flex-direction:column}.schedule-time-section label{font-weight:600;color:#374151;margin-bottom:.5rem;font-size:.875rem}.time-hint{color:#9ca3af;font-size:.875rem;font-style:italic}.time-slots-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.375rem;max-height:240px;overflow-y:auto;padding-right:.25rem}.time-slot{padding:.4rem .5rem;font-size:.75rem;border:1px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;transition:all .15s ease;font-weight:500}.time-slot:hover:not(.booked){border-color:#f59e0b;background:#fffbeb}.time-slot.selected{background:#f59e0b;border-color:#f59e0b;color:#fff}.time-slot.booked{background:#fee2e2;border-color:#fecaca;color:#dc2626;cursor:not-allowed;opacity:.7;text-decoration:line-through}.existing-appointments{margin-top:1rem;padding:.75rem;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.existing-appointments label{font-size:.75rem;color:#6b7280;font-weight:600;display:block;margin-bottom:.5rem}.apt-list{display:flex;flex-direction:column;gap:.375rem}.apt-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.apt-item .apt-time{font-weight:600;color:#f59e0b;min-width:75px}.apt-item .apt-name{color:#374151}.apt-item .apt-city{color:#9ca3af;font-size:.75rem}@media(max-width:600px){.schedule-layout{grid-template-columns:1fr}.time-slots-grid{grid-template-columns:repeat(3,1fr);max-height:180px}}@media(max-width:1200px){.leads-stats-bar{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.leads-page{padding:1rem}.leads-header{flex-direction:column;gap:1rem;align-items:flex-start;margin:-1rem -1rem 1rem;padding:1.25rem 1.5rem}.leads-icon-badge{width:48px;height:48px;border-radius:12px}.leads-icon-badge span,.leads-title-text h1{font-size:1.5rem}.leads-subtitle{font-size:.875rem}.leads-stats-bar{grid-template-columns:repeat(2,1fr);gap:.75rem}.leads-stat-card{padding:.875rem}.leads-filter-row{flex-direction:column}.lead-detail-grid{grid-template-columns:1fr}}@media(max-width:480px){.leads-header{padding:1rem}.leads-icon-badge{width:44px;height:44px;border-radius:10px}.leads-icon-badge span{font-size:1.25rem}.leads-title-text h1{font-size:1.375rem}}.leads-kanban{display:flex;flex-direction:column;height:calc(100vh - 280px);min-height:400px}.kanban-header{display:flex;justify-content:flex-end;padding:0 0 1rem}.kanban-toggle{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-secondary);cursor:pointer;padding:.5rem .75rem;background:var(--bg-white);border-radius:8px;border:1px solid var(--border-light);transition:all .15s}.kanban-toggle:hover{border-color:var(--border-color);background:var(--bg-secondary)}.kanban-toggle input{cursor:pointer;width:16px;height:16px;accent-color:var(--primary-color)}.kanban-board{display:flex;gap:1rem;flex:1;overflow-x:auto;padding-bottom:1rem}.kanban-column{flex:1;min-width:280px;max-width:350px;background:var(--bg-white);border-radius:var(--radius-lg);display:flex;flex-direction:column;transition:all .2s ease;box-shadow:0 2px 8px #00000014;border:1px solid var(--border-light);overflow:hidden;max-height:calc(100vh - 340px)}.kanban-column.drag-over{box-shadow:0 0 0 2px var(--primary-color),0 4px 12px #3b82f626}.kanban-column.no-drop{opacity:.5}.kanban-column-header{padding:1rem 1.25rem;display:flex;align-items:center;gap:.625rem;color:#fff;position:relative}.kanban-column-header:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(255,255,255,.15) 0%,transparent 60%);pointer-events:none}.column-icon{font-size:1rem;position:relative;z-index:1}.column-title{font-weight:600;font-size:.9375rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1);position:relative;z-index:1}.column-count{margin-left:auto;background:#fffffff2;color:#1e293b;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:700;min-width:28px;text-align:center;box-shadow:0 1px 2px #0000001a;position:relative;z-index:1}.kanban-column-body{flex:1;padding:.75rem;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;background:linear-gradient(180deg,#f8fafc,#f1f5f9)}.kanban-empty{text-align:center;color:var(--text-muted);font-size:.8125rem;padding:2rem 1rem;font-style:italic}.kanban-card{background:var(--bg-white);border-radius:var(--radius-md);padding:.875rem;box-shadow:0 1px 3px #0000000f;cursor:pointer;transition:all .15s ease;border:1px solid var(--border-color);position:relative}.kanban-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent-color, var(--primary-color));border-radius:var(--radius-md) 0 0 var(--radius-md);opacity:0;transition:opacity .15s ease}.kanban-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px);border-color:var(--accent-color, var(--primary-color))}.kanban-card:hover:before{opacity:1}.kanban-card.dragging{opacity:.6;transform:rotate(2deg) scale(1.02);box-shadow:0 8px 24px #00000026}.kanban-card[draggable=true]{cursor:grab}.kanban-card[draggable=true]:active{cursor:grabbing}.kanban-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem}.card-name{font-weight:600;font-size:.875rem;color:var(--text-color);line-height:1.3}.card-source{font-size:.625rem;padding:.125rem .375rem;background:var(--bg-secondary);border-radius:3px;color:var(--text-secondary);white-space:nowrap;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.kanban-card-body{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem}.card-contact{display:flex;align-items:flex-start;gap:.375rem;font-size:.75rem;color:var(--text-secondary)}.card-contact.card-address{font-weight:500;color:var(--text-color);margin-bottom:.25rem}.contact-icon{font-size:.625rem;opacity:.7;width:14px;flex-shrink:0;margin-top:2px}.kanban-card-footer{display:flex;align-items:center;gap:.5rem;font-size:.6875rem;color:var(--text-muted);border-top:1px solid var(--border-light);padding-top:.5rem;margin-top:.25rem}.card-date{flex:1}.card-estimates{padding:.125rem .375rem;background:#dbeafe;color:#1d4ed8;border-radius:3px;font-weight:600;font-size:.625rem}.card-action-btn{padding:.25rem .5rem;font-size:.625rem;font-weight:600;background:#10b981;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:all .15s}.card-action-btn:hover{background:#059669}.card-disqualified-reason{font-size:.6875rem;color:#ef4444;font-style:italic;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border-color)}.leads-view-toggle{display:flex;gap:4px;background:var(--bg-secondary);padding:4px;border-radius:6px}.leads-view-toggle button{padding:6px 12px;font-size:13px;border:none;background:transparent;color:var(--text-secondary);border-radius:4px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px}.leads-view-toggle button:hover{color:var(--text-color)}.leads-view-toggle button.active{background:var(--bg-white);color:var(--text-color);box-shadow:0 1px 3px #0000001a}@media(max-width:768px){.kanban-board{flex-direction:column}.kanban-column{max-width:none;min-width:auto}.kanban-column-body{max-height:300px}}.reviews-dashboard .rating-distribution{background:var(--bg-white);border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow)}.reviews-dashboard .rating-distribution h3{margin:0 0 16px;font-size:16px;font-weight:600}.reviews-dashboard .distribution-bars{display:flex;flex-direction:column;gap:8px}.reviews-dashboard .distribution-row{display:flex;align-items:center;gap:12px}.reviews-dashboard .rating-label{width:40px;font-size:14px;color:var(--text-secondary)}.reviews-dashboard .bar-container{flex:1;height:20px;background:var(--bg-color);border-radius:10px;overflow:hidden}.reviews-dashboard .bar-fill{height:100%;border-radius:10px;transition:width .3s ease}.reviews-dashboard .count-label{width:40px;text-align:right;font-size:14px;color:var(--text-secondary)}.reviews-dashboard .filter-tabs{display:flex;gap:8px;margin-bottom:24px}.reviews-dashboard .filter-tab{padding:8px 16px;border:none;background:var(--bg-white);color:var(--text-secondary);border-radius:8px;cursor:pointer;font-size:14px;transition:all .15s}.reviews-dashboard .filter-tab:hover{background:var(--bg-hover)}.reviews-dashboard .filter-tab.active{background:var(--primary-color);color:#fff}.reviews-dashboard .reviews-list{display:flex;flex-direction:column;gap:16px}.reviews-dashboard .review-card{background:var(--bg-white);border-radius:12px;padding:20px;box-shadow:var(--shadow);border-left:4px solid var(--border-color)}.reviews-dashboard .review-card.matched{border-left-color:var(--success-color)}.reviews-dashboard .review-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.reviews-dashboard .reviewer-info{display:flex;align-items:center;gap:12px}.reviews-dashboard .reviewer-photo{width:40px;height:40px;border-radius:50%;object-fit:cover}.reviews-dashboard .reviewer-name{font-weight:600;color:var(--text-color)}.reviews-dashboard .review-date{font-size:13px;color:var(--text-muted)}.reviews-dashboard .star-rating .star{color:#d1d5db;font-size:18px}.reviews-dashboard .star-rating .star.filled{color:#f59e0b}.reviews-dashboard .review-comment{color:var(--text-secondary);line-height:1.6;margin-bottom:12px}.reviews-dashboard .match-info{display:flex;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--border-light)}.reviews-dashboard .match-badge{background:var(--success-light);color:var(--success-color);padding:4px 10px;border-radius:20px;font-size:13px;font-weight:500}.reviews-dashboard .match-actions{padding-top:12px;border-top:1px solid var(--border-light)}.reviews-dashboard .review-meta{margin-top:8px;display:flex;gap:8px}.reviews-dashboard .source-badge{font-size:11px;padding:2px 8px;border-radius:10px;text-transform:uppercase;font-weight:500}.reviews-dashboard .source-badge.google{background:#e8f5e9;color:#2e7d32}.reviews-dashboard .source-badge.manual{background:#e3f2fd;color:#1565c0}.reviews-dashboard .btn-small{padding:6px 12px;font-size:13px}.reviews-dashboard .btn-link{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:13px;padding:0}.reviews-dashboard .btn-link:hover{text-decoration:underline}.reviews-dashboard .no-reviews{text-align:center;padding:48px 24px;background:var(--bg-white);border-radius:12px;color:var(--text-secondary)}.reviews-dashboard .no-reviews .hint{color:var(--text-muted);font-size:14px;margin-top:8px}.reviews-dashboard .api-status-notice{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:20px;margin-top:24px}.reviews-dashboard .api-status-notice h4{margin:0 0 12px;color:#c2410c}.reviews-dashboard .api-status-notice p{margin:0 0 12px;color:var(--text-secondary)}.reviews-dashboard .api-status-notice ul{margin:0;padding-left:20px}.reviews-dashboard .api-status-notice li{margin-bottom:4px;color:var(--text-secondary)}.reviews-dashboard .api-status-notice code{background:#0000000d;padding:2px 6px;border-radius:4px;font-size:13px}.reviews-dashboard .modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.reviews-dashboard .modal-content{background:#fff;border-radius:16px;max-width:480px;width:100%;box-shadow:0 25px 50px -12px #00000040;animation:slideUp .25s ease;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.reviews-dashboard .modal-content h2{margin:0;padding:24px 24px 0;font-size:20px;font-weight:700;color:var(--text-color);border-bottom:none}.reviews-dashboard .modal-content .form-group{padding:0 24px;margin-bottom:20px}.reviews-dashboard .modal-content .form-group:first-of-type{margin-top:20px}.reviews-dashboard .modal-content .form-group label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.reviews-dashboard .modal-content .form-group input,.reviews-dashboard .modal-content .form-group textarea{width:100%;padding:12px 14px;border:2px solid var(--border-color);border-radius:10px;font-size:15px;transition:all .2s;background:var(--bg-color)}.reviews-dashboard .modal-content .form-group input:focus,.reviews-dashboard .modal-content .form-group textarea:focus{outline:none;border-color:var(--primary-color);background:#fff;box-shadow:0 0 0 4px #2563eb1a}.reviews-dashboard .modal-content .form-group textarea{resize:vertical;min-height:100px}.reviews-dashboard .modal-actions{display:flex;gap:12px;padding:20px 24px 24px;background:var(--bg-color);border-top:1px solid var(--border-light);margin-top:8px}.reviews-dashboard .modal-actions .btn-secondary{flex:1;padding:12px 20px;border:2px solid var(--border-color);background:#fff;color:var(--text-secondary);border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.reviews-dashboard .modal-actions .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.reviews-dashboard .modal-actions .btn-primary{flex:1;padding:12px 20px;border:none;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #f59e0b4d}.reviews-dashboard .modal-actions .btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #f59e0b66}.reviews-dashboard .modal-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.reviews-dashboard .star-selector{display:flex;gap:8px;justify-content:center;padding:12px;background:#fff;border-radius:12px;border:2px solid var(--border-color)}.reviews-dashboard .star-btn{background:none;border:none;font-size:36px;color:#d1d5db;cursor:pointer;padding:4px;transition:all .15s;transform-origin:center}.reviews-dashboard .star-btn:hover{color:#fbbf24;transform:scale(1.15)}.reviews-dashboard .star-btn.selected{color:#f59e0b}.reviews-dashboard .modal-wide{max-width:600px}.reviews-dashboard .matching-review{background:linear-gradient(135deg,#fef3c7,#fde68a);padding:20px;border-radius:12px;margin:20px 24px;border:1px solid #fbbf24}.reviews-dashboard .matching-review strong{color:var(--text-color)}.reviews-dashboard .matching-review p{margin:10px 0 0;font-style:italic;color:var(--text-secondary);font-size:14px}.reviews-dashboard .potential-matches{padding:0 24px 20px}.reviews-dashboard .potential-matches h3{margin:0 0 16px;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.reviews-dashboard .match-option{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-color);border-radius:12px;margin-bottom:10px;border:2px solid transparent;transition:all .2s}.reviews-dashboard .match-option:hover{border-color:var(--primary-color);background:#fff}.reviews-dashboard .match-details{flex:1}.reviews-dashboard .match-name{font-weight:600;font-size:15px;color:var(--text-color)}.reviews-dashboard .match-project{font-size:13px;color:var(--primary-color);font-weight:500}.reviews-dashboard .match-address{font-size:13px;color:var(--text-secondary);margin-top:2px}.reviews-dashboard .match-confidence{font-size:12px;color:var(--text-muted);margin-top:6px;padding:4px 8px;background:#fff;border-radius:6px;display:inline-block}.reviews-dashboard .no-matches{text-align:center;padding:32px 24px;color:var(--text-secondary)}.reviews-dashboard .confidence-breakdown{display:block;font-size:11px;color:var(--text-muted)}.reviews-dashboard .no-matches{text-align:center;padding:24px;color:var(--text-secondary)}.reviews-dashboard .no-matches .hint{font-size:13px;color:var(--text-muted);margin-top:8px}.site-visits-tab{padding:0}.site-visit-form{background:var(--bg-secondary);border-radius:8px;padding:20px;margin-bottom:20px}.site-visit-form h4{margin:0 0 16px;color:var(--text-primary);font-size:16px}.visit-form-header{margin-bottom:20px}.visit-form-header .form-row{display:flex;gap:16px;flex-wrap:wrap}.visit-form-header .form-group{flex:1;min-width:150px}.visit-form-header .form-group label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.visit-form-header .form-group input,.visit-form-header .form-group select{width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);font-size:14px}.checklist-section{margin-bottom:20px}.checklist-instructions{font-size:13px;color:var(--text-secondary);margin-bottom:16px;padding:8px 12px;background:var(--bg-tertiary);border-radius:6px}.checklist-category{margin-bottom:20px;padding:16px;background:var(--bg-primary);border-radius:8px;border:1px solid var(--border-color)}.checklist-category h5{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--primary-color)}.checklist-table{width:100%;border-collapse:collapse;margin-bottom:12px;font-size:13px}.checklist-table th,.checklist-table td{padding:8px 12px;text-align:center;border-bottom:1px solid var(--border-color)}.checklist-table th{background:var(--bg-secondary);font-weight:500;color:var(--text-secondary);font-size:12px}.checklist-table th:first-child,.checklist-table td:first-child{text-align:left;width:40%}.checklist-table input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checklist-single-items{display:flex;flex-direction:column;gap:8px}.checklist-single-items .checklist-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-primary);cursor:pointer;padding:6px 0}.checklist-single-items .checklist-item input[type=checkbox]{width:18px;height:18px;flex-shrink:0}.checklist-single-items .checklist-item:hover{color:var(--primary-color)}.visit-notes-section{display:flex;gap:16px;margin-bottom:20px}.visit-notes-section .form-group{flex:1}.visit-notes-section label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.visit-notes-section textarea{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);font-size:14px;resize:vertical;font-family:inherit}.visit-form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid var(--border-color)}.site-visits-list{display:flex;flex-direction:column;gap:12px}.site-visit-card{background:var(--bg-secondary);border-radius:8px;padding:16px;border:1px solid var(--border-color)}.visit-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.visit-card-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.visit-type-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.visit-type-badge.pre_job{background:#fef3c7;color:#92400e}.visit-type-badge.quality_check{background:#dbeafe;color:#1e40af}.visit-type-badge.mid_job{background:#e0e7ff;color:#3730a3}.visit-type-badge.final_walkthrough{background:#d1fae5;color:#065f46}.visit-date{font-size:14px;font-weight:500;color:var(--text-primary)}.visit-by{font-size:13px;color:var(--text-secondary)}.visit-card-actions{display:flex;gap:8px}.visit-checklist-summary{display:flex;align-items:center;gap:12px;margin-bottom:12px}.checklist-progress{flex:1;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.checklist-progress-bar{height:100%;background:linear-gradient(90deg,var(--primary-color),#22c55e);border-radius:4px;transition:width .3s ease}.checklist-count{font-size:12px;color:var(--text-secondary);white-space:nowrap}.visit-notes,.visit-issues{font-size:13px;color:var(--text-secondary);padding:8px 12px;background:var(--bg-tertiary);border-radius:6px;margin-top:8px}.visit-notes strong,.visit-issues strong{color:var(--text-primary)}.visit-issues{border-left:3px solid #ef4444}@media(max-width:768px){.visit-form-header .form-row,.visit-notes-section{flex-direction:column}.checklist-table th:not(:first-child),.checklist-table td:not(:first-child){padding:8px 6px}.visit-card-header{flex-direction:column;align-items:flex-start;gap:12px}.visit-card-actions{width:100%;justify-content:flex-end}}.quality-feedback-section .section-header{display:flex;justify-content:space-between;align-items:center}.quality-feedback-form{background:var(--bg-secondary);border-radius:8px;padding:20px;margin-top:12px}.quality-feedback-form .form-description{font-size:14px;color:var(--text-secondary);margin-bottom:20px;padding:12px;background:var(--bg-tertiary);border-radius:6px;line-height:1.5}.quality-ratings-grid{margin-bottom:24px}.quality-ratings-grid h4{margin:0 0 4px;font-size:15px;color:var(--text-primary)}.quality-ratings-grid .rating-scale{font-size:12px;color:var(--text-muted);margin:0 0 16px}.rating-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border-color)}.rating-row:last-child{border-bottom:none}.rating-label{font-size:14px;color:var(--text-primary);flex:1}.rating-buttons{display:flex;gap:6px}.rating-btn{width:36px;height:36px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.rating-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.rating-btn.selected{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.warranty-section{margin-bottom:24px}.warranty-section h4{margin:0 0 12px;font-size:15px;color:var(--text-primary)}.warranty-table{width:100%;border-collapse:collapse;font-size:14px}.warranty-table th,.warranty-table td{padding:10px 12px;text-align:center;border:1px solid var(--border-color)}.warranty-table th{background:var(--bg-tertiary);font-weight:500;color:var(--text-secondary)}.warranty-table td:first-child{text-align:left;font-weight:500;background:var(--bg-tertiary)}.warranty-table input[type=checkbox]{width:18px;height:18px;cursor:pointer}.referral-section{margin-bottom:24px}.referral-section h4{margin:0 0 16px;font-size:15px;color:var(--text-primary)}.referral-question{margin-bottom:16px}.referral-question label{display:block;font-size:14px;color:var(--text-primary);margin-bottom:8px}.yes-no-buttons{display:flex;gap:12px}.yn-btn{padding:10px 24px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.yn-btn:hover{border-color:var(--primary-color)}.yn-btn.selected.yes{background:#22c55e;border-color:#22c55e;color:#fff}.yn-btn.selected.no{background:#ef4444;border-color:#ef4444;color:#fff}.referral-count-buttons{display:flex;gap:12px}.count-btn{padding:10px 20px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.count-btn:hover{border-color:var(--primary-color)}.count-btn.selected{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.reference-section{margin-bottom:24px}.reference-section h4{margin:0 0 8px;font-size:15px;color:var(--text-primary)}.reference-description{font-size:13px;color:var(--text-secondary);margin:0 0 12px}.reference-textarea{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);font-size:14px;font-family:inherit;resize:vertical;line-height:1.5}.reference-textarea:focus{outline:none;border-color:var(--primary-color)}.signature-section{margin-bottom:20px;padding:16px;background:var(--bg-tertiary);border-radius:6px}.signature-checkbox{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-primary);cursor:pointer}.signature-checkbox input[type=checkbox]{width:18px;height:18px}.signed-date{display:block;margin-top:8px;font-size:13px;color:var(--text-secondary)}.quality-form-actions{display:flex;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--border-color)}.quality-summary{display:flex;gap:24px;flex-wrap:wrap;padding:12px 0}.quality-summary .summary-item{font-size:14px;color:var(--text-secondary)}.quality-summary .summary-item strong{color:var(--text-primary)}.quality-summary .summary-item.signed{color:#22c55e;font-weight:500}@media(max-width:768px){.rating-row{flex-direction:column;align-items:flex-start;gap:8px}.rating-buttons{width:100%;justify-content:space-between}.rating-btn{width:32px;height:32px;font-size:13px}.warranty-table{font-size:12px}.warranty-table th,.warranty-table td{padding:8px 6px}.yes-no-buttons,.referral-count-buttons{flex-wrap:wrap}}.estimate-form-v2{display:flex;flex-direction:column;gap:var(--space-lg)}.form-section-card{background:var(--bg-white);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-xs);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.form-section-card:hover{box-shadow:var(--shadow)}.form-section-card .section-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:2px solid var(--border-light)}.form-section-card .section-header h3{font-size:1rem;font-weight:600;color:var(--text-color);margin:0;letter-spacing:0;text-transform:none}.section-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.section-icon.customer-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#2563eb}.section-icon.paint-icon{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706}.section-icon.options-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#059669}.client-selector-v2{margin-bottom:var(--space-lg);position:relative}.selected-client-v2{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg,var(--primary-subtle) 0%,var(--primary-light) 100%);border:1.5px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-fast)}.selected-client-v2:hover{box-shadow:var(--shadow-focus)}.selected-client-info{display:flex;align-items:center;gap:var(--space-sm)}.client-badge{width:28px;height:28px;background:var(--primary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.selected-client-v2 .selected-client-name{font-weight:600;color:var(--text-color);font-size:.9375rem}.selected-client-v2 .selected-client-phone{font-size:.8125rem;color:var(--text-secondary);padding-left:var(--space-sm);border-left:1px solid var(--border-color);margin-left:var(--space-sm)}.clear-client-btn-v2{background:transparent;border:none;padding:var(--space-xs);cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.clear-client-btn-v2:hover{background:#dc26261a;color:var(--danger-color)}.client-search-v2,.search-input-wrapper{position:relative}.search-input-wrapper .search-icon{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-input-wrapper input{width:100%;padding:var(--space-md) var(--space-md) var(--space-md) 2.75rem;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-size:.9375rem;background:var(--bg-color);transition:all var(--transition-fast)}.search-input-wrapper input:hover{border-color:#94a3b8;background:#fff}.search-input-wrapper input:focus{outline:none;border-color:var(--primary-color);box-shadow:var(--shadow-focus);background:#fff}.search-input-wrapper input::placeholder{color:var(--text-muted)}.client-dropdown-v2{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;max-height:280px;overflow-y:auto}.client-option-v2{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);cursor:pointer;border-bottom:1px solid var(--border-light);transition:background var(--transition-fast)}.client-option-v2:last-child{border-bottom:none}.client-option-v2:hover{background:var(--bg-hover)}.client-option-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--primary-light) 0%,var(--primary-subtle) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--primary-color);font-size:.875rem;flex-shrink:0}.client-option-details{display:flex;flex-direction:column;gap:2px}.client-option-v2 .client-option-name{font-weight:500;color:var(--text-color);font-size:.9375rem}.client-option-v2 .client-option-phone{font-size:.8125rem;color:var(--text-muted)}.client-option-v2.no-results{justify-content:center;color:var(--text-muted);font-style:italic}.email-match-notification-v2{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--warning-bg, #fffbeb);border:1px solid #fbbf24;border-radius:var(--radius-sm);margin-top:var(--space-sm);font-size:.8125rem}.email-match-notification-v2 span{color:var(--text-secondary)}.use-client-btn-v2{background:var(--primary-color);color:#fff;border:none;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.use-client-btn-v2:hover{background:var(--primary-hover)}.form-subsection{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px dashed var(--border-light)}.subsection-label{display:flex;align-items:center;gap:var(--space-sm);font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-md)}.subsection-label svg{color:var(--text-light)}.address-row-v2{display:grid;grid-template-columns:2fr 80px 120px;gap:var(--space-md);margin-top:var(--space-md)}.address-row-v2 .state-input input{text-transform:uppercase;text-align:center}.paint-selection-v2{display:flex;flex-direction:column;gap:var(--space-md)}.paint-row-v2{display:flex;align-items:flex-start;gap:var(--space-lg);padding:var(--space-md);background:var(--bg-color);border-radius:var(--radius-md);border:1px solid var(--border-light)}.paint-type-label{display:flex;align-items:center;gap:var(--space-sm);font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;min-width:70px;padding-top:1.75rem}.paint-type-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.paint-type-label.body{color:#374151}.paint-type-label.body .paint-type-dot{background:linear-gradient(135deg,#6b7280,#374151)}.paint-type-label.trim{color:#1e40af}.paint-type-label.trim .paint-type-dot{background:linear-gradient(135deg,#3b82f6,#1e40af)}.paint-type-label.accent{color:#7c2d12}.paint-type-label.accent .paint-type-dot{background:linear-gradient(135deg,#ea580c,#7c2d12)}.paint-row-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);flex:1}.checkbox-row-v2{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-lg);margin-bottom:var(--space-lg)}.checkbox-label-v2{display:flex;align-items:flex-start;gap:var(--space-md);cursor:pointer;padding:var(--space-md);background:var(--bg-color);border:1px solid var(--border-light);border-radius:var(--radius-md);flex:1;min-width:220px;transition:all var(--transition-fast)}.checkbox-label-v2:hover{border-color:var(--primary-color);background:var(--primary-subtle)}.checkbox-label-v2 input[type=checkbox]{display:none}.checkbox-custom{width:22px;height:22px;border:2px solid var(--border-color);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast);margin-top:2px}.checkbox-label-v2 input[type=checkbox]:checked+.checkbox-custom{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label-v2 input[type=checkbox]:checked+.checkbox-custom:after{content:"";width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.checkbox-text{display:flex;flex-direction:column;gap:2px}.checkbox-text strong{font-size:.875rem;font-weight:600;color:var(--text-color)}.checkbox-text small{font-size:.75rem;color:var(--text-muted)}.job-details-group label{display:flex;align-items:center;gap:var(--space-sm)}.job-details-group label svg{color:var(--text-light)}.job-details-group textarea{min-height:100px}@media(max-width:1024px){.form-section-card{padding:var(--space-lg)}.paint-row-v2{flex-direction:column;gap:var(--space-md)}.paint-type-label{padding-top:0;padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-light);width:100%}.paint-row-fields{width:100%}.address-row-v2{grid-template-columns:1fr 1fr}.address-row-v2 .form-group-v2:first-child{grid-column:1 / -1}.checkbox-row-v2{flex-direction:column}.checkbox-label-v2{min-width:100%}}@media(max-width:640px){.estimate-form-v2{gap:var(--space-md)}.form-section-card{padding:var(--space-md);border-radius:var(--radius-md)}.form-section-card .section-header{gap:var(--space-sm);margin-bottom:var(--space-md);padding-bottom:var(--space-sm)}.section-icon{width:36px;height:36px}.section-icon svg{width:18px;height:18px}.form-section-card .section-header h3{font-size:.9375rem}.paint-row-fields,.address-row-v2{grid-template-columns:1fr}.address-row-v2 .state-input,.address-row-v2 .zip-input{width:100%}.selected-client-v2{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.selected-client-v2 .selected-client-phone{border-left:none;padding-left:0;margin-left:0}.clear-client-btn-v2{position:absolute;top:var(--space-sm);right:var(--space-sm)}.selected-client-v2{position:relative;padding-right:2.5rem}}
