*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9fafb;color:#111827;line-height:1.6}.loading-screen{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#6b7280}.container{max-width:1200px;margin:0 auto;padding:0 2rem}a{color:#7c3aed;text-decoration:none;transition:color .2s}a:hover{color:#6d28d9}button{font-family:inherit}*:focus{outline:2px solid #7c3aed;outline-offset:2px}button:focus,a:focus{outline:2px solid #7c3aed;outline-offset:2px}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-text-fill-color:#111827!important;-webkit-box-shadow:0 0 0 1000px #ffffff inset!important;box-shadow:0 0 0 1000px #fff inset!important;transition:background-color 5000s ease-in-out 0s!important;color:#111827!important}input[type=email]:-webkit-autofill,input[type=password]:-webkit-autofill,input[type=text]:-webkit-autofill{-webkit-text-fill-color:#111827!important;-webkit-box-shadow:0 0 0 1000px #ffffff inset!important;transition:background-color 5000s ease-in-out 0s!important}input[type=email],input[type=password],input[type=text],input[type=number],input[type=date]{color:#111827!important;-webkit-text-fill-color:#111827!important}select,textarea{color:#111827!important}input::placeholder,textarea::placeholder{color:#9ca3af!important;-webkit-text-fill-color:#9ca3af!important;opacity:1}@media (prefers-color-scheme: dark){input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-text-fill-color:#f9fafb!important;-webkit-box-shadow:0 0 0 1000px #1f2937 inset!important;transition:background-color 5000s ease-in-out 0s!important}}.landing-page{min-height:100vh;min-height:100dvh;background:#fff}.landing-header{border-bottom:1px solid #e5e7eb;padding:1rem 0;background:#fff;position:sticky;top:0;z-index:100}.landing-header .container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit}.logo-icon{font-size:2rem}.logo-img{height:44px;width:auto}.footer-logo-img{height:36px}.logo h1{font-size:1.5rem;font-weight:700;color:#111827;margin:0}.tagline,.footer-tagline{font-size:.75rem;color:#6b7280;margin:0}.landing-nav{display:flex;align-items:center;gap:.25rem}.nav-link{color:#4b5563;text-decoration:none;font-weight:500;font-size:.9375rem;padding:.5rem .75rem;border-radius:.375rem;transition:color .2s,background .2s}.nav-link:hover{color:#7c3aed;background:#f5f3ff}.btn-text{color:#7c3aed;text-decoration:none;font-weight:500;padding:.5rem 1rem}.btn-text:hover{color:#6d28d9}.btn-nav-primary{background:#7c3aed;color:#fff;text-decoration:none;font-weight:600;font-size:.875rem;padding:.5rem 1.25rem;border-radius:.5rem;transition:background .2s,transform .2s}.btn-nav-primary:hover{background:#6d28d9;color:#fff;transform:translateY(-1px)}.get-started-buttons{display:flex;gap:.5rem;margin-left:.5rem}.btn-nav-secondary{background:#fff;color:#7c3aed;text-decoration:none;font-weight:600;font-size:.875rem;padding:.5rem 1.25rem;border-radius:.5rem;border:2px solid #7c3aed;transition:background .2s,transform .2s}.btn-nav-secondary:hover{background:#f5f3ff;color:#7c3aed;transform:translateY(-1px)}.mobile-nav-toggle{display:none;background:none;border:1px solid #e5e7eb;font-size:1.25rem;padding:.5rem .75rem;border-radius:.375rem;cursor:pointer;color:#374151}.hero{padding:5rem 0 6rem;background:linear-gradient(135deg,#f9fafb,#f5f3ff,#fff)}.hero .container{max-width:1200px;margin:0 auto;padding:0 2rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.hero-badge{display:inline-block;background:#f5f3ff;color:#7c3aed;font-size:.8125rem;font-weight:600;padding:.375rem 1rem;border-radius:9999px;border:1px solid #e9d5ff;margin-bottom:1.5rem}.hero-title{font-size:3.5rem;font-weight:700;line-height:1.1;color:#111827;margin:0 0 1.5rem}.gradient-text{background:linear-gradient(135deg,#7c3aed,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.25rem;color:#6b7280;line-height:1.6;margin:0 0 2rem}.cta-buttons{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.btn-primary-large,.btn-secondary-large{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.75rem;font-size:1rem;font-weight:600;border-radius:.5rem;text-decoration:none;transition:all .2s;border:none;cursor:pointer}.btn-primary-large{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}.btn-primary-large:hover{color:#fff;transform:translateY(-2px);box-shadow:0 10px 25px #7c3aed4d}.btn-secondary-large{background:#fff;color:#7c3aed;border:2px solid #7c3aed}.btn-secondary-large:hover{background:#f5f3ff;color:#7c3aed;transform:translateY(-2px)}.arrow{width:18px;height:18px}.hero-note{color:#9ca3af;font-size:.875rem;margin:0}.hero-app-badge{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.5rem 1rem;background:#f5f3ff;border:1px solid #e9d5ff;border-radius:2rem;color:#7c3aed;font-size:.8125rem;font-weight:500}.hero-app-badge svg{flex-shrink:0}.calculator-preview{background:#fff;border-radius:12px;box-shadow:0 25px 60px #0000001f;overflow:hidden;border:1px solid #e5e7eb}.preview-header{background:#1f2937;padding:.75rem 1rem;display:flex;align-items:center;gap:.5rem}.preview-dot{width:12px;height:12px;border-radius:50%}.preview-dot.red{background:#ef4444}.preview-dot.yellow{background:#f59e0b}.preview-dot.green{background:#22c55e}.preview-title{color:#9ca3af;font-size:.75rem;margin-left:.5rem}.preview-content{padding:1.5rem}.preview-label{font-size:.8125rem;color:#6b7280;margin-bottom:.5rem}.preview-label strong{color:#111827}.preview-recommendation{display:flex;align-items:center;gap:.75rem;background:#f9fafb;padding:.875rem 1rem;border-radius:.5rem;margin-bottom:1rem;border:1px solid #f3f4f6}.preview-recommendation.rec-good{background:#f0fdf4;border-color:#dcfce7}.rec-icon{font-size:1.5rem}.rec-title{font-weight:600;color:#111827;font-size:.875rem}.rec-amount{color:#7c3aed;font-weight:700;font-size:1rem}.rec-amount.good{color:#16a34a}.stats-bar{background:#7c3aed;padding:2.5rem 0}.stats-bar .container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-around;flex-wrap:wrap;gap:2rem}.stats-bar .stat-item{text-align:center}.stats-bar .stat-number{font-size:2.25rem;font-weight:800;color:#fff}.stats-bar .stat-label{font-size:.875rem;color:#fff;margin-top:.25rem}.audience-section{padding:6rem 0;background:#f9fafb}.audience-section .container{max-width:1200px;margin:0 auto;padding:0 2rem}.section-title{text-align:center;font-size:2.25rem;font-weight:700;margin-bottom:.75rem;color:#111827}.section-subtitle{text-align:center;font-size:1.125rem;color:#6b7280;max-width:640px;margin:0 auto 3rem;line-height:1.6}.audience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.audience-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:2rem;display:flex;flex-direction:column;transition:all .2s;position:relative}.audience-card:hover{border-color:#c4b5fd;box-shadow:0 8px 24px #7c3aed14;transform:translateY(-2px)}.audience-card.featured{border-color:#7c3aed;box-shadow:0 8px 24px #7c3aed1f}.audience-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:#7c3aed;color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.25rem 1rem;border-radius:9999px;white-space:nowrap}.audience-icon{font-size:2.5rem;margin-bottom:1rem}.audience-card h3{font-size:1.25rem;font-weight:700;color:#111827;margin:0 0 .75rem}.audience-card>p{color:#6b7280;line-height:1.6;margin:0 0 1rem}.audience-card ul{list-style:none;padding:0;margin:0 0 1.5rem;flex:1}.audience-card li{padding:.375rem 0;font-size:.875rem;color:#4b5563}.audience-card li:before{content:"✓ ";color:#7c3aed;font-weight:700}.audience-cta{color:#7c3aed;font-weight:600;text-decoration:none;font-size:.9375rem}.audience-cta:hover{color:#6d28d9}.features{padding:6rem 0;background:#fff}.features .container{max-width:1200px;margin:0 auto;padding:0 2rem}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.feature-card{padding:1.75rem;border:1px solid #e5e7eb;border-radius:.75rem;transition:all .2s}.feature-card:hover{border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed1a;transform:translateY(-2px)}.feature-icon{font-size:2rem;margin-bottom:.75rem}.feature-card h3{font-size:1.125rem;font-weight:600;margin-bottom:.5rem;color:#111827}.feature-card p{color:#6b7280;line-height:1.6;margin:0;font-size:.9375rem}.features-cta{text-align:center;margin-top:2.5rem}.how-it-works{padding:6rem 0;background:#f9fafb}.how-it-works .container{max-width:1200px;margin:0 auto;padding:0 2rem}.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}.step-card{text-align:center;padding:2rem 1.5rem}.step-number{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;font-size:1.5rem;font-weight:700;border-radius:50%;margin-bottom:1.25rem}.step-card h3{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .5rem}.step-card p{color:#6b7280;line-height:1.6;margin:0;font-size:.9375rem}.pricing-preview{padding:6rem 0;background:#fff}.pricing-preview .container{max-width:1200px;margin:0 auto;padding:0 2rem}.pricing-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;max-width:1200px;margin:0 auto}.pricing-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;display:flex;flex-direction:column;position:relative;transition:all .2s}.pricing-card:hover{border-color:#c4b5fd;box-shadow:0 4px 12px #7c3aed14}.pricing-card.featured{border-color:#7c3aed;box-shadow:0 8px 24px #7c3aed1f;padding-top:2rem}.pricing-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:#7c3aed;color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.25rem 1rem;border-radius:9999px;white-space:nowrap}.pricing-card h3{font-size:1.25rem;font-weight:700;color:#111827;margin:0 0 .75rem}.pricing-price{margin-bottom:.75rem;display:flex;align-items:baseline;justify-content:center;gap:.35rem}.price-amount{font-size:2rem;font-weight:800;color:#111827}.price-period{font-size:1rem;color:#6b7280}.pricing-card>p{color:#6b7280;font-size:.875rem;margin:0 0 1rem}.pricing-card ul{list-style:none;padding:0;margin:0 0 1.5rem;flex:1}.pricing-card li{padding:.375rem 0;font-size:.875rem;color:#4b5563}.pricing-card li:before{content:"✓ ";color:#7c3aed;font-weight:700}.pricing-btn{display:block;text-align:center;padding:.75rem 1.5rem;border-radius:.5rem;text-decoration:none;font-weight:600;font-size:.875rem;transition:all .2s}.pricing-btn.primary{background:#7c3aed;color:#fff}.pricing-btn.primary:hover{background:#6d28d9}.pricing-btn.secondary{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb}.pricing-btn.secondary:hover{background:#e5e7eb}.pricing-link{text-align:center;margin-top:2rem}.pricing-link a{color:#7c3aed;font-weight:600;text-decoration:none;font-size:.9375rem}.pricing-link a:hover{color:#6d28d9}.final-cta{padding:5rem 0;background:linear-gradient(135deg,#7c3aed,#6d28d9);text-align:center}.final-cta .container{max-width:700px;margin:0 auto;padding:0 2rem}.final-cta h2{font-size:2.25rem;font-weight:700;color:#fff;margin:0 0 .75rem}.final-cta p{color:#fff;font-size:1.125rem;margin:0 0 2rem;line-height:1.6}.final-cta .cta-buttons{justify-content:center}.final-cta .btn-primary-large{background:#fff;color:#7c3aed}.final-cta .btn-primary-large:hover{color:#7c3aed;box-shadow:0 10px 25px #0003}.final-cta .btn-secondary-large{background:transparent;color:#fff;border-color:#ffffff80}.final-cta .btn-secondary-large:hover{background:#ffffff1a;border-color:#fff;color:#fff}.landing-footer{background:#111827;color:#d1d5db;padding:4rem 0 2rem}.landing-footer .container{max-width:1200px;margin:0 auto;padding:0 2rem}.footer-content{display:grid;grid-template-columns:1fr 2fr;gap:3rem;margin-bottom:3rem}.footer-brand .logo h3{color:#fff;margin-bottom:0}.footer-description{margin-top:1rem;line-height:1.6}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.footer-links h4{color:#fff;margin-bottom:1rem;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.footer-links a{display:block;color:#d1d5db;text-decoration:none;margin-bottom:.5rem;font-size:.9375rem;transition:color .2s}.footer-links a:hover{color:#fff}.footer-bottom{border-top:1px solid #374151;padding-top:2rem;display:flex;justify-content:space-between;align-items:center}.footer-bottom p{margin:0;font-size:.875rem}.footer-attribution{color:#9ca3af}@media (max-width: 1024px){.pricing-cards{grid-template-columns:repeat(2,1fr);max-width:640px}.features-grid,.steps-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.landing-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;padding:1.25rem 2rem 1.5rem;border-bottom:2px solid #e9d5ff;box-shadow:0 8px 24px #7c3aed1f,0 2px 8px #00000014;z-index:100;gap:.25rem}.landing-nav.mobile-open{display:flex;animation:navSlideDown .2s ease-out}@keyframes navSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.landing-nav .nav-link{padding:.6rem .75rem;font-size:1rem;border-radius:.5rem;color:#374151;font-weight:500}.landing-nav .nav-link:hover{background:#f5f3ff;color:#7c3aed}.landing-nav .btn-text{padding:.6rem .75rem;font-size:1rem;border-radius:.5rem;text-align:center}.mobile-nav-toggle{display:block}.get-started-buttons{margin-left:0;width:100%;justify-content:center;margin-top:.5rem;padding-top:.75rem;border-top:1px solid #f3e8ff}.btn-nav-primary,.btn-nav-secondary{text-align:center;flex:1}.hero .container{grid-template-columns:1fr;gap:2rem}.hero-title{font-size:2.5rem}.hero-image{order:1}.cta-buttons{flex-direction:column}.stats-bar .container{flex-direction:column;gap:1.5rem}.audience-grid,.features-grid,.steps-grid{grid-template-columns:1fr}.pricing-cards{grid-template-columns:1fr;max-width:400px}.billing-toggle{flex-wrap:wrap;gap:.5rem}.billing-toggle-option{padding:.35rem .9rem;font-size:.78rem}.billing-toggle-save{font-size:.65rem}.footer-content{grid-template-columns:1fr;gap:2rem}.footer-links{grid-template-columns:1fr;gap:1.5rem}.footer-bottom{flex-direction:column;gap:.5rem;text-align:center}.final-cta h2,.section-title{font-size:1.75rem}}.page-hero{padding:4rem 0 3rem;background:linear-gradient(135deg,#f9fafb,#f5f3ff,#fff);text-align:center}.page-hero .container{max-width:800px;margin:0 auto;padding:0 2rem}.page-hero-title{font-size:2.75rem;font-weight:700;line-height:1.2;color:#111827;margin:0 0 1rem}.page-hero-subtitle{font-size:1.125rem;color:#6b7280;line-height:1.6;margin:0}.feature-detail{padding:5rem 0;background:#fff}.feature-detail.alt{background:#f9fafb}.feature-detail .container{max-width:1200px;margin:0 auto;padding:0 2rem}.feature-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.feature-detail-grid.reverse{direction:rtl}.feature-detail-grid.reverse>*{direction:ltr}.feature-detail-badge{display:inline-block;background:#f5f3ff;color:#7c3aed;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.25rem .75rem;border-radius:9999px;margin-bottom:1rem}.feature-detail-content h2{font-size:2rem;font-weight:700;color:#111827;margin:0 0 1rem}.feature-detail-content>p{font-size:1.0625rem;color:#6b7280;line-height:1.7;margin:0 0 1.5rem}.feature-detail-list{list-style:none;padding:0;margin:0}.feature-detail-list li{padding:.375rem 0;font-size:.9375rem;color:#4b5563}.feature-detail-list li:before{content:"✓ ";color:#7c3aed;font-weight:700}.feature-visual-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;box-shadow:0 4px 16px #0000000f}.fv-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid #f3f4f6;font-size:.875rem}.fv-row:last-child{border-bottom:none}.fv-label{flex:1;font-weight:500;color:#374151}.fv-value{font-weight:700;padding:.125rem .5rem;border-radius:.25rem;font-size:.8125rem}.fv-value.low{background:#fef2f2;color:#dc2626}.fv-value.high{background:#fff7ed;color:#ea580c}.fv-value.ok{background:#f0fdf4;color:#16a34a}.fv-arrow{color:#9ca3af}.fv-target{font-weight:600;color:#7c3aed;font-size:.8125rem}.fv-customer{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid #f3f4f6}.fv-customer:last-child{border-bottom:none}.fv-avatar{width:40px;height:40px;border-radius:50%;background:#7c3aed;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.fv-meta{font-size:.75rem;color:#9ca3af}.fv-route-header{font-weight:700;color:#111827;font-size:.9375rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.fv-stop{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;font-size:.875rem;color:#6b7280}.fv-stop.done{color:#9ca3af;text-decoration:line-through}.fv-stop.active{color:#111827;font-weight:600}.fv-stop-status{font-size:.75rem}.fv-stop-time{margin-left:auto;font-size:.75rem;color:#9ca3af}.fv-chart-label{font-weight:600;font-size:.875rem;color:#374151;margin-bottom:1rem}.fv-chart{display:flex;align-items:flex-end;gap:.5rem;height:120px;padding:0 .5rem}.fv-chart-bar{flex:1;background:#e9d5ff;border-radius:.25rem .25rem 0 0;transition:height .3s}.fv-chart-bar.active{background:#7c3aed}.fv-chart-range{text-align:center;margin-top:.75rem;font-size:.75rem;color:#9ca3af}.pricing-section{padding:4rem 0;background:#fff}.pricing-section.alt{background:#f9fafb}.pricing-section .container{max-width:1200px;margin:0 auto;padding:0 2rem}.pricing-cards.homeowner-single{grid-template-columns:1fr;max-width:480px}.pricing-yearly{font-size:.75rem;color:#16a34a;margin-bottom:.75rem;font-weight:500}.billing-toggle{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:2rem}.pricing-price .price-crossed{font-size:1rem;color:#9ca3af;text-decoration:line-through;margin-right:.25rem}.processing-fees-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:2rem auto;max-width:800px}.processing-fee-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;padding:24px 16px;text-align:center;border:1px solid #e5e7eb;transition:transform .2s,box-shadow .2s}.processing-fee-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.processing-fee-card.featured{border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed26}.processing-fee-tier{font-size:13px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.processing-fee-card.featured .processing-fee-tier{color:#7c3aed}.processing-fee-amount{font-size:2rem;font-weight:800;color:#1f2937;margin-bottom:4px}.processing-fee-card.featured .processing-fee-amount{color:#7c3aed}.processing-fee-note{font-size:12px;color:#9ca3af;margin:0}.processing-fees-disclaimer{text-align:center;font-size:.85rem;color:#6b7280;max-width:700px;margin:0 auto;line-height:1.6}@media (max-width: 640px){.processing-fees-grid{grid-template-columns:repeat(2,1fr);gap:12px}.processing-fee-card{padding:18px 12px}.processing-fee-amount{font-size:1.5rem}}.faq-section{padding:5rem 0;background:#f9fafb}.faq-section .container{max-width:900px;margin:0 auto;padding:0 2rem}.faq-section .faq-accordion-item{background:#fff}.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.faq-item{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.faq-item h3{font-size:1rem;font-weight:600;color:#111827;margin:0 0 .5rem}.faq-item p{font-size:.9375rem;color:#6b7280;line-height:1.6;margin:0}.faq-item a{color:#7c3aed;text-decoration:none}.faq-item a:hover{text-decoration:underline}.contact-form-section{padding:0 0 4rem;background:#fff;margin-top:-2rem}.contact-form-section .container{max-width:720px;margin:0 auto;padding:0 2rem}.contact-form-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:2.5rem;box-shadow:0 4px 16px #0000000f}.contact-form-title{font-size:1.5rem;font-weight:700;color:#111827;margin:0 0 .5rem}.contact-form-subtitle{font-size:.9375rem;color:#6b7280;margin:0 0 1.5rem;line-height:1.5}.contact-form{display:flex;flex-direction:column;gap:1.25rem}.contact-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.contact-form .form-group{display:flex;flex-direction:column;gap:.5rem}.contact-form .form-group label{font-size:.875rem;font-weight:500;color:#374151}.contact-form .form-group input{padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;transition:all .2s;background:#fff;font-family:inherit}.contact-form .form-group input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.contact-form .form-group input:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.contact-select{padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;transition:all .2s;background:#fff;font-family:inherit;cursor:pointer}.contact-select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.contact-select:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.contact-textarea{padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;transition:all .2s;background:#fff;font-family:inherit;resize:vertical;min-height:120px}.contact-textarea:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.contact-textarea:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.contact-char-count{font-size:.75rem;color:#9ca3af;text-align:right;margin-top:-.25rem}.contact-form .btn-primary-full{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%}.contact-form .btn-primary-full:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #7c3aed4d}.contact-form .btn-primary-full:disabled{opacity:.6;cursor:not-allowed;transform:none}.contact-alert{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border-radius:.5rem;margin-bottom:.5rem;font-size:.9375rem}.contact-alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.contact-success{text-align:center;padding:2rem 1rem}.contact-success-icon{width:64px;height:64px;border-radius:50%;background:#f0fdf4;border:2px solid #bbf7d0;color:#16a34a;font-size:1.75rem;display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem}.contact-success h2{font-size:1.5rem;font-weight:700;color:#111827;margin:0 0 .75rem}.contact-success p{font-size:1rem;color:#6b7280;line-height:1.6;margin:0 auto;max-width:480px}.contact-info-section{padding:3rem 0 4rem;background:#f9fafb}.contact-info-section .container{max-width:960px;margin:0 auto;padding:0 2rem}.contact-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.contact-info-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.25rem;text-align:center;transition:all .2s}.contact-info-card:hover{border-color:#c4b5fd;box-shadow:0 4px 12px #7c3aed14;transform:translateY(-2px)}.contact-info-icon{font-size:1.75rem;margin-bottom:.5rem}.contact-info-card h3{font-size:1rem;font-weight:600;color:#111827;margin:0 0 .25rem}.contact-info-card p{font-size:.875rem;color:#6b7280;line-height:1.5;margin:0 0 .5rem}.contact-link{color:#7c3aed;font-weight:600;text-decoration:none;font-size:.875rem}.contact-link:hover{color:#6d28d9}.contact-faq-section{padding:4rem 0;background:#fff}.contact-faq-section .container{max-width:720px;margin:0 auto;padding:0 2rem}.contact-faq-section .section-title{margin-bottom:2rem}.faq-accordion{display:flex;flex-direction:column;gap:.75rem}.faq-accordion-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;transition:border-color .2s}.faq-accordion-item[open]{border-color:#c4b5fd}.faq-accordion-item summary{padding:1rem 1.25rem;font-size:1rem;font-weight:600;color:#111827;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;border:none;background:none;outline:none}.faq-accordion-item summary::-webkit-details-marker{display:none}.faq-accordion-item summary::marker{display:none;content:""}.faq-accordion-item summary:after{content:"+";font-size:1.25rem;font-weight:400;color:#7c3aed;flex-shrink:0;margin-left:1rem}.faq-accordion-item[open] summary:after{content:"−"}.faq-accordion-item[open] summary{border-bottom:1px solid #e5e7eb}.faq-accordion-item summary:hover{color:#7c3aed}.faq-accordion-item p{padding:1rem 1.25rem;margin:0;font-size:.9375rem;color:#6b7280;line-height:1.6}.faq-accordion-item a{color:#7c3aed;text-decoration:none}.faq-accordion-item a:hover{text-decoration:underline}@media (max-width: 768px){.page-hero-title{font-size:2rem}.feature-detail-grid,.feature-detail-grid.reverse{grid-template-columns:1fr;gap:2rem;direction:ltr}.faq-grid{grid-template-columns:1fr}.contact-form-section{padding:0 0 2rem}.contact-form-section .container{padding:0 1rem}.contact-form-row{grid-template-columns:1fr}.contact-form-card{padding:1.25rem;border-radius:.5rem}.contact-form-title{font-size:1.25rem}.contact-form .form-group input,.contact-select,.contact-textarea{font-size:16px}.contact-form .btn-primary-full{padding:1rem;font-size:1rem}.contact-info-section{padding:2rem 0}.contact-info-section .container{padding:0 1rem}.contact-info-grid{grid-template-columns:1fr;gap:1rem}.contact-info-card{padding:1rem}.contact-faq-section{padding:2rem 0 3rem}.contact-faq-section .container{padding:0 1rem}.contact-faq-section .section-title{font-size:1.5rem;margin-bottom:1.25rem}.faq-accordion{gap:.5rem}.faq-accordion-item summary{padding:.875rem 1rem;font-size:.9375rem}.faq-accordion-item p{padding:.75rem 1rem;font-size:.875rem}.contact-success{padding:1.5rem .5rem}.contact-success-icon{width:56px;height:56px;font-size:1.5rem}.contact-success h2{font-size:1.25rem}.contact-success p{font-size:.9375rem}}@media (max-width: 480px){.contact-form-card{padding:1rem;box-shadow:0 2px 8px #0000000a}.contact-form-title{font-size:1.125rem}.contact-form-subtitle{font-size:.875rem}.contact-form{gap:1rem}.contact-info-card{text-align:center;padding:1.25rem 1rem}.contact-info-icon{font-size:1.5rem}.contact-info-card h3{font-size:.9375rem}.contact-info-card p,.contact-link{font-size:.8125rem}.page-hero-subtitle{font-size:1rem;padding:0 .5rem}.faq-accordion-item summary{padding:.75rem .875rem;font-size:.875rem;gap:.5rem}.faq-accordion-item p{padding:.625rem .875rem .875rem;font-size:.8125rem}.final-cta h2{font-size:1.5rem}.final-cta p{font-size:.9375rem}}.compare-section{padding:5rem 0}.compare-section.alt{background:#f9fafb}.compare-section-title{font-size:2rem;font-weight:800;color:#111827;text-align:center;margin-bottom:.5rem}.compare-section-subtitle{font-size:1.1rem;color:#6b7280;text-align:center;margin-bottom:3rem}.compare-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.compare-table{width:100%;min-width:640px;border-collapse:collapse;font-size:.9375rem}.compare-table thead th{padding:1rem 1.25rem;text-align:center;font-weight:700;font-size:.9375rem;color:#374151;border-bottom:2px solid #e5e7eb;background:#f9fafb;white-space:nowrap}.compare-table thead th:first-child{text-align:left;border-top-left-radius:12px}.compare-table thead th:last-child{border-top-right-radius:12px}.compare-table thead .compare-highlight-col{background:#f5f3ff;color:#7c3aed;font-weight:800}.compare-table tbody td{padding:.75rem 1.25rem;text-align:center;border-bottom:1px solid #f3f4f6;color:#374151}.compare-table tbody td:first-child{text-align:left}.compare-table tbody .compare-highlight-col{background:#faf8ff}.compare-category-row td{font-weight:700;font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;color:#6b7280!important;background:#f9fafb!important;padding:.875rem 1.25rem!important;border-bottom:1px solid #e5e7eb!important}.compare-beta-badge{display:inline-block;font-size:.6rem;font-weight:700;color:#7c3aed;background:#ede9fe;padding:.1rem .4rem;border-radius:999px;margin-left:.4rem;text-transform:none;letter-spacing:0;vertical-align:middle}.compare-feature-col{width:40%}.compare-feature-cell{font-weight:500;color:#1f2937}.compare-check{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#ecfdf5;color:#059669;font-weight:700;font-size:.875rem}.compare-x{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#f3f4f6;color:#9ca3af;font-weight:700;font-size:1rem}.compare-partial{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#fef3c7;color:#d97706;font-weight:700;font-size:.9375rem}.compare-pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1000px;margin:0 auto}.compare-pricing-card{position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:2rem 1.5rem;text-align:center}.compare-pricing-card.highlight{border:2px solid #7c3aed;box-shadow:0 4px 24px #7c3aed1f}.compare-pricing-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;font-size:.75rem;font-weight:700;padding:.25rem 1rem;border-radius:20px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.compare-pricing-card h3{font-size:1.25rem;font-weight:700;color:#111827;margin-bottom:.75rem}.compare-pricing-amount{margin-bottom:.25rem}.compare-price{font-size:2.5rem;font-weight:800;color:#111827}.compare-pricing-card.highlight .compare-price{color:#7c3aed}.compare-price-period{font-size:1rem;color:#6b7280;font-weight:500}.compare-pricing-note{font-size:.875rem;color:#6b7280;margin-bottom:1.25rem}.compare-pricing-details{list-style:none;padding:0;margin:0 0 1.5rem;text-align:left}.compare-pricing-details li{font-size:.875rem;color:#374151;padding:.4rem 0 .4rem 1.25rem;position:relative}.compare-pricing-details li:before{content:"✓";position:absolute;left:0;color:#059669;font-weight:700;font-size:.8125rem}.compare-pricing-card:not(.highlight) .compare-pricing-details li:before{content:"•";color:#9ca3af}.compare-pricing-card .btn-primary-large{width:100%;text-align:center;margin-top:auto}.compare-why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}.compare-why-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.75rem 1.5rem;text-align:center;transition:border-color .2s,box-shadow .2s}.compare-why-card:hover{border-color:#c4b5fd;box-shadow:0 4px 16px #7c3aed14}.compare-why-icon{font-size:2rem;margin-bottom:.75rem}.compare-why-card h3{font-size:1.05rem;font-weight:700;color:#111827;margin-bottom:.5rem}.compare-why-card p{font-size:.875rem;color:#6b7280;line-height:1.6}@media (max-width: 1024px){.compare-why-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.compare-section{padding:3rem 0}.compare-section-title{font-size:1.5rem}.compare-section-subtitle{font-size:.9375rem;margin-bottom:2rem}.compare-pricing-grid{grid-template-columns:1fr;max-width:400px}.compare-why-grid{grid-template-columns:1fr;max-width:400px;margin:0 auto}.compare-table{font-size:.8125rem}.compare-table thead th,.compare-table tbody td{padding:.625rem .75rem}}@media (max-width: 640px){.compare-table{min-width:unset;font-size:.8125rem}.compare-table thead{display:none}.compare-table tbody{display:flex;flex-direction:column}.compare-category-row{display:block!important}.compare-category-row td{display:block;text-align:left!important;padding:.75rem 1rem!important}.compare-table tbody tr:not(.compare-category-row){display:flex;flex-wrap:wrap;padding:.75rem 1rem;border-bottom:1px solid #f3f4f6}.compare-table tbody tr:not(.compare-category-row) td{border-bottom:none}.compare-table tbody tr:not(.compare-category-row) td:first-child{width:100%;text-align:left;font-weight:600;padding:0 0 .5rem;font-size:.85rem}.compare-table tbody tr:not(.compare-category-row) td:not(:first-child){flex:1;text-align:center;padding:.25rem 0}.compare-table tbody tr:not(.compare-category-row) td:nth-child(2):before{content:"PoolChem";display:block;font-size:.6rem;font-weight:700;color:#7c3aed;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem}.compare-table tbody tr:not(.compare-category-row) td:nth-child(3):before{content:"Skimmer";display:block;font-size:.6rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem}.compare-table tbody tr:not(.compare-category-row) td:nth-child(4):before{content:"Pool360";display:block;font-size:.6rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem}.compare-table tbody tr:not(.compare-category-row) .compare-highlight-col{background:transparent}}@media (max-width: 480px){.compare-section-title{font-size:1.25rem}.compare-check,.compare-x,.compare-partial{width:24px;height:24px;font-size:.75rem}}.calc-hero{padding:3rem 0 2rem;background:linear-gradient(135deg,#f9fafb,#f5f3ff,#fff);text-align:center}.calc-hero .container{max-width:800px;margin:0 auto;padding:0 2rem}.calc-hero-title{font-size:2.5rem;font-weight:700;color:#111827;margin:0 0 1rem;line-height:1.2}.calc-hero-subtitle{font-size:1.125rem;color:#6b7280;margin:0;line-height:1.6}.calc-section{padding:2rem 0 4rem}.calc-section .container{max-width:800px;margin:0 auto;padding:0 2rem}.calc-form{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;padding:2rem}.calc-group{margin-bottom:2rem}.calc-group:last-of-type{margin-bottom:1.5rem}.calc-group-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .5rem;padding-bottom:.5rem;border-bottom:1px solid #f3f4f6}.calc-group-hint{font-size:.875rem;color:#9ca3af;margin:0 0 1rem}.calc-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.calc-field label{display:block;font-size:.8125rem;font-weight:500;color:#374151;margin-bottom:.25rem}.calc-field input,.calc-field select{width:100%;padding:.625rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.9375rem;color:#111827;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.calc-field input:focus,.calc-field select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.calc-field input::placeholder{color:#9ca3af}.calc-error{background:#fef2f2;color:#dc2626;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;margin-bottom:1rem;border:1px solid #fecaca}.calc-submit{width:100%;padding:.875rem;background:#7c3aed;color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}.calc-submit:hover:not(:disabled){background:#6d28d9;transform:translateY(-1px)}.calc-submit:disabled{opacity:.7;cursor:not-allowed}.calc-results{margin-top:2rem;background:#fff;border:1px solid #e5e7eb;border-radius:1rem;padding:2rem}.calc-results-title{font-size:1.5rem;font-weight:700;color:#111827;margin:0 0 1.5rem}.calc-statuses{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.calc-status-badge{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:1px solid;border-radius:9999px;font-size:.8125rem;background:#fff}.calc-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.calc-status-name{color:#374151;font-weight:500}.calc-status-label{font-weight:600}.calc-rec-list{display:flex;flex-direction:column;gap:.75rem}.calc-rec-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem 1.25rem}.calc-rec-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem}.calc-rec-chemical{font-weight:600;color:#111827;font-size:1rem}.calc-rec-amount{font-weight:700;color:#7c3aed;font-size:1rem;white-space:nowrap}.calc-rec-reason{font-size:.875rem;color:#6b7280;margin:0;line-height:1.5}.calc-rec-warning{font-size:.8125rem;color:#dc2626;margin:.5rem 0 0;font-weight:500}.calc-rec-notes{font-size:.8125rem;color:#6b7280;margin:.375rem 0 0;font-style:italic}.calc-rec-wait{font-size:.8125rem;color:#f59e0b;margin:.375rem 0 0;font-weight:500}.calc-all-good{text-align:center;padding:2rem;color:#10b981;font-size:1.125rem;font-weight:600;background:#ecfdf5;border-radius:.75rem;border:1px solid #a7f3d0}.calc-cta{margin-top:2rem;padding-top:2rem;border-top:1px solid #e5e7eb;text-align:center}.calc-cta h3{font-size:1.25rem;font-weight:600;color:#111827;margin:0 0 1.25rem}.calc-cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}@media (max-width: 640px){.calc-hero-title{font-size:1.75rem}.calc-hero-subtitle{font-size:1rem}.calc-fields{grid-template-columns:1fr}.calc-form,.calc-results{padding:1.25rem}.calc-rec-header{flex-direction:column;align-items:flex-start;gap:.25rem}.calc-cta-buttons{flex-direction:column}.calc-cta-buttons a{text-align:center}}.auth-page{min-height:100vh;min-height:100dvh;background:linear-gradient(135deg,#f9fafb,#e5e7eb);display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.auth-container{width:100%;max-width:480px}.auth-container-wide{max-width:680px}.auth-header{text-align:center;margin-bottom:2rem}.auth-logo{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;transition:transform .2s}.auth-logo:hover{transform:scale(1.02)}.auth-logo .logo-icon{font-size:2.5rem}.auth-logo h1{font-size:1.75rem;font-weight:700;color:#111827;margin:0;text-align:left}.auth-logo-img{height:48px;width:auto}.logo-tagline{font-size:.75rem;color:#6b7280;margin:0;text-align:left}.auth-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d,0 10px 25px #0000000d;padding:2.5rem;margin-bottom:1.5rem}.auth-title{font-size:1.875rem;font-weight:700;color:#111827;margin:0 0 .5rem;text-align:center}.auth-subtitle{color:#6b7280;font-size:1rem;margin:0 0 2rem;text-align:center}.alert{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border-radius:.5rem;margin-bottom:1.5rem}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.form-section{padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.form-section:last-of-type{border-bottom:none}.section-title{font-size:1rem;font-weight:600;color:#111827;margin:0 0 1rem;text-transform:uppercase;letter-spacing:.05em}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-row-3{grid-template-columns:2fr 1fr 1fr}.form-group input{padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;transition:all .2s;background:#fff}.form-group input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.form-group input:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.form-hint{font-size:.875rem;color:#6b7280;margin:0}.form-note{font-size:.875rem;color:#6b7280;text-align:center;margin:0;line-height:1.5}.form-footer{display:flex;justify-content:space-between;align-items:center}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#374151;cursor:pointer}.link-text{font-size:.875rem;color:#7c3aed;text-decoration:none}.link-text:hover{text-decoration:underline}.btn-primary-full{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%}a.btn-primary-full,a.btn-primary-full:visited,a.btn-primary-full:hover,a.btn-primary-full:active{color:#fff}.btn-primary-full:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #7c3aed4d}.btn-primary-full:disabled{opacity:.6;cursor:not-allowed}.company-type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.type-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1rem;border:2px solid #e5e7eb;border-radius:10px;background:#fafbfc;cursor:pointer;font-size:1rem;font-weight:600;color:#374151;transition:all .2s}.type-btn:hover:not(:disabled){border-color:#7c3aed;background:#f5f3ff}.type-btn.active{border-color:#7c3aed;background:#f5f3ff;color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1f}.type-desc{font-size:.78rem;font-weight:400;color:#9ca3af}.type-btn.active .type-desc{color:#7c3aed}.btn-outline-full{background:#fff;color:#7c3aed;border:2px solid #7c3aed;padding:.875rem 1.5rem;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%;display:block;text-align:center;text-decoration:none}a.btn-outline-full,a.btn-outline-full:visited,a.btn-outline-full:hover,a.btn-outline-full:active{color:#7c3aed}.btn-outline-full:hover{background:#f9fafb;transform:translateY(-1px)}.btn-outline-full+.btn-outline-full{margin-top:.75rem}.auth-divider{text-align:center;position:relative;margin:1.5rem 0}.auth-divider span{background:#fff;padding:0 1rem;color:#6b7280;font-size:.875rem;position:relative;z-index:1}.auth-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#e5e7eb}.auth-links{display:flex;flex-direction:column;gap:.75rem}.auth-footer{text-align:center;color:#6b7280;font-size:.875rem}.auth-footer p{margin:0}@media (max-width: 640px){.auth-page{padding:1rem}.auth-card{padding:1.5rem}.form-row,.form-row.form-row-3{grid-template-columns:1fr}.auth-title{font-size:1.5rem}.form-footer{flex-direction:column;gap:.75rem;align-items:flex-start}.reactivate-banner{padding:1rem}}.auth-info-banner{background:#fef3c7;border:1px solid #fde68a;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.85rem;color:#92400e;line-height:1.5}.auth-success-banner{background:#f0fdf4;border:1px solid #bbf7d0;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.85rem;color:#166534;font-weight:500;text-align:center}.reactivate-banner{background:#fef3c7;border:1px solid #fde68a;border-radius:12px;padding:1.25rem;margin-bottom:1rem;text-align:center}.reactivate-icon{font-size:2rem;margin-bottom:.5rem}.reactivate-banner h3{font-size:1.1rem;font-weight:700;color:#92400e;margin:0 0 .5rem}.reactivate-banner p{font-size:.85rem;color:#78350f;line-height:1.6;margin:0 0 .75rem}.reactivate-banner a{color:#7c3aed}.btn-reactivate{background:#7c3aed;color:#fff;border:none;padding:.6rem 1.5rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-reactivate:hover{background:#6d28d9}.btn-reactivate:disabled{opacity:.6;cursor:not-allowed}.reactivate-note{font-size:.8rem;color:#92400e;font-style:italic}.welcome-card{background:#fff;border-radius:1rem;padding:2.5rem 2rem;text-align:center;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb}.welcome-icon{width:64px;height:64px;border-radius:50%;background:#10b981;color:#fff;font-size:2rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.welcome-title{font-size:1.75rem;font-weight:700;color:#111827;margin:0 0 .75rem}.welcome-subtitle{font-size:1rem;color:#6b7280;line-height:1.6;margin:0 0 2rem}.welcome-checklist{text-align:left;background:#f9fafb;border-radius:.75rem;padding:1.25rem 1.5rem;margin-bottom:2rem}.welcome-checklist h3{font-size:.9375rem;font-weight:600;color:#111827;margin:0 0 .75rem}.welcome-checklist ul{list-style:none;padding:0;margin:0}.welcome-checklist li{position:relative;padding-left:1.5rem;margin-bottom:.5rem;font-size:.9375rem;color:#374151;line-height:1.5}.welcome-checklist li:before{content:"→";position:absolute;left:0;color:#7c3aed;font-weight:600}.welcome-checklist li:last-child{margin-bottom:0}.welcome-cta{display:inline-block;background:#7c3aed;color:#fff;text-decoration:none;font-weight:600;font-size:1rem;padding:.875rem 2.5rem;border-radius:.5rem;transition:background .2s,transform .2s}.welcome-cta:hover{background:#6d28d9;color:#fff;transform:translateY(-1px)}.legal-page{min-height:100vh;min-height:100dvh;background:#fff}.legal-header{border-bottom:1px solid #e5e7eb;padding:1rem 0;background:#fff}.legal-header .container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.legal-header .logo{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit}.legal-header .logo-icon{font-size:2rem}.legal-header .logo-img{height:44px;width:auto}.legal-header .logo h1{font-size:1.5rem;font-weight:700;color:#111827;margin:0}.legal-header .tagline{font-size:.75rem;color:#6b7280;margin:0}.legal-header nav{display:flex;gap:1rem}.legal-header .btn-text{color:#7c3aed;text-decoration:none;font-weight:500;padding:.5rem 1rem}.legal-header .btn-text:hover{color:#6d28d9}.legal-content{max-width:800px;margin:0 auto;padding:3rem 2rem 4rem}.legal-content h1{font-size:2.25rem;font-weight:700;color:#111827;margin:0 0 .5rem}.legal-effective-date{font-size:.875rem;color:#6b7280;margin:0 0 2.5rem}.legal-content h2{font-size:1.375rem;font-weight:600;color:#111827;margin:2.5rem 0 1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.legal-content h2:first-of-type{border-top:none;padding-top:0}.legal-content h3{font-size:1.125rem;font-weight:600;color:#374151;margin:1.5rem 0 .75rem}.legal-content p{color:#4b5563;line-height:1.7;margin:0 0 1rem}.legal-content ul,.legal-content ol{color:#4b5563;line-height:1.7;margin:0 0 1rem;padding-left:1.5rem}.legal-content li{margin-bottom:.5rem}.legal-content strong{color:#111827}.legal-content a{color:#7c3aed;text-decoration:none}.legal-content a:hover{text-decoration:underline}.legal-disclaimer-box{background:#fef3c7;border:1px solid #fbbf24;border-radius:.5rem;padding:1.25rem 1.5rem;margin:1.5rem 0}.legal-disclaimer-box p{color:#78350f;margin:0;font-size:.9375rem}.legal-disclaimer-box strong{color:#78350f}.legal-contact-box{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.25rem 1.5rem;margin:1.5rem 0}.legal-contact-box p{color:#374151;margin:0 0 .25rem}.legal-contact-box p:last-child{margin-bottom:0}.legal-footer{background:#111827;color:#d1d5db;padding:2rem 0}.legal-footer .container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.legal-footer p{margin:0;font-size:.875rem}.legal-footer-links{display:flex;gap:1.5rem}.legal-footer-links a{color:#d1d5db;text-decoration:none;font-size:.875rem;transition:color .2s}.legal-footer-links a:hover{color:#fff}@media (max-width: 768px){.legal-content{padding:2rem 1.5rem 3rem}.legal-content h1{font-size:1.75rem}.legal-footer .container{flex-direction:column;gap:1rem;text-align:center}}.dashboard-page{max-width:1400px;margin:0 auto}.dashboard-header{margin-bottom:2rem}.dashboard-header h1{font-size:2rem;font-weight:700;color:#111827;margin:0 0 .5rem}.dashboard-subtitle{color:#6b7280;font-size:.875rem;margin:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:2.5rem}.stat-card{background:#fff;border-radius:.75rem;padding:1.25rem;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;align-items:center;text-align:center;transition:transform .2s,box-shadow .2s;cursor:pointer}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.stat-icon{font-size:2rem;margin-bottom:.5rem}.stat-value{font-size:2.25rem;font-weight:700;color:#111827;margin-bottom:.25rem}.stat-label{font-size:.8125rem;color:#6b7280;font-weight:500}.stat-trend{font-size:.75rem;font-weight:600;margin-top:.375rem;padding:.125rem .5rem;border-radius:9999px}.trend-up{color:#059669;background:#ecfdf5}.trend-down{color:#dc2626;background:#fef2f2}.quick-actions-section{margin-bottom:2rem}.quick-actions-section h2{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 1rem}.quick-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.action-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:1.25rem;display:flex;align-items:center;gap:1rem;cursor:pointer;transition:all .2s;text-align:left}.action-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.action-primary{border-color:#7c3aed;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}.action-primary:hover{box-shadow:0 4px 12px #7c3aed4d}.action-secondary{border-color:#e5e7eb}.action-secondary:hover{border-color:#7c3aed}.action-icon{font-size:1.75rem;flex-shrink:0}.action-content{flex:1}.action-title{font-size:.9375rem;font-weight:600;margin-bottom:.125rem}.action-primary .action-title{color:#fff}.action-secondary .action-title{color:#111827}.action-desc{font-size:.8125rem;opacity:.8}.action-primary .action-desc{color:#fff}.action-secondary .action-desc{color:#6b7280}.dashboard-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.dashboard-card{background:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.dashboard-card h2{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 1rem}.chart-container{margin:0 -.5rem}.recent-tests-list{display:flex;flex-direction:column;gap:0}.recent-test-item{display:flex;align-items:center;gap:.75rem;padding:.625rem 0;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background .15s}.recent-test-item:last-child{border-bottom:none}.recent-test-item:hover{background:#f9fafb;margin:0 -.5rem;padding-left:1rem;padding-right:1rem;border-radius:.375rem}.recent-test-status-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.dot-green{background:#ecfdf5;color:#059669}.dot-yellow{background:#fffbeb;color:#d97706}.dot-red{background:#fef2f2;color:#dc2626}.recent-test-info{flex:1;min-width:0}.recent-test-name{font-size:.875rem;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-test-date{font-size:.75rem;color:#9ca3af}.recent-test-badge{font-size:.6875rem;font-weight:600;padding:.2rem .625rem;border-radius:9999px;white-space:nowrap}.badge-green{background:#ecfdf5;color:#059669}.badge-yellow{background:#fffbeb;color:#d97706}.badge-red{background:#fef2f2;color:#dc2626}.water-health-summary{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #f3f4f6}.water-health-summary h3{font-size:.8125rem;font-weight:600;color:#6b7280;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.03em}.health-bar{display:flex;height:10px;border-radius:9999px;overflow:hidden;background:#f3f4f6;margin-bottom:.5rem}.health-bar-segment{min-width:6px;transition:width .3s ease}.health-balanced{background:#10b981}.health-attention{background:#f59e0b}.health-critical{background:#ef4444}.health-legend{display:flex;gap:1rem;flex-wrap:wrap}.health-legend-item{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#4b5563;font-weight:500}.health-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.health-dot-balanced{background:#10b981}.health-dot-attention{background:#f59e0b}.health-dot-critical{background:#ef4444}.empty-state-small{border-radius:.5rem;padding:2rem;text-align:center;color:#6b7280;border:2px dashed #e5e7eb}.tech-progress-card{background:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem;display:flex;align-items:center;gap:1.5rem}.tech-progress-info{text-align:center;min-width:80px}.tech-progress-big{font-size:2rem;font-weight:700;color:#7c3aed}.tech-progress-label{font-size:.8rem;color:#6b7280;font-weight:500}.tech-progress-bar-wrapper{flex:1;display:flex;align-items:center;gap:.75rem}.tech-progress-bar{flex:1;height:12px;background:#f3f4f6;border-radius:9999px;overflow:hidden}.tech-progress-fill{height:100%;background:linear-gradient(90deg,#7c3aed,#a78bfa);border-radius:9999px;transition:width .4s ease}.tech-progress-pct{font-size:.9rem;font-weight:700;color:#374151;min-width:40px;text-align:right}.tech-next-stop{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:.75rem;padding:1.25rem 1.5rem;margin-bottom:1.5rem;cursor:pointer;transition:transform .15s,box-shadow .15s;color:#fff}.tech-next-stop:hover{transform:translateY(-2px);box-shadow:0 6px 20px #7c3aed4d}.tech-next-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.8;margin-bottom:.35rem}.tech-next-name{font-size:1.15rem;font-weight:700}.tech-next-address{font-size:.85rem;opacity:.85;margin-top:.25rem}.tech-next-type{display:inline-block;margin-top:.5rem;padding:.15rem .6rem;background:#fff3;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.tech-stops-card{padding:1rem 0 0!important}.tech-stops-card h2{padding:0 1.25rem}.tech-stops-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.tech-stops-table{width:100%;border-collapse:collapse;font-size:.84rem}.tech-stops-table thead th{text-align:left;font-size:.7rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;padding:.5rem .75rem;border-bottom:2px solid #e5e7eb;white-space:nowrap;position:sticky;top:0;background:#fff}.tech-stops-table thead th:first-child{padding-left:1.25rem}.tech-stops-table thead th:last-child{padding-right:1.25rem}.tech-stops-row{cursor:pointer;transition:background .12s}.tech-stops-row:hover{background:#f9fafb}.tech-stops-row.in_progress{background:#f5f3ff}.tech-stops-row.in_progress:hover{background:#ede9fe}.tech-stops-row.completed{opacity:.55}.tech-stops-row.completed .col-name{text-decoration:line-through;text-decoration-color:#9ca3af;color:#9ca3af}.tech-stops-row.completed .col-address{text-decoration:line-through;text-decoration-color:#d1d5db}.tech-stops-row.completed .tech-table-address-link{text-decoration:line-through;text-decoration-color:#d1d5db;color:#9ca3af}.tech-stops-row td{padding:.6rem .75rem;border-bottom:1px solid #f3f4f6;vertical-align:middle}.tech-stops-row:last-child td{border-bottom:none}.tech-stops-row td:first-child{padding-left:1.25rem}.tech-stops-row td:last-child{padding-right:1.25rem}.tech-stops-table .col-num{width:36px;text-align:center}.tech-row-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.75rem;font-weight:700;background:#f3f4f6;color:#6b7280}.tech-row-num.completed{background:#dcfce7;color:#16a34a}.tech-row-num.in_progress{background:#dbeafe;color:#2563eb}.tech-stops-table .col-name{font-weight:600;color:#1f2937;white-space:nowrap}.tech-stops-table .col-address{color:#6b7280;max-width:220px}.tech-table-address-link{color:#7c3aed;text-decoration:underline;text-decoration-style:dashed;text-underline-offset:2px;text-decoration-color:#c4b5fd;transition:all .12s}.tech-table-address-link:before{content:"📍";font-size:.7em;margin-right:.2em}.tech-table-address-link:hover{color:#6d28d9;text-decoration-style:solid;text-decoration-color:#7c3aed}.tech-table-no-data{color:#d1d5db}.tech-stops-table .col-service{white-space:nowrap}.tech-table-service-tag{display:inline-block;padding:.15rem .55rem;background:#f3f4f6;border-radius:9999px;font-size:.72rem;font-weight:600;color:#4b5563;text-transform:capitalize}.tech-stops-table .col-status{white-space:nowrap}.tech-table-status{display:inline-block;padding:.15rem .55rem;border-radius:9999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.tech-table-status.completed{background:#dcfce7;color:#16a34a}.tech-table-status.in_progress{background:#dbeafe;color:#2563eb}.tech-table-status.scheduled{background:#f3f4f6;color:#6b7280}.tech-table-status.skipped{background:#fef9c3;color:#a16207}.tech-table-status.cancelled{background:#fef2f2;color:#dc2626}.tech-stop-address{font-size:.75rem;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.1rem}.tech-next-address-link{display:block;color:#ffffffe6;text-decoration:none;font-size:.85rem;margin-top:.25rem;transition:color .15s}.tech-next-address-link:hover{color:#fff;text-decoration:underline}.tech-next-action{margin-top:.6rem;font-size:.85rem;font-weight:600;opacity:.9}.tech-week-strip{background:#fff;border-radius:.75rem;padding:1rem 1.25rem;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.tech-week-strip-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.tech-week-nav{display:flex;align-items:center;gap:.35rem}.tech-week-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#374151;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .15s;line-height:1;padding:0}.tech-week-nav-btn:hover{background:#f5f3ff;border-color:#c4b5fd;color:#7c3aed}.tech-week-label{font-size:.95rem;font-weight:700;color:#1f2937;margin:0;min-width:0;white-space:nowrap}.tech-week-today-btn{padding:.2rem .5rem;border:1px solid #c4b5fd;border-radius:6px;background:#f5f3ff;color:#7c3aed;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s;margin-left:.25rem}.tech-week-today-btn:hover{background:#7c3aed;color:#fff}.tech-week-summary{font-size:.8rem;color:#6b7280;font-weight:500;white-space:nowrap}.tech-week-days.loading{opacity:.5;pointer-events:none}.tech-week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.tech-week-day{text-align:center;padding:.4rem .2rem;border-radius:8px;cursor:pointer;transition:background .15s}.tech-week-day:hover{background:#f5f3ff}.tech-week-day.today{background:#f5f3ff;box-shadow:inset 0 0 0 2px #7c3aed}.tech-week-day.empty{opacity:.5}.tech-week-day-label{font-size:.68rem;font-weight:600;color:#6b7280;text-transform:uppercase;margin-bottom:.3rem}.tech-week-day.today .tech-week-day-label{color:#7c3aed}.tech-week-day-date{font-size:.9rem;font-weight:700;color:#374151;margin-bottom:.2rem;line-height:1}.tech-week-day-date.today{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#7c3aed;color:#fff;font-size:.78rem}.tech-week-day-count{font-size:.82rem;font-weight:700;color:#374151;margin-bottom:.25rem}.tech-week-day-count.done{color:#16a34a}.tech-week-day-bar{height:4px;background:#e5e7eb;border-radius:9999px;overflow:hidden;margin:0 .15rem}.tech-week-day-fill{height:100%;background:#7c3aed;border-radius:9999px;transition:width .3s ease}.tech-week-day-off{font-size:.75rem;color:#d1d5db;margin-top:.1rem}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-dot.scheduled{background:#d1d5db}.status-dot.in_progress{background:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.status-dot.completed{background:#16a34a}.status-dot.skipped{background:#eab308}.dashboard-unassigned-warning{display:flex;align-items:center;gap:.75rem;background:#fffbeb;border:1px solid #fcd34d;border-left:4px solid #f59e0b;border-radius:.5rem;padding:.85rem 1.25rem;margin-bottom:1.25rem;cursor:pointer;transition:box-shadow .2s,transform .15s}.dashboard-unassigned-warning:hover{box-shadow:0 2px 8px #f59e0b33;transform:translateY(-1px)}.dashboard-warning-icon{font-size:1.35rem;flex-shrink:0}.dashboard-warning-content{flex:1;display:flex;flex-direction:column;gap:.15rem}.dashboard-warning-content strong{font-size:.9rem;color:#92400e}.dashboard-warning-content span{font-size:.8rem;color:#a16207}.dashboard-warning-arrow{font-size:1.1rem;font-weight:700;color:#d97706;flex-shrink:0}.dashboard-routes-section{background:#fff;border-radius:.75rem;padding:1.25rem 1.5rem;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.dashboard-routes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.dashboard-routes-header h2{font-size:1.1rem;font-weight:700;color:#1f2937;margin:0}.btn-view-all{background:none;border:none;color:#7c3aed;font-size:.85rem;font-weight:600;cursor:pointer;padding:.25rem .5rem;border-radius:6px;transition:background .15s}.btn-view-all:hover{background:#f5f3ff}.dashboard-tech-row{display:flex;align-items:center;gap:1rem;padding:.65rem 0;border-bottom:1px solid #f3f4f6}.dashboard-tech-row:last-child{border-bottom:none}.dashboard-tech-info{min-width:160px}.dashboard-tech-name{font-size:.9rem;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:.5rem}.dashboard-tech-active{display:inline-block;padding:.1rem .45rem;border-radius:9999px;font-size:.65rem;font-weight:600;background:#dbeafe;color:#2563eb;text-transform:uppercase;letter-spacing:.03em}.dashboard-tech-count{font-size:.78rem;color:#6b7280;margin-top:.1rem}.dashboard-tech-progress{flex:1;display:flex;align-items:center;gap:.75rem}.dashboard-tech-bar{flex:1;height:8px;background:#f3f4f6;border-radius:9999px;overflow:hidden}.dashboard-tech-fill{height:100%;background:linear-gradient(90deg,#7c3aed,#a78bfa);border-radius:9999px;transition:width .4s ease}.dashboard-tech-pct{font-size:.8rem;font-weight:700;color:#374151;min-width:36px;text-align:right}.tech-quick-actions{display:flex;gap:.75rem;margin-bottom:1.5rem}.tech-action-btn{flex:1;padding:.75rem 1rem;border-radius:.625rem;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .15s;border:none;text-align:center;min-height:44px}.tech-action-primary{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}.tech-action-primary:hover{box-shadow:0 4px 12px #7c3aed4d;transform:translateY(-1px)}.tech-action-secondary{background:#fff;color:#374151;border:1px solid #e5e7eb}.tech-action-secondary:hover{border-color:#c4b5fd;color:#7c3aed;background:#f5f3ff}.tech-donuts-section{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.5rem}.tech-donut-card{background:#fff;border-radius:.75rem;padding:1rem;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;align-items:center}.tech-donut-label{font-size:.78rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.6rem}.tech-donut-wrap{position:relative;width:100px;height:100px;margin-bottom:.6rem}.tech-donut-svg{width:100%;height:100%}.tech-donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.tech-donut-big{font-size:1.5rem;font-weight:700;color:#1f2937;line-height:1}.tech-donut-sub{font-size:.65rem;color:#9ca3af;font-weight:500;margin-top:.1rem}.tech-donut-legend{display:flex;flex-direction:column;gap:.25rem;width:100%}.tech-donut-legend-item{display:flex;align-items:center;gap:.35rem;font-size:.75rem}.tech-donut-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tech-donut-legend-label{flex:1;color:#4b5563;font-weight:500}.tech-donut-legend-count{font-weight:700;color:#1f2937;min-width:16px;text-align:right}@media (max-width: 768px){.dashboard-header h1{font-size:1.5rem}.stats-grid{grid-template-columns:1fr 1fr}.quick-actions-grid,.dashboard-bottom-grid{grid-template-columns:1fr}.stat-card{padding:1rem}.stat-value{font-size:1.75rem}.tech-progress-card{flex-direction:column;gap:1rem;text-align:center}.tech-progress-bar-wrapper{width:100%}.dashboard-tech-row{flex-direction:column;align-items:flex-start;gap:.5rem}.dashboard-tech-progress{width:100%}.tech-week-strip-header{flex-wrap:wrap;gap:.4rem}.tech-week-nav{gap:.25rem}.tech-week-label{font-size:.85rem}.tech-week-days{gap:.2rem}.tech-week-day{padding:.35rem .1rem}.tech-week-day-label{font-size:.6rem}.tech-week-day-date{font-size:.78rem}.tech-week-day-date.today{width:20px;height:20px;font-size:.68rem}.tech-week-day-count{font-size:.72rem}.tech-week-day-off{font-size:.65rem}.tech-dashboard .dashboard-header{margin-bottom:1.25rem}.tech-dashboard .dashboard-header h1{font-size:1.3rem}.tech-progress-card{padding:1rem;margin-bottom:1rem}.tech-progress-big{font-size:1.6rem}.tech-next-stop{padding:1rem 1.15rem;margin-bottom:1rem}.tech-next-name{font-size:1.05rem}.tech-next-address-link{font-size:.8rem}.tech-week-strip{padding:.75rem .85rem;margin-bottom:1rem}.tech-quick-actions{gap:.5rem;margin-bottom:1rem}.tech-action-btn{padding:.65rem .5rem;font-size:.8rem;min-height:44px}.tech-donuts-section{gap:.5rem;margin-bottom:1rem}.tech-donut-card{padding:.75rem .5rem}.tech-donut-label{font-size:.7rem;margin-bottom:.4rem}.tech-donut-wrap{width:80px;height:80px;margin-bottom:.4rem}.tech-donut-big{font-size:1.2rem}.tech-donut-sub{font-size:.6rem}.tech-donut-legend-item{font-size:.68rem}.tech-donut-dot{width:6px;height:6px}.tech-dashboard .dashboard-card{padding:1rem;margin-bottom:1rem}.tech-dashboard .dashboard-card h2{font-size:.95rem;margin-bottom:.65rem}.tech-stops-card{padding:.75rem 0 0!important}.tech-stops-card h2{padding:0 .75rem;font-size:.9rem!important}.tech-stops-table .col-address{display:none}.tech-stops-table thead th{font-size:.62rem;padding:.4rem}.tech-stops-table thead th:first-child{padding-left:.75rem}.tech-stops-table thead th:last-child{padding-right:.75rem}.tech-stops-row td{padding:.5rem .4rem;font-size:.78rem}.tech-stops-row td:first-child{padding-left:.75rem}.tech-stops-row td:last-child{padding-right:.75rem}.tech-row-num{width:22px;height:22px;font-size:.68rem}.tech-table-service-tag{font-size:.65rem;padding:.1rem .4rem}.tech-table-status{font-size:.62rem;padding:.1rem .4rem}}.dashboard-billing-section{background:#fff;border-radius:.75rem;padding:1.25rem 1.5rem;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.dashboard-billing-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.dashboard-billing-header h2{font-size:1.1rem;font-weight:700;color:#1f2937;margin:0}.dashboard-billing-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1rem}.billing-stat-card{border-radius:.625rem;padding:1rem;cursor:pointer;transition:transform .15s,box-shadow .15s}.billing-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.billing-stat-revenue{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #a7f3d0}.billing-stat-outstanding{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe}.billing-stat-overdue{background:linear-gradient(135deg,#fef2f2,#fecaca);border:1px solid #fca5a5}.billing-stat-total{background:linear-gradient(135deg,#f5f3ff,#ede9fe);border:1px solid #c4b5fd}.billing-stat-amount{font-size:1.5rem;font-weight:700;color:#111827;margin-bottom:.2rem}.billing-stat-label{font-size:.78rem;font-weight:600;color:#6b7280}.billing-stat-sub{font-size:.7rem;color:#9ca3af;margin-top:.15rem}.billing-stat-trend{font-size:.7rem;font-weight:600;margin-top:.25rem;display:inline-block;padding:.1rem .4rem;border-radius:9999px}.billing-status-bar-section{margin-bottom:1rem}.billing-status-bar{display:flex;height:10px;border-radius:9999px;overflow:hidden;background:#f3f4f6;margin-bottom:.5rem}.billing-bar-segment{min-width:4px;transition:width .3s ease}.billing-bar-paid{background:#10b981}.billing-bar-sent{background:#3b82f6}.billing-bar-overdue{background:#ef4444}.billing-bar-draft{background:#9ca3af}.billing-status-legend{display:flex;gap:1rem;flex-wrap:wrap}.billing-legend-item{display:flex;align-items:center;gap:.3rem;font-size:.78rem;color:#4b5563;font-weight:500}.billing-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.billing-dot-paid{background:#10b981}.billing-dot-sent{background:#3b82f6}.billing-dot-overdue{background:#ef4444}.billing-dot-draft{background:#9ca3af}.billing-recent-list{border-top:1px solid #f3f4f6;padding-top:.75rem}.billing-recent-item{display:flex;align-items:center;justify-content:space-between;padding:.55rem 0;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background .12s}.billing-recent-item:last-child{border-bottom:none}.billing-recent-item:hover{background:#f9fafb;margin:0 -.5rem;padding-left:.75rem;padding-right:.75rem;border-radius:.375rem}.billing-recent-info{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.billing-recent-number{font-size:.85rem;font-weight:600;color:#7c3aed}.billing-recent-customer{font-size:.78rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.billing-recent-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.billing-recent-status{font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:9999px;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.billing-rs-draft{background:#f3f4f6;color:#6b7280}.billing-rs-sent{background:#dbeafe;color:#2563eb}.billing-rs-overdue{background:#fef2f2;color:#dc2626}.billing-rs-paid{background:#dcfce7;color:#16a34a}.billing-rs-partially_paid{background:#fef3c7;color:#d97706}.billing-rs-void{background:#f3f4f6;color:#9ca3af}.billing-recent-amount{font-size:.88rem;font-weight:700;color:#111827;min-width:65px;text-align:right}@media (max-width: 768px){.dashboard-billing-section{padding:1rem;margin-bottom:1.5rem}.dashboard-billing-stats{grid-template-columns:1fr 1fr;gap:.5rem}.billing-stat-card{padding:.75rem}.billing-stat-amount{font-size:1.15rem}.billing-stat-label{font-size:.72rem}.billing-status-legend{gap:.5rem}.billing-legend-item{font-size:.7rem}.billing-recent-item{flex-wrap:wrap;gap:.3rem}.billing-recent-right{width:100%;justify-content:space-between}.billing-recent-amount{font-size:.82rem}}@media (max-width: 480px){.dashboard-billing-stats{grid-template-columns:1fr;gap:.4rem}.billing-stat-card{padding:.6rem .75rem;display:flex;align-items:center;gap:.5rem}.billing-stat-amount{font-size:1.1rem;margin-bottom:0;order:2;margin-left:auto}.billing-stat-label{font-size:.75rem;order:1}.billing-stat-sub,.billing-stat-trend{display:none}.billing-status-bar-section h3{font-size:.78rem}.billing-recent-item{padding:.5rem 0}.billing-recent-number{font-size:.78rem}.billing-recent-customer{font-size:.7rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;overflow-y:auto}.modal-content{background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:750px;width:100%;max-height:90vh;overflow-y:auto;margin:2rem auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #e5e7eb}.modal-header h2{font-size:1.5rem;font-weight:700;color:#111827;margin:0}.modal-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:.25rem .5rem;border-radius:.375rem;transition:all .2s;line-height:1}.modal-close:hover{background:#f3f4f6;color:#111827}.customer-form{padding:1.5rem 2rem 2rem}.form-section{margin-bottom:2rem}.form-section:last-of-type{margin-bottom:0}.form-section h3{font-size:1rem;font-weight:600;color:#111827;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.water-body-hint{background:#f5f3ff;border:1px solid #e9e5ff;border-radius:.5rem;padding:.5rem .75rem;font-size:.82rem;color:#5b21b6;margin-bottom:1rem;line-height:1.4}.water-body-hint p{margin:0}.water-body-hint p+p{margin-top:.375rem}.water-body-hint .btn-link{background:none;border:none;color:#7c3aed;font-weight:600;cursor:pointer;padding:0;font-size:.82rem;text-decoration:underline;text-underline-offset:2px}.water-body-hint .btn-link:hover{color:#6d28d9}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.875rem;font-weight:500;color:#374151}.form-group input,.form-group select,.form-group textarea{padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;transition:all .2s;background:#fff;font-family:inherit}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.form-group textarea{resize:vertical;min-height:80px}.customer-form .alert{margin-bottom:1.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.modal-actions button{min-width:120px}@media (max-width: 640px){.modal-content{margin:0;max-height:100vh;max-height:100dvh;border-radius:0}.modal-header{padding:1rem 1.5rem}.customer-form{padding:1rem 1.5rem 1.5rem}.form-row{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}.section-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;transition:all .2s}.section-toggle:hover{background:#f5f3ff;border-color:#c4b5fd}.section-toggle-open{background:#f5f3ff;border-color:#7c3aed;border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:0}.section-toggle h3{display:flex;align-items:center;gap:.5rem;margin:0;padding:0;border:none;font-size:.9rem}.section-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#7c3aed;color:#fff;font-size:.9rem;font-weight:700;line-height:1;flex-shrink:0;transition:all .2s}.section-toggle-icon.open{background:#6d28d9}.section-toggle-badge{font-size:.7rem;font-weight:500;color:#6b7280;background:#fff;padding:.2rem .5rem;border-radius:9999px;border:1px solid #e5e7eb;white-space:nowrap}.chem-overrides{border:1px solid #7c3aed;border-top:none;border-radius:0 0 .5rem .5rem;padding:1rem;background:#faf5ff}.override-hint{font-size:.8rem;color:#6b7280;margin:0 0 1rem;line-height:1.4}.chem-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:.75rem}.chem-card{padding:1rem;border:1px solid #e5e7eb;border-radius:.75rem;transition:all .2s;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.25rem}.chem-card:hover{border-color:#c4b5fd;box-shadow:0 4px 12px #7c3aed14;transform:translateY(-1px)}.chem-card-active{border-color:#7c3aed;background:#faf5ff;box-shadow:0 2px 8px #7c3aed1f}.chem-card-active:hover{border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed2e}.chem-card-icon{font-size:1.75rem;line-height:1}.chem-card-name{font-size:.8125rem;font-weight:600;color:#111827;margin-top:.25rem}.chem-card-desc{font-size:.6875rem;color:#9ca3af;margin-bottom:.375rem}.chem-card-select{width:100%;padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.75rem;background:#fff;color:#6b7280;cursor:pointer;transition:all .2s;text-align:center;font-family:inherit}.chem-card-active .chem-card-select{border-color:#c4b5fd;color:#5b21b6;font-weight:500;background:#fff}.chem-card-select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.chem-card-select:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.btn-clear-overrides{display:block;width:100%;padding:.5rem;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:.375rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s;margin-top:.75rem}.btn-clear-overrides:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.btn-clear-overrides:disabled{opacity:.5;cursor:not-allowed}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}@media (max-width: 640px){.chem-cards-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.chem-card{padding:.75rem}.chem-card-icon{font-size:1.5rem}.chem-card-name{font-size:.75rem}}.csv-import-modal{max-width:900px}.csv-import-modal .modal-body{padding:1.5rem 2rem}.csv-import-modal .modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 2rem;border-top:1px solid #e5e7eb}.import-instructions{margin-bottom:1.5rem}.import-instructions p{color:#4b5563;margin:0 0 .75rem;line-height:1.5}.template-download{background:none;border:none;color:#7c3aed;font-weight:600;cursor:pointer;padding:0;font-size:.95rem;text-decoration:underline;text-underline-offset:2px}.template-download:hover{color:#6d28d9}.drop-zone{border:2px dashed #d1d5db;border-radius:.75rem;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .2s;background:#f9fafb}.drop-zone:hover{border-color:#7c3aed;background:#faf5ff}.drop-zone.drag-over{border-color:#7c3aed;background:#ede9fe}.drop-zone.validating{cursor:default;border-color:#d1d5db;background:#f9fafb}.drop-zone-icon{font-size:3rem;margin-bottom:.75rem}.drop-zone-text{font-size:1.1rem;font-weight:600;color:#374151;margin:0 0 .25rem}.drop-zone-subtext{color:#9ca3af;font-size:.9rem;margin:0}.import-summary{border-radius:.75rem;padding:1.25rem;margin-bottom:1.25rem}.import-summary.summary-valid{background:#f0fdf4;border:1px solid #bbf7d0}.import-summary.summary-invalid{background:#fef2f2;border:1px solid #fecaca}.summary-stats{display:flex;gap:2rem;justify-content:center}.stat{text-align:center}.stat-number{display:block;font-size:1.75rem;font-weight:700;color:#374151;line-height:1.2}.stat-label{font-size:.8rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.stat-success .stat-number{color:#16a34a}.stat-error .stat-number{color:#dc2626}.stat-warning .stat-number{color:#d97706}.import-limit-warning{background:#fef3c7;border:1px solid #fde68a;color:#92400e;padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1rem;font-size:.9rem;line-height:1.4}.import-info-banner{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1rem;font-size:.85rem}.import-section{margin-bottom:1.25rem}.section-title{font-size:.95rem;font-weight:600;margin:0 0 .5rem;padding-bottom:.25rem}.section-error{color:#dc2626}.section-warning{color:#d97706}.section-success{color:#16a34a}.duplicate-option{margin-bottom:.75rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:#374151}.checkbox-label input[type=checkbox]{width:1rem;height:1rem;accent-color:#7c3aed;cursor:pointer}.import-table-wrapper{overflow-x:auto;border:1px solid #e5e7eb;border-radius:.5rem}.import-preview-table{width:100%;border-collapse:collapse;font-size:.85rem}.import-preview-table thead{background:#f9fafb}.import-preview-table th{padding:.5rem .75rem;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;white-space:nowrap}.import-preview-table td{padding:.5rem .75rem;border-bottom:1px solid #f3f4f6;color:#4b5563}.import-preview-table tbody tr:last-child td{border-bottom:none}.import-preview-table .row-error{background:#fef2f2}.import-preview-table .row-warning{background:#fffbeb}.cell-truncate{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-checkbox{width:2.25rem;text-align:center;padding-left:.5rem!important;padding-right:.25rem!important}.col-checkbox input[type=checkbox]{width:1rem;height:1rem;accent-color:#7c3aed;cursor:pointer}.import-preview-table .row-excluded td{opacity:.45;text-decoration:line-through;color:#9ca3af}.import-preview-table .row-excluded .col-checkbox{opacity:1;text-decoration:none}.issue-badge{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500;margin:.1rem .25rem .1rem 0}.error-badge{background:#fecaca;color:#991b1b}.warning-badge{background:#fde68a;color:#92400e}.import-loading{text-align:center;padding:3rem 2rem}.import-loading p{margin-top:1rem;color:#6b7280}.import-done-step{text-align:center;padding:1rem 0}.done-icon{font-size:3rem;margin-bottom:.5rem}.import-done-step h3{font-size:1.25rem;font-weight:700;color:#111827;margin:0 0 1rem}.done-stats{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.5rem}.done-stat{padding:.5rem 1rem;border-radius:.5rem;font-weight:600;font-size:.9rem}.done-created{background:#f0fdf4;color:#16a34a}.done-skipped{background:#fffbeb;color:#d97706}.done-failed{background:#fef2f2;color:#dc2626}@media (max-width: 640px){.csv-import-modal{max-width:100%}.summary-stats{gap:1rem}.stat-number{font-size:1.25rem}.import-preview-table{font-size:.8rem}.import-preview-table th,.import-preview-table td{padding:.375rem .5rem}}.customers-page{max-width:1400px;margin:0 auto}.search-bar{position:relative;margin-bottom:1.5rem;display:flex;align-items:center}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#9ca3af}.search-input{flex:1;min-width:0;padding:.875rem 1rem .875rem 3rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;transition:all .2s}.search-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.customers-table{width:100%;border-collapse:collapse}.customers-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.customers-table th{text-align:left;padding:.875rem 1rem;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.customers-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s}.customers-table tbody tr:hover{background:#f9fafb}.customers-table tbody tr:last-child{border-bottom:none}.customers-table td{padding:1rem;vertical-align:middle}.customer-name{font-weight:600;color:#111827}.customer-name-link{cursor:pointer;color:#7c3aed;transition:color .2s}.customer-name-link:hover{color:#6d28d9;text-decoration:underline}.contact-info{display:flex;flex-direction:column;gap:.25rem}.contact-email{color:#111827;font-size:.875rem}.contact-phone{color:#6b7280;font-size:.875rem}.pool-info{display:flex;flex-direction:column;gap:.25rem}.pool-gallons{font-weight:600;color:#111827;font-size:.875rem}.pool-type{color:#6b7280;font-size:.875rem}.address-cell{color:#6b7280;font-size:.875rem;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.test-count-cell{display:flex;align-items:center;gap:.5rem}.test-count-number{font-weight:700;color:#111827;font-size:1rem}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.status-dot.dot-green{background:#10b981}.status-dot.dot-yellow{background:#f59e0b}.status-dot.dot-red{background:#ef4444}.last-test-cell{display:flex;flex-direction:column;gap:.25rem}.last-test-date{font-size:.875rem;color:#374151;font-weight:500}.no-tests-label{font-size:.8125rem;color:#9ca3af;font-style:italic}.overdue-badge{display:inline-block;font-size:.6875rem;font-weight:600;padding:.125rem .5rem;border-radius:9999px;background:#fef2f2;color:#dc2626;width:fit-content}.due-soon-badge{display:inline-block;font-size:.6875rem;font-weight:600;padding:.125rem .5rem;border-radius:9999px;background:#fffbeb;color:#d97706;width:fit-content}.btn-test:hover{background:#f0fdf4}.action-buttons{display:flex;gap:.5rem}.btn-edit:hover{background:#dbeafe}.btn-invite:hover{background:#f0fdf4}.btn-invite:disabled{opacity:.5;cursor:not-allowed}.modal-small{max-width:400px;width:100%;background:#fff;border-radius:.75rem;padding:2rem}.modal-small p{color:#6b7280;margin:0 0 1.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.portal-status-badge{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .5rem;border-radius:9999px;font-size:.65rem;font-weight:600;letter-spacing:.03em;white-space:nowrap;min-width:60px;text-align:center}.portal-linked{background:#f0fdf4;color:#16a34a;border:1px solid #86efac}.portal-pending{background:#fffbeb;color:#d97706;border:1px solid #fcd34d}.portal-unlinked{background:#fef2f2;color:#dc2626;border:1px solid #fca5a5}.btn-invite-text{background:#f5f3ff;color:#7c3aed;border:1px solid #c4b5fd;padding:.2rem .5rem;border-radius:9999px;font-size:.65rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s;min-width:60px;text-align:center}.btn-invite-text:hover{background:#ede9fe;border-color:#7c3aed}.btn-invite-text:disabled{opacity:.5;cursor:not-allowed}.btn-reinvite-text{background:transparent;color:#7c3aed;border:none;padding:.1rem .3rem;font-size:.6rem;font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:underline;text-underline-offset:2px}.btn-reinvite-text:hover{color:#6d28d9}.btn-reinvite-text:disabled{opacity:.5;cursor:not-allowed}.btn-filter-toggle{background:#f3f4f6;color:#6b7280;border:1px solid #d1d5db;padding:.4rem .75rem;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s;margin-left:.5rem;flex-shrink:0}.btn-filter-toggle:hover{background:#e5e7eb;border-color:#9ca3af}.btn-filter-toggle.active{background:#fef2f2;color:#dc2626;border-color:#fca5a5}.portal-column-header{text-align:center!important;width:80px}.portal-cell{text-align:center;width:80px;white-space:nowrap}@media (max-width: 768px){.page-header{flex-direction:column;gap:1rem}.header-actions{width:100%;display:flex;gap:.5rem}.header-actions .btn-primary,.header-actions .btn-secondary{flex:1}.search-bar{flex-wrap:wrap}.search-input{width:100%;flex:unset;font-size:.875rem;padding:.75rem .75rem .75rem 2.5rem}.search-icon{left:.75rem;width:16px;height:16px}.btn-filter-toggle{margin-left:0;margin-top:.5rem;width:100%;text-align:center}.table-container{box-shadow:none;background:transparent}.customers-table{border:none}.customers-table thead{display:none}.customers-table tbody{display:flex;flex-direction:column;gap:.75rem}.customers-table tbody tr{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name      actions" "contact   portal" "pool      pool" "tests     lasttest";background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:.75rem 1rem;box-shadow:0 1px 3px #0000000f;gap:0;align-items:center}.customers-table tbody tr:hover{background:#fff}.customers-table td{padding:0;border:none}.customers-table td[data-label=Name]{grid-area:name;padding-bottom:.35rem;border-bottom:1px solid #f3f4f6;min-width:0}.customers-table td[data-label=Name] .customer-name{font-size:1.05rem}.customers-table td[data-label=Actions]{grid-area:actions;padding-bottom:.35rem;border-bottom:1px solid #f3f4f6;justify-self:end}.customers-table td[data-label=Actions] .action-buttons{gap:.15rem}.customers-table td[data-label=Actions] .btn-action{font-size:1.1rem;padding:.2rem}.customers-table td[data-label=Contact]{grid-area:contact;padding-top:.35rem;padding-bottom:.3rem;min-width:0}.customers-table td[data-label=Contact] .contact-info{flex-direction:column;gap:.1rem}.customers-table td[data-label=Contact] .contact-email{font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customers-table td[data-label=Contact] .contact-phone{font-size:.75rem;color:#9ca3af}.customers-table td[data-label=Status]{display:none}.customers-table td[data-label=Portal]{grid-area:portal;justify-self:end;align-self:center;padding-top:.35rem}.customers-table td[data-label=Portal] .btn-invite-text{font-size:.7rem;padding:.25rem .6rem}.customers-table td[data-label=Pool]{grid-area:pool;grid-column:1 / -1;display:flex;align-items:center;gap:.35rem;padding-top:.3rem;padding-bottom:.3rem;width:100%}.customers-table td[data-label=Tests]{grid-area:tests;display:flex;align-items:center;gap:.35rem}.customers-table td[data-label="Last Test"]{grid-area:lasttest;display:flex;align-items:center;justify-self:end;gap:.35rem}.customers-table td[data-label=Pool]:before,.customers-table td[data-label=Tests]:before,.customers-table td[data-label="Last Test"]:before{content:attr(data-label) ": ";font-size:.7rem;font-weight:600;color:#9ca3af;white-space:nowrap}.customers-table td[data-label=Pool] .pool-info{display:flex;flex:1;flex-direction:row;gap:.5rem;align-items:center;justify-content:space-between}.customers-table td[data-label=Pool] .pool-gallons{font-size:.8rem;font-weight:600;color:#374151}.customers-table td[data-label=Pool] .pool-type{font-size:.75rem;color:#6b7280;text-align:right}.customers-table td[data-label=Tests] .test-count-number{font-size:.85rem}.customers-table td[data-label="Last Test"] .last-test-cell{flex-direction:row;align-items:center;gap:.5rem}.customers-table td[data-label="Last Test"] .last-test-date{font-size:.8rem}}.rec-editor{background:#f8f7ff;border:2px solid #7c3aed;border-radius:12px;padding:20px;margin-top:12px}.rec-editor-header h3{margin:0 0 4px;color:#7c3aed;font-size:1.1rem}.rec-editor-hint{color:#6b7280;font-size:.85rem;margin:0 0 16px}.rec-editor-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.rec-editor-item{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;transition:opacity .2s}.rec-editor-item.excluded{opacity:.45;background:#f9fafb}.rec-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:#7c3aed;cursor:pointer}.rec-editor-details{flex:1;min-width:0}.rec-editor-chemical{font-weight:600;color:#1f2937;font-size:.95rem}.rec-editor-reason{color:#6b7280;font-size:.82rem;margin-top:2px}.rec-editor-warning{color:#dc2626;font-size:.8rem;margin-top:2px}.rec-editor-amount{display:flex;align-items:center;gap:6px;flex-shrink:0}.rec-editor-amount input[type=number]{width:80px;padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;text-align:center}.rec-editor-amount select{padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;background:#fff}.rec-editor-remove{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.1rem;padding:4px;border-radius:4px;transition:color .15s}.rec-editor-remove:hover{color:#dc2626}.rec-editor-notes-row{width:100%;padding-left:30px}.rec-editor-notes{width:100%;padding:5px 8px;border:1px solid #e5e7eb;border-radius:6px;font-size:.82rem;color:#374151;background:#fafafa;transition:border-color .15s}.rec-editor-notes:focus{outline:none;border-color:#7c3aed;background:#fff}.rec-editor-notes::placeholder{color:#9ca3af;font-style:italic}.rec-add-btn{margin-bottom:16px}.rec-add-form{background:#fff;border:1px dashed #d1d5db;border-radius:8px;padding:14px;margin-bottom:16px}.rec-add-form h4{margin:0 0 10px;color:#374151;font-size:.95rem}.rec-add-fields{display:flex;flex-direction:column;gap:8px}.rec-add-fields select,.rec-add-fields input[type=text]{padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem}.rec-add-amount-row{display:flex;gap:8px}.rec-add-amount-row input{flex:1;padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem}.rec-add-amount-row select{width:100px;padding:8px;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem}.rec-add-actions{display:flex;gap:8px;margin-top:4px}.rec-editor-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:12px;border-top:1px solid #e5e7eb}@media (max-width: 640px){.rec-editor-item{flex-wrap:wrap}.rec-editor-amount{width:100%;margin-left:30px}}.test-results{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:2rem;margin-top:2rem}.results-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #e5e7eb}.results-header h2{font-size:1.75rem;font-weight:700;color:#111827;margin:0 0 .5rem}.results-header p{color:#6b7280;font-size:.875rem;margin:0}.readings-section{margin-bottom:2.5rem}.readings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.reading-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;text-align:center}.reading-label{font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.025em;margin-bottom:.5rem}.reading-value{font-size:1.75rem;font-weight:700;margin-bottom:.5rem}.reading-value .value{color:#111827}.reading-value .unit{font-size:.875rem;color:#6b7280;margin-left:.25rem}.reading-value .not-tested{color:#9ca3af}.reading-status{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.reading-status.status-green{background:#d1fae5;color:#065f46}.reading-status.status-yellow{background:#fef3c7;color:#92400e}.reading-status.status-red{background:#fee2e2;color:#991b1b}.reading-status.status-gray{background:#f3f4f6;color:#6b7280}.water-temp-display{margin-top:1rem;padding:.75rem 1rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.5rem;color:#1e40af;font-size:.9rem}.lsi-card{margin-top:1.25rem;padding:1.25rem;border-radius:.5rem;border:1px solid #e5e7eb;background:#f9fafb}.lsi-card.lsi-ideal{border-color:#a7f3d0;background:linear-gradient(135deg,#f0fdf4,#ecfdf5)}.lsi-card.lsi-low,.lsi-card.lsi-high{border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fef9c3)}.lsi-card.lsi-critical_low,.lsi-card.lsi-critical_high{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.lsi-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.lsi-title{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;color:#374151}.lsi-icon{font-size:1.15rem}.lsi-value{font-size:1.75rem;font-weight:700;font-variant-numeric:tabular-nums}.lsi-gauge{margin-bottom:1rem}.lsi-gauge-track{position:relative;display:flex;height:8px;border-radius:4px;overflow:visible}.lsi-gauge-zone{flex:1}.lsi-zone-corrosive{background:linear-gradient(to right,#fca5a5,#fde68a);border-radius:4px 0 0 4px}.lsi-zone-balanced{background:linear-gradient(to right,#a7f3d0,#6ee7b7,#a7f3d0)}.lsi-zone-scaling{background:linear-gradient(to right,#fde68a,#fca5a5);border-radius:0 4px 4px 0}.lsi-gauge-marker{position:absolute;top:-4px;width:4px;height:16px;background:#1f2937;border-radius:2px;transform:translate(-50%);box-shadow:0 1px 3px #0000004d;transition:left .3s ease}.lsi-gauge-labels{display:flex;justify-content:space-between;margin-top:.375rem;font-size:.675rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.025em}.lsi-status{display:flex;align-items:center;gap:.75rem}.lsi-badge{display:inline-block;padding:.2rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600;white-space:nowrap}.lsi-description{font-size:.8rem;color:#6b7280;line-height:1.4}.recommendations-section{margin-bottom:2.5rem}.recommendations-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.recommendations-header h3{margin:0}.recommendation-card:hover{box-shadow:0 4px 12px #0000001a}.rec-items{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0}.rec-item{display:flex;justify-content:space-between;align-items:center;padding:.625rem .875rem;background:#ffffffb3;border:1px solid rgba(0,0,0,.06);border-radius:.375rem}.rec-item-chemical{font-size:.875rem;font-weight:500;color:#374151}.rec-item-dosage{font-weight:700;color:#7c3aed;white-space:nowrap}.rec-item-dosage .amount-value{font-size:1.25rem}.rec-item-dosage .amount-unit{font-size:.8125rem;color:#6b7280;font-weight:500}.rec-wait-time{display:flex;align-items:center;gap:.375rem;margin-top:.75rem;padding-top:.625rem;border-top:1px dashed #d1d5db;font-size:.8rem;color:#6b7280}.rec-wait-icon{font-size:.9rem}.rec-wait-divider{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;margin:.25rem 0;font-size:.8rem;color:#6b7280;justify-content:center}.rec-item-info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.rec-item-notes{font-size:.75rem;color:#6b7280;font-style:italic}.notes-section{margin-bottom:2.5rem}.notes-section p{color:#4b5563;line-height:1.6;margin:0;padding:1rem;background:#f9fafb;border-left:3px solid #7c3aed;border-radius:.375rem}.results-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}@media (max-width: 768px){.test-results{padding:1.5rem}.results-header{flex-direction:column;gap:1rem}.results-header button{width:100%}.readings-grid{grid-template-columns:repeat(2,1fr)}.results-actions{flex-direction:column}.results-actions button{width:100%}.rec-amount{font-size:1.5rem}}@media (max-width: 480px){.readings-grid{grid-template-columns:1fr}}.cc-wrap{position:relative;width:100%}.cc-input{width:100%;padding:.55rem 2rem .55rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.85rem;outline:none;transition:border-color .15s;box-sizing:border-box;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 d='M3 5l3 3 3-3' fill='none' stroke='%239ca3af' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center}.cc-input:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.cc-input:disabled{background-color:#f9fafb;color:#9ca3af;cursor:not-allowed}.cc-selected{display:flex;align-items:center;width:100%;padding:.55rem .75rem;border:1px solid #16a34a;border-radius:8px;background:#f0fdf4;box-sizing:border-box;gap:.5rem}.cc-selected-text{flex:1;font-size:.85rem;font-weight:600;color:#16a34a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-selected-clear{background:none;border:none;color:#6b7280;cursor:pointer;font-size:1rem;padding:0 .25rem;line-height:1;border-radius:4px;transition:all .12s;flex-shrink:0}.cc-selected-clear:hover{color:#dc2626;background:#fee2e2}.cc-dropdown{position:absolute;z-index:50;left:0;right:0;top:100%;margin-top:2px;border:1px solid #e5e7eb;border-radius:8px;max-height:220px;overflow-y:auto;background:#fff;box-shadow:0 4px 16px #0000001f}.cc-item{padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background .1s}.cc-item:last-child{border-bottom:none}.cc-item:hover{background:#f5f3ff}.cc-item-all{color:#7c3aed;font-weight:600;background:#faf5ff}.cc-item-all:hover{background:#f3e8ff}.cc-item-name{font-weight:600;font-size:.85rem;color:#1f2937}.cc-item-all .cc-item-name{color:#7c3aed}.cc-item-detail{font-size:.75rem;color:#6b7280;margin-top:.1rem}.cc-empty{padding:.75rem;text-align:center;color:#9ca3af;font-size:.82rem}.cc-more{padding:.4rem .75rem;text-align:center;color:#9ca3af;font-size:.75rem;font-style:italic;border-top:1px solid #f3f4f6;background:#fafafa}.test-entry-page{max-width:1200px;margin:0 auto}.test-form{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:2rem;margin-bottom:2rem}.form-section{margin-bottom:2.5rem}.form-section:last-child{margin-bottom:0}.form-section h2{font-size:1.25rem;font-weight:600;color:#111827;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:2px solid #e5e7eb}.section-hint{color:#6b7280;font-size:.875rem;margin:-.5rem 0 1.5rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:1.5rem}.form-row:last-child{margin-bottom:0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:500;color:#374151;margin-bottom:.5rem;font-size:.875rem}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f3f4f6;cursor:not-allowed}.checkbox-group{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.75rem;border-radius:.5rem;transition:background .2s}.checkbox-label:hover{background:#f9fafb}.checkbox-label input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.checkbox-label span{font-size:.875rem;color:#374151}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.btn-large{padding:.875rem 2rem;font-size:1rem}.customer-select-row{display:flex;gap:.5rem;align-items:stretch}.customer-select-row select{flex:1}.btn-add-customer{padding:.75rem 1rem;background:#fff;color:#7c3aed;border:1px solid #7c3aed;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-add-customer:hover:not(:disabled){background:#7c3aed;color:#fff}.btn-add-customer:disabled{opacity:.5;cursor:not-allowed}.field-feedback{display:flex;justify-content:space-between;align-items:center;margin-top:.25rem;min-height:1rem}.field-ideal{font-size:.7rem;color:#9ca3af;font-weight:400}.field-status-label{font-size:.7rem;font-weight:600;padding:.0625rem .375rem;border-radius:.25rem;white-space:nowrap}.field-status-label.status-green{color:#065f46;background:#d1fae5}.field-status-label.status-yellow{color:#92400e;background:#fef3c7}.field-status-label.status-red{color:#991b1b;background:#fee2e2}.form-group.field-status-green input{border-color:#10b981;background:#f0fdf4}.form-group.field-status-green input:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b98126}.form-group.field-status-yellow input{border-color:#f59e0b;background:#fffbeb}.form-group.field-status-yellow input:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}.form-group.field-status-red input{border-color:#ef4444;background:#fef2f2}.form-group.field-status-red input:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}.chem-section-label{font-size:.9rem;font-weight:600;color:#7c3aed;margin:1.25rem 0 .5rem;padding-bottom:.35rem;border-bottom:2px solid #ede9fe}.chem-section-label:first-of-type{margin-top:.75rem}.chem-section-label.additional{color:#6b7280;border-bottom-color:#e5e7eb}.test-chem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:.75rem}.test-chem-card{border:2px solid #e5e7eb;border-radius:.75rem;background:#fff;overflow:hidden;transition:all .2s}.test-chem-card:hover{border-color:#c4b5fd;box-shadow:0 4px 12px #7c3aed14;transform:translateY(-1px)}.test-chem-card-header{display:flex;flex-direction:column;align-items:center;text-align:center;padding:.75rem .75rem .375rem;gap:.125rem}.test-chem-card-icon{font-size:1.5rem;line-height:1}.test-chem-card-name{font-size:.8125rem;font-weight:600;color:#111827;margin-top:.125rem}.test-chem-card-unit{font-size:.6875rem;color:#9ca3af}.test-chem-card-body{padding:0 .75rem .75rem;position:relative}.test-chem-card-body input{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;text-align:center;font-weight:500;transition:all .2s;box-sizing:border-box;font-family:inherit}.test-chem-card-body input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.test-chem-card-body input:disabled{background:#f9fafb;cursor:not-allowed}.test-chem-card-body input::placeholder{color:#d1d5db;font-weight:400;font-size:.8125rem}.test-chem-card-feedback{display:flex;justify-content:space-between;align-items:center;margin-top:.25rem;min-height:1rem}.test-chem-card-empty{border-color:#e5e7eb;background:#f9fafb}.test-chem-card-empty .test-chem-card-icon{opacity:.4}.test-chem-card-empty .test-chem-card-name{color:#9ca3af}.test-chem-card-empty .test-chem-card-body input{background:#f3f4f6;border-color:#e5e7eb;color:#9ca3af}.field-not-measured{font-size:.7rem;color:#9ca3af;font-style:italic;text-align:center;width:100%}.test-chem-card-green{border-color:#10b981;background:#f0fdf4}.test-chem-card-green .test-chem-card-body input{border-color:#10b981;background:#fff}.test-chem-card-green .test-chem-card-body input:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b98126}.test-chem-card-yellow{border-color:#f59e0b;background:#fffbeb}.test-chem-card-yellow .test-chem-card-body input{border-color:#f59e0b;background:#fff}.test-chem-card-yellow .test-chem-card-body input:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b26}.test-chem-card-red{border-color:#ef4444;background:#fef2f2}.test-chem-card-red .test-chem-card-body input{border-color:#ef4444;background:#fff}.test-chem-card-red .test-chem-card-body input:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}.test-chem-card-body input[type=number]::-webkit-inner-spin-button,.test-chem-card-body input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.test-chem-card-body input[type=number]{-moz-appearance:textfield}.btn-weather-fetch{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:1px solid #d1d5db;border-radius:.375rem;padding:.25rem .375rem;font-size:.875rem;cursor:pointer;line-height:1;transition:all .2s}.btn-weather-fetch:hover{background:#f3f4f6;border-color:#9ca3af}.weather-hint{font-size:.65rem;color:#9ca3af;text-align:center;margin-top:-.15rem;margin-bottom:.15rem;line-height:1.2}.temp-adjust-toggle{display:flex;align-items:center;gap:.35rem;margin-top:.35rem;font-size:.72rem;color:#6b7280;cursor:pointer;-webkit-user-select:none;user-select:none}.temp-adjust-toggle input[type=checkbox]{width:.85rem;height:.85rem;accent-color:#7c3aed;margin:0;flex-shrink:0}.temp-adjust-toggle span{line-height:1.2}.btn-batch-toggle{padding:.5rem 1rem;background:#fff;color:#7c3aed;border:1px solid #7c3aed;border-radius:.5rem;font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-batch-toggle:hover{background:#7c3aed;color:#fff}.btn-batch-toggle.btn-batch-exit{border-color:#ef4444;color:#ef4444}.btn-batch-toggle.btn-batch-exit:hover{background:#ef4444;color:#fff}.batch-stepper{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:1.5rem;padding:.75rem 1rem;background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.batch-step{display:flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:1rem;font-size:.75rem;white-space:nowrap;transition:all .2s}.batch-step.pending{color:#9ca3af;background:#f3f4f6}.batch-step.active{color:#7c3aed;background:#ede9fe;font-weight:600;box-shadow:0 0 0 2px #7c3aed}.batch-step.done{color:#065f46;background:#d1fae5}.batch-step.skipped{color:#92400e;background:#fef3c7}.batch-step.failed{color:#991b1b;background:#fee2e2}.batch-step-dot{width:1.25rem;height:1.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:700;flex-shrink:0}.batch-step.pending .batch-step-dot{background:#e5e7eb;color:#6b7280}.batch-step.active .batch-step-dot{background:#7c3aed;color:#fff}.batch-step.done .batch-step-dot{background:#10b981;color:#fff}.batch-step.skipped .batch-step-dot{background:#f59e0b;color:#fff}.batch-step.failed .batch-step-dot{background:#ef4444;color:#fff}.batch-step-name{max-width:100px;overflow:hidden;text-overflow:ellipsis}.batch-current-customer{padding:.75rem;background:#ede9fe;border:1px solid #ddd6fe;border-radius:.5rem;font-size:.875rem;font-weight:600;color:#5b21b6}.batch-select-card{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.batch-select-toolbar{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.batch-select-count{margin-left:auto;font-size:.8125rem;color:#6b7280}.btn-sm{padding:.375rem .75rem;font-size:.75rem;border-radius:.375rem}.batch-customer-list{display:flex;flex-direction:column;gap:.25rem;max-height:50vh;overflow-y:auto}.batch-customer-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:.5rem;cursor:pointer;transition:all .15s;border:1px solid transparent}.batch-customer-item:hover{background:#f9fafb}.batch-customer-item.selected{background:#f5f3ff;border-color:#ddd6fe}.batch-customer-item input[type=checkbox]{width:1.125rem;height:1.125rem;cursor:pointer;flex-shrink:0}.batch-customer-info{display:flex;flex-direction:column;gap:.125rem}.batch-customer-name{font-size:.875rem;font-weight:500;color:#111827}.batch-customer-meta{font-size:.75rem;color:#9ca3af}.batch-select-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}.batch-summary{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:2rem}.batch-summary-stats{display:flex;gap:1.5rem;margin-bottom:1.5rem}.batch-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1rem 1.5rem;border-radius:.75rem;min-width:90px}.batch-stat-num{font-size:2rem;font-weight:700;line-height:1}.batch-stat-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.batch-stat-success{background:#d1fae5;color:#065f46}.batch-stat-skip{background:#fef3c7;color:#92400e}.batch-stat-fail{background:#fee2e2;color:#991b1b}.batch-results-list{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1.5rem}.batch-result-row{display:flex;align-items:center;gap:.625rem;padding:.625rem .75rem;border-radius:.5rem;font-size:.875rem}.batch-result-row.success{background:#f0fdf4}.batch-result-row.skipped{background:#fffbeb}.batch-result-row.failed{background:#fef2f2}.batch-result-icon{flex-shrink:0}.batch-result-name{font-weight:500;color:#111827}.batch-result-detail{margin-left:auto;font-size:.75rem;color:#6b7280}.batch-result-error{margin-left:auto;font-size:.75rem;color:#991b1b}.batch-summary-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid #e5e7eb}@media (max-width: 768px){.test-form{padding:1.5rem}.form-row,.form-grid{grid-template-columns:1fr}.test-chem-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.test-chem-card-icon{font-size:1.25rem}.test-chem-card-name{font-size:.75rem}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}.page-header{flex-direction:column;gap:1rem}.page-header h1{font-size:1.5rem}.batch-stepper{gap:.125rem}.batch-step-name{display:none}.batch-summary-stats{flex-direction:column;gap:.75rem}.batch-select-actions{flex-direction:column-reverse}.batch-select-actions button{width:100%}.batch-summary-actions{flex-direction:column-reverse}.batch-summary-actions button{width:100%}.weather-hint{font-size:.6rem}}.test-detail-modal{max-width:900px;max-height:90vh;overflow-y:auto}.modal-content{background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:100%}.modal-header{display:flex;justify-content:space-between;align-items:start;padding:2rem 2rem 1.5rem;border-bottom:2px solid #e5e7eb}.modal-header h2{font-size:1.75rem;font-weight:700;color:#111827;margin:0 0 .5rem}.test-date-large{color:#6b7280;font-size:.875rem;margin:0}.close-button{background:none;border:none;color:#6b7280;cursor:pointer;padding:.5rem;border-radius:.375rem;transition:all .2s}.close-button:hover{background:#f3f4f6;color:#111827}.close-button svg{width:1.5rem;height:1.5rem}.modal-body{padding:1.5rem 2rem}.conditions-section{margin-bottom:2rem}.conditions-section h3{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 1rem}.conditions-badges{display:flex;gap:.75rem;flex-wrap:wrap}.condition-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500}.condition-badge.condition-warning{background:#fef3c7;color:#78350f;border:1px solid #fbbf24}.readings-section{margin-bottom:2rem}.readings-section h3{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 1.5rem}.readings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.reading-card-detail{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;text-align:center}.reading-card-detail .reading-label{font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.025em;margin-bottom:.5rem}.reading-card-detail .reading-value{font-size:1.75rem;font-weight:700;margin-bottom:.5rem}.reading-card-detail .reading-value .value{color:#111827}.reading-card-detail .reading-value .unit{font-size:.875rem;color:#6b7280;margin-left:.25rem}.reading-card-detail .reading-value .not-tested{color:#9ca3af}.reading-card-detail .reading-status{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.reading-card-detail .reading-status.status-green{background:#d1fae5;color:#065f46}.reading-card-detail .reading-status.status-yellow{background:#fef3c7;color:#92400e}.reading-card-detail .reading-status.status-red{background:#fee2e2;color:#991b1b}.reading-card-detail .reading-status.status-gray{background:#f3f4f6;color:#6b7280}.recommendations-section{margin-bottom:2rem}.recommendations-section h3{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 1.5rem}.recommendations-list{display:flex;flex-direction:column;gap:1rem}.recommendation-card{border:2px solid #e5e7eb;border-radius:.5rem;padding:1.25rem;transition:all .2s}.recommendation-card.priority-critical{border-color:#dc2626;background:#fef2f2}.recommendation-card.priority-high{border-color:#f59e0b;background:#fffbeb}.recommendation-card.priority-normal{border-color:#e5e7eb;background:#fff}.rec-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.rec-priority{font-size:1.5rem;line-height:1}.rec-chemical{font-size:1.125rem;font-weight:600;color:#111827}.rec-amount{font-size:2rem;font-weight:700;color:#7c3aed;margin-bottom:.5rem}.rec-amount .amount-value{margin-right:.25rem}.rec-amount .amount-unit{font-size:1.25rem;color:#6b7280}.rec-reason{font-size:.875rem;color:#4b5563;margin-bottom:.75rem}.rec-warning{display:flex;align-items:start;gap:.5rem;padding:.75rem;background:#fef3c7;border:1px solid #fbbf24;border-radius:.375rem;font-size:.8125rem;color:#78350f;margin-top:.75rem}.warning-icon{width:1rem;height:1rem;flex-shrink:0;margin-top:.125rem}.no-recommendations{text-align:center;padding:3rem 2rem;background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-radius:.5rem}.success-icon{font-size:3rem;margin-bottom:1rem}.no-recommendations h4{font-size:1.25rem;font-weight:600;color:#065f46;margin:0 0 .5rem}.no-recommendations p{color:#047857;margin:0}.notes-section{margin-bottom:2rem}.notes-section h3{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 1rem}.notes-text{color:#4b5563;line-height:1.6;margin:0;padding:1rem;background:#f9fafb;border-left:3px solid #7c3aed;border-radius:.375rem}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem 2rem;border-top:1px solid #e5e7eb}@media (max-width: 768px){.test-detail-modal{max-height:100vh;max-height:100dvh;border-radius:0;margin:0}.modal-overlay{padding:0}.modal-header{padding:1.5rem}.modal-header h2{font-size:1.5rem}.modal-body{padding:1rem 1.5rem}.readings-grid{grid-template-columns:repeat(2,1fr)}.modal-footer{flex-direction:column-reverse;padding:1rem 1.5rem}.modal-footer button{width:100%}.report-tracking-info{padding:0 1.5rem 1rem!important}}@media (max-width: 480px){.readings-grid{grid-template-columns:1fr}.rec-amount{font-size:1.5rem}}.test-history-page{max-width:1400px;margin:0 auto}.page-header h1{font-size:1.75rem;font-weight:700;color:#111827;margin:0 0 .5rem}.header-actions{display:flex;gap:.75rem;align-items:center}.view-toggle{display:flex;background:#f3f4f6;border-radius:.5rem;padding:.25rem;gap:.125rem}.view-toggle-btn{padding:.5rem .625rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;color:#6b7280;display:flex;align-items:center;justify-content:center;transition:all .15s}.view-toggle-btn:hover{color:#374151;background:#e5e7eb}.view-toggle-btn.active{background:#fff;color:#7c3aed;box-shadow:0 1px 3px #0000001a}.customer-selector-bar{display:flex;align-items:center;gap:1rem;background:#fff;padding:1rem 1.5rem;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.customer-selector-bar label{font-weight:500;color:#374151;font-size:.875rem}.customer-select{flex:1;max-width:400px;padding:.625rem .875rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;cursor:pointer;transition:all .2s}.customer-select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.test-count{color:#6b7280;font-size:.875rem;padding:.375rem .875rem;background:#f3f4f6;border-radius:9999px;font-weight:500}.customer-info-card{display:flex;align-items:center;gap:1.5rem;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;padding:1.5rem;border-radius:.75rem;margin-bottom:2rem;box-shadow:0 4px 12px #7c3aed33}.customer-info-icon{font-size:3rem;line-height:1}.customer-info-details{flex:1}.customer-info-name{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.customer-info-meta{opacity:.9;font-size:.875rem}.tests-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.test-card{background:#fff;border-radius:.75rem;padding:1.25rem;cursor:pointer;transition:all .2s;border-left:4px solid #e5e7eb;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;display:flex;flex-direction:column}.test-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.test-card.card-status-green{border-left-color:#10b981;background:linear-gradient(to right,#f0fdf4,#fff 8%)}.test-card.card-status-yellow{border-left-color:#f59e0b;background:linear-gradient(to right,#fffbeb,#fff 8%)}.test-card.card-status-red{border-left-color:#ef4444;background:linear-gradient(to right,#fef2f2,#fff 8%)}.test-card.card-status-green:hover{border-left-color:#059669}.test-card.card-status-yellow:hover{border-left-color:#d97706}.test-card.card-status-red:hover{border-left-color:#dc2626}.test-card-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:.75rem;padding-bottom:.625rem;border-bottom:1px solid #f3f4f6}.test-date{display:flex;align-items:center;gap:.75rem}.date-label{font-size:.9375rem;font-weight:600;color:#111827}.water-body-badge{display:inline-block;padding:.1rem .45rem;background:#f5f3ff;color:#7c3aed;border-radius:9999px;font-size:.7rem;font-weight:500;border:1px solid #e9e5ff}.tested-by-badge{font-size:.75rem;color:#9ca3af;font-weight:400}.badge-latest{display:inline-block;padding:.125rem .5rem;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border-radius:9999px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.test-readings-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.reading-chip{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;border-radius:.5rem;font-size:.8125rem;background:#f9fafb;border:1px solid #e5e7eb}.chip-label{font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.025em;font-size:.6875rem}.chip-value{font-weight:700;font-size:.9375rem}.chip-green .chip-value{color:#10b981}.chip-green{border-color:#a7f3d0;background:#f0fdf4}.chip-yellow .chip-value{color:#f59e0b}.chip-yellow{border-color:#fde68a;background:#fffbeb}.chip-red .chip-value{color:#ef4444}.chip-red{border-color:#fecaca;background:#fef2f2}.chip-gray .chip-value{color:#9ca3af}.test-status-bar{padding:.375rem .625rem;border-radius:.375rem;margin-bottom:.5rem;font-size:.75rem;font-weight:600}.status-bar-green{background:#ecfdf5;color:#065f46}.status-bar-yellow{background:#fffbeb;color:#92400e}.status-bar-red{background:#fef2f2;color:#991b1b}.status-label{display:flex;align-items:center;gap:.25rem}.rec-checklist{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem;padding:.5rem;background:#faf5ff;border-radius:.375rem;border:1px solid #e9d5ff}.rec-checklist-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border-radius:.25rem;cursor:pointer;font-size:.8rem;color:#374151;transition:background .15s}.rec-checklist-item:hover{background:#f3e8ff}.rec-checklist-item input[type=checkbox]{accent-color:#7c3aed;width:16px;height:16px;cursor:pointer;flex-shrink:0}.rec-checklist-item.rec-completed .rec-checklist-text{text-decoration:line-through;opacity:.55;color:#6b7280}.rec-checklist-text{flex:1}.rec-checklist-text strong{color:#7c3aed;font-weight:600}.rec-completed .rec-checklist-text strong{color:#6b7280}.rec-completed-time{font-size:.7rem;color:#059669;font-weight:500;flex-shrink:0}.test-notes{display:flex;align-items:start;gap:.5rem;padding:.5rem .625rem;background:#fffbeb;border-left:3px solid #f59e0b;border-radius:.375rem;margin-bottom:.5rem}.note-icon{width:.875rem;height:.875rem;flex-shrink:0;color:#f59e0b;margin-top:.125rem}.note-text{flex:1;font-size:.8125rem;color:#78350f;line-height:1.4}.test-card-footer{display:flex;justify-content:flex-end;padding-top:.625rem;border-top:1px solid #f3f4f6;margin-top:auto}.view-link{color:#7c3aed;font-weight:500;font-size:.8125rem;display:flex;align-items:center;gap:.25rem}.calendar-container{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;overflow:hidden}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#faf5ff;border-bottom:1px solid #e5e7eb}.calendar-header h2{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0}.calendar-title{display:flex;align-items:center;gap:.75rem}.calendar-nav-btn{width:2.25rem;height:2.25rem;border:1px solid #e5e7eb;background:#fff;border-radius:.5rem;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#374151;transition:all .15s}.calendar-nav-btn:hover{background:#f3f4f6;border-color:#d1d5db}.calendar-today-btn{padding:.25rem .75rem;border:1px solid #d1d5db;background:#fff;border-radius:.375rem;font-size:.75rem;font-weight:500;cursor:pointer;color:#6b7280;transition:all .15s}.calendar-today-btn:hover{background:#f3f4f6;color:#374151}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day-header{padding:.625rem .5rem;text-align:center;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e5e7eb}.calendar-cell{min-height:80px;padding:.375rem;border-bottom:1px solid #f3f4f6;border-right:1px solid #f3f4f6;position:relative}.calendar-cell-empty{background:#f9fafb}.calendar-cell.today{background:#faf5ff}.calendar-cell.today .calendar-day-number{background:#7c3aed;color:#fff;border-radius:9999px;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center}.calendar-cell.has-tests{background:#fefce8}.calendar-day-number{font-size:.75rem;font-weight:500;color:#6b7280;margin-bottom:.25rem}.calendar-test-dot{padding:.125rem .375rem;border-radius:.25rem;margin-bottom:.125rem;cursor:pointer;transition:opacity .15s;font-size:.625rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calendar-test-dot:hover{opacity:.8}.calendar-test-dot.dot-green{background:#d1fae5;color:#065f46}.calendar-test-dot.dot-yellow{background:#fef3c7;color:#92400e}.calendar-test-dot.dot-red{background:#fecaca;color:#991b1b}.calendar-test-label{font-weight:500}.calendar-month-tests{padding:1.5rem;border-top:2px solid #e5e7eb}.calendar-month-tests h3{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 1rem}.calendar-no-tests{text-align:center;padding:2rem;color:#9ca3af;font-size:.875rem}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a}.alert-icon{width:1.25rem;height:1.25rem;flex-shrink:0;margin-top:.125rem}.test-card-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .2s}.test-card:hover .test-card-actions{opacity:1}.test-action-btn{background:none;border:1px solid transparent;padding:.25rem .5rem;border-radius:.375rem;cursor:pointer;font-size:.8rem;transition:all .15s;line-height:1}.test-action-edit:hover{background:#faf5ff;border-color:#c4b5fd}.test-action-delete:hover{background:#fef2f2;border-color:#fecaca}.test-card-editing{cursor:default;border-left-color:#7c3aed!important;background:#faf5ff!important;box-shadow:0 4px 12px #7c3aed1f!important}.test-card-editing:hover{transform:none}.test-delete-confirm{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;margin-top:.5rem}.test-delete-msg{font-size:.8125rem;font-weight:500;color:#991b1b}.test-delete-actions{display:flex;gap:.5rem}.test-edit-form{margin-top:.5rem}.test-edit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.5rem;margin-bottom:.75rem}.test-edit-field label{display:block;font-size:.625rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.test-edit-field input{width:100%;padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.8125rem;text-align:center;font-family:inherit;box-sizing:border-box}.test-edit-field input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.test-edit-field input[type=number]::-webkit-inner-spin-button,.test-edit-field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.test-edit-field input[type=number]{-moz-appearance:textfield}.test-edit-notes label{display:block;font-size:.625rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.test-edit-notes textarea{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.8125rem;font-family:inherit;resize:vertical;box-sizing:border-box}.test-edit-notes textarea:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.test-edit-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e5e7eb}.btn-sm{padding:.375rem .875rem;font-size:.8125rem}.btn-danger{padding:.375rem .875rem;border-radius:.375rem;font-weight:500;font-size:.8125rem;cursor:pointer;transition:all .2s;border:none;background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.tests-by-customer{display:flex;flex-direction:column;gap:1.5rem}.customer-test-group{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}.customer-test-group-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background .15s}.customer-test-group-header:hover{background:#f9fafb}.customer-group-info{flex:1}.customer-group-name{font-size:1rem;font-weight:700;color:#1f2937}.customer-group-meta{font-size:.8rem;color:#6b7280;margin-top:.15rem}.customer-group-status{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;flex-shrink:0}.status-indicator-green{background:#ecfdf5;color:#059669}.status-indicator-yellow{background:#fffbeb;color:#d97706}.status-indicator-red{background:#fef2f2;color:#dc2626}.customer-test-group .tests-card-grid{padding:.75rem 1rem;gap:.75rem}.btn-view-more{display:block;width:100%;padding:.6rem;background:#f9fafb;border:none;border-top:1px solid #f3f4f6;color:#7c3aed;font-size:.85rem;font-weight:600;cursor:pointer;text-align:center;transition:background .15s}.btn-view-more:hover{background:#f5f3ff}.customers-no-tests{background:#f9fafb;border:1px dashed #e5e7eb;border-radius:.75rem;padding:1rem 1.25rem}.customers-no-tests h3{font-size:.85rem;font-weight:600;color:#6b7280;margin:0 0 .5rem}.no-test-customers-list{display:flex;flex-wrap:wrap;gap:.35rem}.no-test-customer-chip{display:inline-block;padding:.2rem .5rem;background:#fff;border:1px solid #e5e7eb;border-radius:9999px;font-size:.78rem;color:#6b7280}@media (max-width: 768px){.page-header{flex-direction:column;gap:1rem}.header-actions{width:100%;justify-content:space-between}.page-header .btn-primary{flex:1}.customer-selector-bar{flex-direction:column;align-items:stretch}.customer-select{max-width:none}.tests-card-grid{grid-template-columns:1fr}.test-readings-grid{flex-direction:column}.reading-chip{justify-content:space-between}.customer-info-card{flex-direction:column;text-align:center}.page-header h1{font-size:1.5rem}.test-card-actions{opacity:1}.test-edit-grid{grid-template-columns:repeat(3,1fr)}.test-delete-confirm{flex-direction:column;gap:.75rem;text-align:center}.calendar-cell{min-height:50px;padding:.25rem}.calendar-test-label{display:none}.calendar-test-dot{width:8px;height:8px;border-radius:50%;padding:0;display:inline-block}.test-date{flex-wrap:wrap;gap:.35rem}.date-label{font-size:.85rem}.water-body-badge{font-size:.65rem}.tested-by-badge{font-size:.7rem}}.users-page{max-width:1400px;margin:0 auto}.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:#fff;border-radius:.75rem;border:2px dashed #e5e7eb;text-align:center}.access-denied-icon{font-size:4rem;margin-bottom:1rem}.access-denied h2{font-size:1.5rem;font-weight:600;color:#111827;margin:0 0 .5rem}.access-denied p{color:#6b7280;margin:0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.plan-limits-bar{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem 1.5rem;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.plan-limits-info{display:flex;align-items:center;gap:1rem}.plan-badge{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}.user-count{font-size:.875rem;color:#374151;font-weight:500}.limit-warning{font-size:.875rem;color:#d97706;font-weight:500}.limit-approaching{font-size:.875rem;color:#6b7280}.table-container{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.users-table th{text-align:left;padding:.875rem 1rem;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.users-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s}.users-table tbody tr:hover{background:#f9fafb}.users-table tbody tr:last-child{border-bottom:none}.users-table td{padding:1rem;vertical-align:middle}.user-name-cell{display:flex;align-items:center;gap:.75rem}.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;flex-shrink:0}.user-name{font-weight:600;color:#111827}.you-badge{font-size:.625rem;background:#dbeafe;color:#1e40af;padding:.125rem .5rem;border-radius:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.user-email{color:#6b7280;font-size:.875rem}.role-badge{display:inline-block;padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}.role-admin{background:#fef3c7;color:#92400e}.role-user{background:#dbeafe;color:#1e40af}.role-viewer{background:#f3f4f6;color:#6b7280}.role-org-admin{background:#ede9fe;color:#6d28d9}.role-site-admin{background:#e0f2fe;color:#0369a1}.role-technician{background:#ecfdf5;color:#065f46}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}.status-inactive{background:#fee2e2;color:#991b1b}.status-pending{background:#fffbeb;color:#d97706;border:1px solid #fcd34d}.date-cell{color:#6b7280;font-size:.875rem}.no-action{color:#d1d5db}.btn-action{padding:.5rem;border:none;background:transparent;cursor:pointer;border-radius:.375rem;font-size:1.25rem;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-action:hover{background:#f3f4f6}.btn-delete:hover{background:#fee2e2}.action-buttons{display:flex;gap:.25rem}.btn-danger{background:#dc2626;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-danger:hover{background:#b91c1c}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:#fff;border-radius:.5rem;border:2px dashed #e5e7eb}.empty-state h2{font-size:1.5rem;font-weight:600;color:#111827;margin:0 0 .5rem}.modal-content{background:#fff;border-radius:.75rem;width:100%;max-height:90vh;overflow-y:auto}.modal-invite{max-width:500px;padding:2rem}.modal-small{max-width:400px;padding:2rem}.modal-small h2{font-size:1.25rem;font-weight:600;color:#111827;margin:0 0 .5rem}.modal-small p{color:#6b7280;margin:0 0 1.5rem;line-height:1.5}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.form-group input:disabled,.form-group select:disabled{background:#f9fafb;color:#9ca3af}.role-descriptions{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:.75rem 1rem;margin-bottom:1rem}.role-desc{font-size:.75rem;color:#6b7280;margin-bottom:.375rem}.role-desc:last-child{margin-bottom:0}.role-desc strong{color:#374151}.invite-success p{color:#374151;margin:0 0 1rem}.credentials-box{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;margin-bottom:1rem}.credential-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.credential-row:first-child{border-bottom:1px solid #e5e7eb}.credential-label{font-size:.875rem;color:#6b7280;font-weight:500}.credential-value{font-size:.875rem;color:#111827;font-weight:600}.credential-password{font-family:Courier New,monospace;background:#fef3c7;padding:.25rem .5rem;border-radius:.25rem}.credential-note{font-size:.875rem;color:#d97706;background:#fffbeb;border:1px solid #fde68a;padding:.75rem;border-radius:.5rem;margin-bottom:1rem}@media (max-width: 768px){.page-header{flex-direction:column;gap:1rem}.page-header button{width:100%}.plan-limits-bar{flex-direction:column;align-items:flex-start}.table-container{box-shadow:none;background:transparent}.users-table{border:none}.users-table thead{display:none}.users-table tbody{display:flex;flex-direction:column;gap:.75rem}.users-table tbody tr{display:flex;flex-wrap:wrap;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;box-shadow:0 1px 3px #0000000f;gap:.25rem;align-items:center}.users-table tbody tr:hover{background:#fff}.users-table td{padding:0;border:none}.users-table td[data-label=Name]{width:100%;padding-bottom:.5rem;margin-bottom:.5rem;border-bottom:1px solid #f3f4f6}.users-table td[data-label=Name] .user-name{font-size:1.05rem}.users-table td[data-label=Email]{width:100%;padding-bottom:.5rem}.users-table td[data-label=Email] .user-email{font-size:.85rem;word-break:break-all}.users-table td[data-label=Role],.users-table td[data-label=Status]{margin-right:.5rem}.users-table td[data-label="Last Login"],.users-table td[data-label=Joined]{display:flex;align-items:center;gap:.35rem;margin-right:1rem}.users-table td[data-label="Last Login"]:before,.users-table td[data-label=Joined]:before{content:attr(data-label) ": ";font-size:.7rem;font-weight:600;color:#9ca3af;white-space:nowrap}.users-table td[data-label=Actions]{width:100%;padding-top:.5rem;margin-top:.25rem;border-top:1px solid #f3f4f6}.users-table td[data-label=Actions] .action-buttons{gap:.75rem}.users-table td[data-label=Actions] .btn-action{font-size:1.35rem;padding:.4rem}}.portal-invites-page{max-width:1400px;margin:0 auto}.summary-stats-bar{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.stat-card{flex:1;min-width:120px;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem 1.25rem;text-align:center}.stat-card-value{font-size:1.5rem;font-weight:700;color:#111827}.stat-card-label{font-size:.75rem;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem}.stat-card.stat-active .stat-card-value{color:#16a34a}.stat-card.stat-pending .stat-card-value{color:#d97706}.stat-card.stat-revoked .stat-card-value{color:#dc2626}.filters-row{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:center;flex-wrap:wrap}.filter-select{padding:.625rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;color:#374151;background:#fff;cursor:pointer;min-width:140px}.filter-select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.filter-search{flex:1;min-width:200px;position:relative}.filter-search input{width:100%;padding:.625rem .75rem .625rem 2.25rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;box-sizing:border-box}.filter-search input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.filter-search .search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#9ca3af}.portal-invites-table{width:100%;border-collapse:collapse}.portal-invites-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.portal-invites-table th{text-align:left;padding:.875rem 1rem;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.portal-invites-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s}.portal-invites-table tbody tr:hover{background:#f9fafb}.portal-invites-table tbody tr:last-child{border-bottom:none}.portal-invites-table td{padding:.875rem 1rem;vertical-align:middle;font-size:.875rem}.customer-name-text{font-weight:600;color:#111827}.customer-email-text{color:#6b7280;font-size:.8rem}.portal-user-text{color:#374151}.portal-user-none{color:#d1d5db;font-style:italic}.access-select{padding:.375rem .5rem;border:1px solid #e5e7eb;border-radius:.375rem;font-size:.8rem;color:#374151;background:#fff;cursor:pointer}.access-select:focus{outline:none;border-color:#7c3aed}.access-text{font-size:.8rem;color:#6b7280}.portal-action-btn{padding:.25rem .5rem;border:1px solid #d1d5db;background:#fff;border-radius:.375rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.portal-action-btn:hover{background:#f3f4f6}.portal-action-btn.btn-copy{color:#7c3aed;border-color:#c4b5fd}.portal-action-btn.btn-copy:hover{background:#f5f3ff}.portal-action-btn.btn-resend{color:#2563eb;border-color:#93c5fd}.portal-action-btn.btn-resend:hover{background:#eff6ff}.portal-action-btn.btn-revoke{color:#dc2626;border-color:#fca5a5}.portal-action-btn.btn-revoke:hover{background:#fef2f2}.portal-action-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.summary-stats-bar{flex-wrap:wrap}.stat-card{min-width:calc(50% - .5rem);flex:unset}.filters-row{flex-direction:column}.filter-search,.filter-select{width:100%}.table-container{box-shadow:none;background:transparent}.portal-invites-table thead{display:none}.portal-invites-table tbody{display:flex;flex-direction:column;gap:.75rem}.portal-invites-table tbody tr{display:flex;flex-wrap:wrap;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;box-shadow:0 1px 3px #0000000f;gap:.25rem;align-items:center}.portal-invites-table tbody tr:hover{background:#fff}.portal-invites-table td{padding:0;border:none}.portal-invites-table td[data-label=Customer]{width:100%;padding-bottom:.5rem;margin-bottom:.5rem;border-bottom:1px solid #f3f4f6}.portal-invites-table td[data-label="Portal User"],.portal-invites-table td[data-label=Access],.portal-invites-table td[data-label=Status]{margin-right:.5rem}.portal-invites-table td[data-label=Sent],.portal-invites-table td[data-label=Accepted]{display:flex;align-items:center;gap:.35rem;margin-right:1rem}.portal-invites-table td[data-label=Sent]:before,.portal-invites-table td[data-label=Accepted]:before{content:attr(data-label) ": ";font-size:.7rem;font-weight:600;color:#9ca3af;white-space:nowrap}.portal-invites-table td[data-label=Actions]{width:100%;padding-top:.5rem;margin-top:.25rem;border-top:1px solid #f3f4f6}}.settings-page{max-width:900px;margin:0 auto}.settings-header{margin-bottom:2rem}.settings-header h1{font-size:2rem;font-weight:700;color:#111827;margin:0 0 .5rem}.alert{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:.5rem;margin-bottom:1.5rem}.alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.alert-icon{width:20px;height:20px;flex-shrink:0}.settings-accordion{display:flex;flex-direction:column;gap:.75rem}.accordion-section{border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden;background:#fff;transition:all .2s}.accordion-section.open{border-color:#c4b5fd;box-shadow:0 2px 8px #7c3aed14}.accordion-header{display:flex;align-items:center;width:100%;padding:1rem 1.5rem;background:none;border:none;cursor:pointer;transition:all .2s;gap:.75rem;text-align:left}.accordion-header:hover{background:#faf5ff}.accordion-section.open .accordion-header{border-bottom:1px solid #e5e7eb;background:#faf5ff}.accordion-icon{font-size:1.25rem}.accordion-title{flex:1;font-size:1rem;font-weight:600;color:#111827}.accordion-arrow{font-size:.875rem;color:#9ca3af}.settings-section{display:flex;flex-direction:column;gap:1.5rem;padding:1rem 1.5rem 1.5rem}.settings-card{background:#fff;border-radius:.75rem;padding:1.5rem 2rem;box-shadow:0 1px 3px #0000001a}.accordion-section .settings-section{padding:0}.accordion-section .settings-card{box-shadow:none;border-radius:0;padding:1.25rem 1.5rem;border-bottom:1px solid #f3f4f6}.accordion-section .settings-card:last-child{border-bottom:none}.settings-card h2{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 1rem}.card-subtitle{font-size:.875rem;color:#6b7280;margin:-.5rem 0 1.25rem}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.info-value{font-size:1rem;color:#111827;font-weight:500}.profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.profile-header h2{margin-bottom:0}.btn-edit-profile{background:none;border:1px solid #d1d5db;padding:.375rem .75rem;border-radius:.375rem;font-size:.8125rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s}.btn-edit-profile:hover{border-color:#7c3aed;color:#7c3aed;background:#faf5ff}.profile-edit-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e5e7eb}.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db;padding:.75rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;transition:all .2s;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.form-group input:disabled{background:#f9fafb;color:#9ca3af}.form-hint{display:block;font-size:.75rem;color:#9ca3af;margin-top:.375rem}.plan-display{margin-top:.5rem}.plan-display-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.plan-name-badge{font-size:1.25rem;font-weight:700;padding:.5rem 1.25rem;border-radius:.5rem}.plan-trial{background:#fef3c7;color:#92400e}.plan-homeowner{background:#d1fae5;color:#065f46}.plan-starter{background:#dbeafe;color:#1e40af}.plan-professional{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}.plan-enterprise{background:#111827;color:#fff}.plan-status-badge{font-size:.75rem;font-weight:600;padding:.25rem .75rem;border-radius:1rem}.status-trial{background:#fef3c7;color:#92400e}.status-active{background:#d1fae5;color:#065f46}.status-expired,.status-suspended{background:#fee2e2;color:#991b1b}.trial-info{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:#fffbeb;border:1px solid #fde68a;border-radius:.5rem}.trial-days{font-size:1.25rem;font-weight:700;color:#92400e}.trial-ends{font-size:.875rem;color:#a16207}.trial-expired{padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#991b1b;font-weight:500}.usage-grid{display:flex;flex-direction:column;gap:1.25rem}.usage-item{display:flex;align-items:center;gap:1rem}.usage-label{font-size:.875rem;color:#374151;font-weight:500;min-width:120px}.usage-bar-container{flex:1;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.usage-bar{height:100%;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:4px;transition:width .5s ease;min-width:4px}.usage-text{font-size:.875rem;color:#6b7280;font-weight:500;min-width:60px;text-align:right}.feature-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.feature-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#374151}.feature-check{color:#10b981;font-weight:700}.upgrade-card{border:2px solid #7c3aed;background:linear-gradient(to bottom right,#fff,#faf5ff)}.upgrade-card p{color:#6b7280;margin:0 0 1.25rem}.upgrade-plans{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.upgrade-plan-card{border:1px solid #e5e7eb;border-radius:.5rem;padding:1.25rem;text-align:center;transition:all .2s}.upgrade-plan-card:hover{border-color:#7c3aed;box-shadow:0 2px 8px #7c3aed26}.upgrade-plan-card.featured{border-color:#7c3aed;background:#faf5ff}.upgrade-plan-name{font-size:1rem;font-weight:600;color:#111827;margin-bottom:.5rem}.upgrade-plan-price{font-size:1.75rem;font-weight:700;color:#7c3aed;margin-bottom:.5rem}.upgrade-plan-price span{font-size:.875rem;font-weight:400;color:#6b7280}.upgrade-plan-desc{font-size:.75rem;color:#6b7280}.upgrade-note{font-size:.875rem;color:#9ca3af;font-style:italic;text-align:center;margin:0}.upgrade-plan-features{list-style:none;padding:0;margin:.75rem 0 0;text-align:left}.upgrade-plan-features li{font-size:.78rem;color:#374151;position:relative;padding:.2rem 0 .2rem 1.1rem}.upgrade-plan-features li:before{content:"✓";position:absolute;left:0;color:#7c3aed;font-weight:700;font-size:.75rem}.upgrade-plan-btn{margin-top:1rem;width:100%;padding:.5rem 1rem;font-size:.85rem;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s}.upgrade-view-all{display:block;text-align:center;margin-top:.75rem;background:none;border:none;color:#7c3aed;font-size:.85rem;font-weight:600;cursor:pointer;padding:.5rem}.upgrade-view-all:hover{text-decoration:underline}.chem-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #e5e7eb}.chem-section-header h3{font-size:1.125rem;font-weight:600;color:#7c3aed;margin:0}.chem-section-icon{font-size:1.25rem}.chem-sub-header{font-size:.9375rem;font-weight:600;color:#475569;margin-bottom:.5rem}.chem-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;margin-bottom:1rem;font-size:.875rem;font-weight:600;color:#7c3aed}.chem-toggle input[type=checkbox]{width:18px;height:18px;accent-color:#7c3aed;cursor:pointer}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.threshold-toggles{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.threshold-toggles .chem-toggle{margin-bottom:0;color:#374151}.toggle-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.toggle-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid #e5e7eb;border-radius:.5rem;cursor:pointer;transition:all .2s}.toggle-item:hover{border-color:#7c3aed;background:#faf5ff}.toggle-item input[type=checkbox]{width:18px;height:18px;accent-color:#7c3aed;cursor:pointer}.toggle-label{font-size:.875rem;color:#374151;font-weight:500}.settings-save-bar{display:flex;justify-content:space-between;align-items:center;background:#fff;border:2px solid #7c3aed;border-radius:.5rem;padding:1rem 1.5rem;position:sticky;bottom:1rem;box-shadow:0 4px 12px #00000026}.unsaved-note{font-size:.875rem;color:#d97706;font-weight:500}.btn-primary{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #7c3aed4d}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.same-as-login-toggle{display:inline-flex!important;align-items:center;gap:.375rem;font-size:.75rem!important;font-weight:500!important;color:#7c3aed!important;cursor:pointer;margin-top:.375rem!important;margin-bottom:0!important}.same-as-login-toggle input[type=checkbox]{width:14px!important;height:14px!important;accent-color:#7c3aed;cursor:pointer}.chem-compact-grid{display:flex;flex-direction:column;gap:0}.chem-compact-item{padding:.75rem 0;border-bottom:1px solid #f3f4f6}.chem-compact-item:last-child{border-bottom:none;padding-bottom:0}.chem-compact-item:first-child{padding-top:0}.chem-compact-title{margin-bottom:.5rem}.chem-compact-title .chem-toggle{margin-bottom:0}.chem-compact-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;padding-left:1.75rem}.chem-compact-fields .form-group{margin-bottom:0}.chem-compact-fields .form-group label{font-size:.75rem;margin-bottom:.25rem;color:#6b7280}.chem-compact-fields .form-group input,.chem-compact-fields .form-group select{padding:.5rem .625rem;font-size:.8125rem}.compact-toggle{margin-bottom:0!important;font-size:.8125rem!important}.ideal-ranges-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.ideal-ranges-grid .form-group{margin-bottom:0}.chem-prefs-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.chem-prefs-column{display:flex;flex-direction:column;gap:.5rem}.chem-prefs-column .chem-sub-header{margin-bottom:.25rem}.form-row-4{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.form-row-4 .form-group{margin-bottom:0}.form-row-4 .form-group label{font-size:.75rem}.range-inputs{display:flex;align-items:center;gap:8px}.range-inputs input{flex:1;min-width:70px}.range-inputs span{color:#6b7280;font-size:.85rem;flex-shrink:0}.settings-chem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:.75rem}.settings-chem-card{border:1px solid #e5e7eb;border-radius:.75rem;transition:all .2s;overflow:hidden}.settings-chem-card:hover{border-color:#c4b5fd;box-shadow:0 4px 12px #7c3aed14;transform:translateY(-1px)}.settings-chem-card-active{border-color:#7c3aed;background:#faf5ff;box-shadow:0 2px 8px #7c3aed1f}.settings-chem-card-active:hover{border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed2e}.settings-chem-card-header{padding:1rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.25rem;cursor:pointer}.settings-chem-card-icon{font-size:1.75rem;line-height:1}.settings-chem-card-name{font-size:.8125rem;font-weight:600;color:#111827;margin-top:.25rem}.settings-chem-card-desc{font-size:.6875rem;color:#9ca3af}.settings-chem-card-fields{padding:0 .75rem .75rem;display:flex;flex-direction:column;gap:.375rem}.settings-chem-card-fields select{width:100%;padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.75rem;background:#fff;color:#6b7280;cursor:pointer;transition:all .2s;text-align:center;font-family:inherit}.settings-chem-card-active .settings-chem-card-fields select{border-color:#c4b5fd;color:#5b21b6;font-weight:500}.settings-chem-card-fields select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.settings-chem-card-check{display:flex;align-items:center;justify-content:center;gap:.375rem;font-size:.75rem;color:#5b21b6;font-weight:500;cursor:pointer}.settings-chem-card-check input[type=checkbox]{width:14px;height:14px;accent-color:#7c3aed;cursor:pointer}.chem-group-label{font-size:.8125rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin:1.25rem 0 .5rem;padding-bottom:.375rem;border-bottom:1px solid #e5e7eb}.chem-group-label:first-of-type{margin-top:.5rem}.btn-reset-defaults{margin-left:auto;background:none;border:1px solid #d1d5db;padding:.25rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s;font-family:inherit}.btn-reset-defaults:hover{border-color:#7c3aed;color:#7c3aed;background:#faf5ff}.settings-chem-card-row{display:flex;align-items:center;gap:.375rem}.settings-chem-card-input{width:100%;flex:1;padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.75rem;text-align:center;font-family:inherit;background:#fff;color:#6b7280;transition:all .2s}.settings-chem-card-active .settings-chem-card-input{border-color:#c4b5fd;color:#5b21b6;font-weight:500}.settings-chem-card-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.settings-chem-card-input[type=number]::-webkit-inner-spin-button,.settings-chem-card-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.settings-chem-card-input[type=number]{-moz-appearance:textfield}.settings-chem-card-unit-label{font-size:.625rem;color:#9ca3af;white-space:nowrap;flex-shrink:0}.settings-chem-card-select{width:100%;padding:.3rem .4rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.7rem;color:#6b7280;background:#fff;cursor:pointer;transition:all .2s;text-align:center;text-align-last:center;font-family:inherit}.settings-chem-card-active .settings-chem-card-select{border-color:#c4b5fd;color:#5b21b6}.settings-chem-card-select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.settings-chem-card-unit-fixed{display:block;text-align:center;font-size:.7rem;color:#9ca3af;padding:.3rem 0;font-weight:500}.range-card-inputs{display:flex;align-items:center;gap:.25rem}.range-card-inputs input{flex:1;min-width:0;padding:.375rem;border:1px solid #c4b5fd;border-radius:.375rem;font-size:.75rem;text-align:center;color:#5b21b6;font-weight:500;font-family:inherit;background:#fff}.range-card-inputs input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.range-card-sep{font-size:.75rem;color:#9ca3af;flex-shrink:0}.range-card-inputs input[type=number]::-webkit-inner-spin-button,.range-card-inputs input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.range-card-inputs input[type=number]{-moz-appearance:textfield}@media (max-width: 768px){.settings-page{max-width:100%}.settings-card{padding:1.25rem}.info-grid,.form-row-2,.form-row-3{grid-template-columns:1fr}.form-row-4{grid-template-columns:1fr 1fr}.chem-compact-fields{grid-template-columns:1fr;padding-left:0}.ideal-ranges-grid,.chem-prefs-grid{grid-template-columns:1fr}.range-inputs{flex-wrap:wrap}.toggle-grid,.feature-list,.upgrade-plans{grid-template-columns:1fr}.settings-save-bar{flex-direction:column;gap:.75rem;text-align:center}.settings-tabs{overflow-x:auto}.usage-item{flex-direction:column;align-items:flex-start;gap:.5rem}.usage-bar-container{width:100%}.settings-chem-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.settings-chem-card-header{padding:.75rem}.settings-chem-card-icon{font-size:1.5rem}.settings-chem-card-name{font-size:.75rem}.settings-chem-card-select{font-size:.65rem;padding:.25rem .3rem}.settings-chem-card-unit-fixed{font-size:.65rem}.profile-edit-actions{flex-direction:column-reverse}.profile-edit-actions button{width:100%}}.close-account-standalone{margin-top:2rem;padding-top:2rem;border-top:1px solid #e5e7eb}.close-account-section{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:1.5rem}.close-account-warning h3{font-size:1.1rem;font-weight:600;color:#991b1b;margin:0 0 .75rem}.close-account-warning p{color:#7f1d1d;font-size:.9rem;line-height:1.6;margin:0 0 1rem}.close-account-effects{list-style:none;padding:0;margin:0 0 1.25rem}.close-account-effects li{position:relative;padding-left:1.5rem;color:#991b1b;font-size:.85rem;line-height:1.8}.close-account-effects li:before{content:"×";position:absolute;left:0;font-weight:700;color:#dc2626}.btn-close-account{background:#dc2626;color:#fff;border:none;padding:.6rem 1.25rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-close-account:hover{background:#b91c1c}.btn-close-account:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.close-account-modal{background:#fff;border-radius:16px;width:100%;max-width:480px;box-shadow:0 20px 60px #0000004d;overflow:hidden}.close-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #fecaca;background:#fef2f2}.close-modal-header h2{font-size:1.15rem;font-weight:700;color:#991b1b;margin:0}.close-modal-x{background:none;border:none;font-size:1.5rem;color:#991b1b;cursor:pointer;padding:0;line-height:1}.close-modal-body{padding:1.5rem}.close-modal-warning{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;padding:.75rem 1rem;color:#991b1b;font-size:.85rem;font-weight:500;margin-bottom:1.25rem;line-height:1.5}.close-modal-body .form-group{margin-bottom:1rem}.close-modal-body .form-group label{display:block;font-size:.85rem;font-weight:500;color:#374151;margin-bottom:.35rem}.close-modal-body .form-group input{width:100%;padding:.55rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;box-sizing:border-box}.close-modal-body .form-group input:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}.form-hint{display:block;font-size:.75rem;color:#6b7280;margin-top:.25rem}.close-modal-footer{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb}.close-modal-footer .btn-secondary{background:#fff;border:1px solid #d1d5db;color:#374151;padding:.55rem 1.25rem;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer}.close-modal-footer .btn-secondary:hover{background:#f3f4f6}@media (max-width: 640px){.close-account-section{padding:1.25rem}.close-account-warning h3{font-size:1rem}.close-account-warning p{font-size:.85rem}.close-account-effects li{font-size:.8rem}.close-account-modal{max-width:100%;margin:.5rem;border-radius:12px}.close-modal-header{padding:1rem 1.25rem}.close-modal-body{padding:1.25rem}.close-modal-footer{padding:1rem 1.25rem;flex-direction:column-reverse}.close-modal-footer button,.btn-close-account{width:100%;text-align:center}}.water-bodies-panel{margin-top:1.5rem}.wb-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.wb-header h3{font-size:1.1rem;font-weight:700;color:#111827;margin:0}.wb-loading{color:#6b7280;font-size:.9rem}.wb-empty{color:#9ca3af;font-size:.9rem;text-align:center;padding:1rem}.wb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.wb-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;transition:border-color .2s}.wb-card:hover{border-color:#7c3aed}.wb-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.wb-name{font-weight:600;font-size:1rem;color:#111827}.wb-card-actions{display:flex;gap:.25rem}.wb-card-specs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.wb-spec{display:flex;flex-direction:column}.wb-spec-label{font-size:.7rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.wb-spec-value{font-size:.85rem;color:#374151;font-weight:500}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 480px){.form-row-2,.wb-grid{grid-template-columns:1fr}}.equipment-panel{margin-top:1.5rem}.eq-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.eq-header h3{font-size:1.1rem;font-weight:700;color:#111827;margin:0}.eq-loading{color:#6b7280;font-size:.9rem}.eq-empty{color:#9ca3af;font-size:.9rem;text-align:center;padding:1rem}.eq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.eq-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;transition:border-color .2s}.eq-card:hover{border-color:#7c3aed}.eq-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.eq-card-title{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.eq-type-icon{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#6b7280}.eq-type-icon svg{width:24px;height:24px}.eq-card-info{min-width:0}.eq-card-name{font-weight:600;font-size:.95rem;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eq-card-type{font-size:.75rem;color:#6b7280;text-transform:capitalize}.eq-card-actions{display:flex;gap:.25rem;flex-shrink:0}.eq-card-specs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.eq-spec{display:flex;flex-direction:column}.eq-spec-label{font-size:.7rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.eq-spec-value{font-size:.85rem;color:#374151;font-weight:500}.eq-condition-badge{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;font-weight:500;padding:1px 0}.eq-condition-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.eq-condition-excellent .eq-condition-dot{background:#10b981}.eq-condition-excellent{color:#059669}.eq-condition-good .eq-condition-dot{background:#3b82f6}.eq-condition-good{color:#2563eb}.eq-condition-fair .eq-condition-dot{background:#f59e0b}.eq-condition-fair{color:#d97706}.eq-condition-poor .eq-condition-dot{background:#f97316}.eq-condition-poor{color:#ea580c}.eq-condition-needs_replacement .eq-condition-dot{background:#ef4444}.eq-condition-needs_replacement{color:#dc2626}.eq-type-fields{margin-top:.5rem;padding-top:.75rem;border-top:1px solid #e5e7eb}.eq-type-fields-label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.eq-checkbox-group{display:flex;flex-direction:column}.eq-checkbox-row{display:flex;align-items:center;gap:.5rem;height:42px}.eq-checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:#7c3aed}.eq-checkbox-row label{font-size:.9rem;color:#374151;font-weight:400;margin-bottom:0}.eq-modal{max-width:560px;width:100%;background:#fff;border-radius:.75rem}.eq-form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 768px){.eq-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}}@media (max-width: 480px){.equipment-panel{margin-top:1rem}.eq-header h3{font-size:1rem}.eq-grid{grid-template-columns:1fr;gap:.75rem}.eq-card{padding:.75rem}.eq-card-header{margin-bottom:.5rem}.eq-card-name{font-size:.9rem}.eq-type-icon{width:20px;height:20px}.eq-type-icon svg{width:20px;height:20px}.eq-card-specs{gap:.375rem}.eq-spec-label{font-size:.65rem}.eq-spec-value{font-size:.8rem}.eq-condition-badge{font-size:.75rem}.eq-form-row-2{grid-template-columns:1fr}.eq-type-fields-label{font-size:.7rem}.eq-checkbox-group label:first-child{display:none}.eq-checkbox-row{height:auto;margin-top:.25rem}}.customer-detail-page{max-width:1400px;margin:0 auto}.detail-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:2rem}.btn-back{background:none;border:1px solid #d1d5db;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;color:#6b7280;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-back:hover{background:#f3f4f6;color:#374151}.detail-header-info{flex:1}.detail-header-info h1{font-size:2rem;font-weight:700;color:#111827;margin:0 0 .5rem}.detail-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.875rem;color:#6b7280}.pool-info-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:1.5rem}.pool-info-card{background:#fff;border-radius:.5rem;padding:1rem;box-shadow:0 1px 3px #0000001a;text-align:center}.pool-info-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:.375rem}.pool-info-value{font-size:1.125rem;font-weight:700;color:#111827;text-transform:capitalize}.customer-notes{background:#fffbeb;border:1px solid #fde68a;border-radius:.5rem;padding:.75rem 1rem;font-size:.875rem;color:#92400e;margin-bottom:1.5rem}.section-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header-row h2{font-size:1.25rem;font-weight:600;color:#111827;margin:0}.section-header-actions{display:flex;align-items:center;gap:.5rem}.test-count{font-size:.875rem;color:#6b7280;background:#f3f4f6;padding:.25rem .75rem;border-radius:1rem}.btn-sm{padding:.375rem .75rem;font-size:.8rem;border-radius:.375rem;cursor:pointer;border:1px solid #d1d5db;background:#fff;color:#374151;transition:all .2s}.btn-sm:hover{background:#f3f4f6;border-color:#9ca3af}.btn-sm.btn-primary{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:none}.btn-sm.btn-primary:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6);box-shadow:0 4px 12px #7c3aed4d}.modal-header-actions,.header-actions{display:flex;align-items:center;gap:.5rem}.tests-table-container{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.tests-table{width:100%;border-collapse:collapse;min-width:800px}.tests-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.tests-table th{text-align:center;padding:.75rem .5rem;font-size:.7rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.tests-table th:first-child{text-align:left;padding-left:1rem}.tests-table td{padding:.75rem .5rem;text-align:center;border-bottom:1px solid #e5e7eb;font-size:.875rem}.tests-table td:first-child{text-align:left;padding-left:1rem}.test-row-clickable{cursor:pointer;transition:background .2s}.test-row-clickable:hover{background:#f9fafb}.date-col{white-space:nowrap;font-weight:500;color:#374151}.tested-by-label{font-size:.7rem;font-weight:400;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.reading-value{font-weight:600;font-variant-numeric:tabular-nums}.issue-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.125rem .5rem;border-radius:1rem;margin-right:.25rem}.issue-badge.algae{background:#d1fae5;color:#065f46}.issue-badge.cloudy{background:#dbeafe;color:#1e40af}.no-issues{color:#d1d5db}.btn-view{background:none;border:1px solid #d1d5db;border-radius:.375rem;padding:.25rem .75rem;font-size:.75rem;color:#6b7280;cursor:pointer;transition:all .2s}.btn-view:hover{border-color:#7c3aed;color:#7c3aed}.empty-state{display:flex;flex-direction:column;align-items:center;padding:4rem 2rem;background:#fff;border:2px dashed #e5e7eb;border-radius:.5rem}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{font-size:1.25rem;color:#111827;margin:0 0 .5rem}.empty-state p{color:#6b7280;margin:0 0 1.5rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:.75rem;max-height:90vh;overflow-y:auto;width:100%}.modal-test-detail{max-width:700px;padding:2rem}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h2{font-size:1.25rem;font-weight:600;color:#111827;margin:0}.modal-close{background:none;border:none;font-size:1.25rem;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:.25rem;transition:all .2s}.modal-close:hover{color:#111827;background:#f3f4f6}.readings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem}.reading-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:.75rem;text-align:center}.reading-card-label{font-size:.7rem;color:#6b7280;font-weight:600;text-transform:uppercase}.reading-card-value{font-size:1.25rem;font-weight:700;margin:.25rem 0}.reading-card-range{font-size:.7rem;color:#9ca3af}.reading-card-status{display:inline-block;font-size:.625rem;font-weight:600;padding:.125rem .5rem;border-radius:1rem;margin-top:.375rem}.temp-display{background:#f0f9ff;border:1px solid #bae6fd;border-radius:.5rem;padding:.75rem 1rem;font-size:.875rem;color:#0369a1;margin-bottom:1.5rem}.observations{margin-bottom:1.5rem}.observations h3{font-size:.875rem;font-weight:600;color:#374151;margin:0 0 .5rem}.recommendations-section{margin-bottom:1.5rem}.recommendations-section h3{font-size:.875rem;font-weight:600;color:#374151;margin:0 0 .75rem}.rec-card{background:#f9fafb;border:1px solid #e5e7eb;border-left:4px solid #7c3aed;border-radius:.5rem;padding:.75rem 1rem;margin-bottom:.5rem}.rec-card.priority-1{border-left-color:#dc2626}.rec-card.priority-2{border-left-color:#f59e0b}.rec-card.priority-3{border-left-color:#7c3aed}.rec-chemical{font-weight:600;color:#111827;font-size:.9375rem}.rec-amount{font-size:1.125rem;font-weight:700;color:#7c3aed;margin:.25rem 0}.rec-reason{font-size:.8125rem;color:#6b7280}.rec-warning{font-size:.8125rem;color:#d97706;margin-top:.375rem;padding-top:.375rem;border-top:1px solid #e5e7eb}.rec-notes{font-size:.8rem;color:#6b7280;font-style:italic;margin-top:.25rem}.rec-wait-time{display:flex;align-items:center;gap:.375rem;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed #d1d5db;font-size:.8rem;color:#6b7280}.rec-wait-divider{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.375rem 0;margin:.125rem 0;font-size:.75rem;color:#6b7280}.rec-wait-divider:before,.rec-wait-divider:after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,#d1d5db,transparent)}.test-notes h3{font-size:.875rem;font-weight:600;color:#374151;margin:0 0 .5rem}.test-notes p{color:#6b7280;font-size:.875rem;margin:0}.btn-primary{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db;padding:.75rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer}.btn-secondary:hover{background:#f9fafb}.alert{padding:1rem;border-radius:.5rem;margin-bottom:1.5rem}.spinner-large{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#7c3aed;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.trends-section{margin-bottom:2rem}.trends-section h2{font-size:1.25rem;font-weight:600;color:#111827;margin:0 0 1rem}.trends-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.trend-card{background:#fff;border-radius:.5rem;padding:1rem;box-shadow:0 1px 3px #0000001a}.trend-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.trend-card-label{font-size:.875rem;font-weight:600;color:#374151}.trend-card-range{font-size:.7rem;color:#9ca3af;background:#f3f4f6;padding:.125rem .5rem;border-radius:.25rem}.portal-access-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.portal-links-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.portal-link-row{display:flex;align-items:center;justify-content:space-between;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:.625rem 1rem}.portal-link-info{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.portal-link-user{font-weight:600;font-size:.9rem;color:#111827}.portal-link-status{font-size:.7rem;font-weight:600;padding:.125rem .5rem;border-radius:1rem;text-transform:capitalize}.portal-link-status.active{background:#d1fae5;color:#065f46}.portal-link-status.pending{background:#fef3c7;color:#92400e}.portal-link-status.revoked{background:#fee2e2;color:#991b1b}.portal-link-access{font-size:.75rem;color:#6b7280;background:#f3f4f6;padding:.125rem .5rem;border-radius:.25rem}.billing-section,.test-history-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}@media (max-width: 1024px){.pool-info-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.detail-header{flex-direction:column}.pool-info-grid,.readings-grid{grid-template-columns:repeat(2,1fr)}.trends-grid{grid-template-columns:1fr}}.analytics-page{max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:2rem}.page-header h1{font-size:2rem;font-weight:700;color:#111827;margin:0 0 .5rem}.page-subtitle{color:#6b7280;font-size:.875rem;margin:0}.header-actions{display:flex;align-items:center;gap:.5rem}.analytics-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.analytics-stat-card{background:#fff;border-radius:.75rem;padding:1.25rem;box-shadow:0 1px 3px #0000001a;text-align:center}.analytics-stat-icon{font-size:1.5rem;margin-bottom:.25rem}.analytics-stat-value{font-size:1.75rem;font-weight:700;color:#111827}.analytics-stat-label{font-size:.8rem;color:#6b7280;font-weight:500;margin-top:.125rem}.analytics-stat-sub{font-size:.75rem;color:#9ca3af;margin-top:.25rem}.analytics-charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:2rem}.analytics-card{background:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.analytics-card h2{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .25rem}.analytics-card-subtitle{font-size:.8rem;color:#9ca3af;margin:0 0 1rem}.analytics-card-full{grid-column:1 / -1}.chart-container{margin-top:.5rem}.param-health-list{display:flex;flex-direction:column;gap:.625rem}.param-health-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;background:#f9fafb;border-radius:.5rem;border:1px solid #f3f4f6}.param-health-name{font-size:.875rem;font-weight:600;color:#374151;min-width:100px}.param-health-bar-wrap{flex:1;height:.5rem;background:#e5e7eb;border-radius:.25rem;overflow:hidden}.param-health-bar{height:100%;border-radius:.25rem;transition:width .5s ease}.param-health-bar.bar-green{background:#10b981}.param-health-bar.bar-yellow{background:#f59e0b}.param-health-bar.bar-red{background:#ef4444}.param-health-pct{font-size:.8rem;font-weight:600;color:#374151;min-width:40px;text-align:right}.customer-leaderboard{display:flex;flex-direction:column;gap:.5rem}.leaderboard-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;background:#f9fafb;border-radius:.5rem;cursor:pointer;transition:all .2s;border:1px solid #f3f4f6}.leaderboard-item:hover{background:#f3f4f6;border-color:#d1d5db}.leaderboard-rank{font-size:.875rem;font-weight:700;color:#9ca3af;min-width:1.5rem}.leaderboard-name{flex:1;font-size:.875rem;font-weight:500;color:#374151}.leaderboard-count{font-size:.875rem;font-weight:600;color:#7c3aed}.leaderboard-status{width:.5rem;height:.5rem;border-radius:50%}.leaderboard-status.dot-green{background:#10b981}.leaderboard-status.dot-yellow{background:#f59e0b}.leaderboard-status.dot-red{background:#ef4444}.leaderboard-status.dot-gray{background:#d1d5db}.empty-state-small{text-align:center;padding:2rem 1rem;color:#9ca3af}.empty-state-small p{margin:0;font-size:.875rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:#6b7280}.loading-state p{margin-top:1rem}.spinner-large{width:3rem;height:3rem;border:3px solid #e5e7eb;border-top-color:#7c3aed;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alert{padding:1rem;border-radius:.5rem;margin-bottom:1.5rem;display:flex;align-items:start;gap:.75rem}.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.btn-primary,.btn-secondary{padding:.625rem 1.25rem;border-radius:.5rem;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s;border:none}.btn-primary{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #7c3aed4d}.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.date-range-selector{display:flex;align-items:center;gap:.5rem;background:#fff;padding:.75rem 1rem;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.date-range-selector label{font-size:.875rem;font-weight:500;color:#374151}.date-range-btn{padding:.375rem .875rem;border-radius:.375rem;font-size:.8rem;font-weight:500;cursor:pointer;border:1px solid #d1d5db;background:#fff;color:#374151;transition:all .2s}.date-range-btn:hover{background:#f9fafb}.date-range-btn.active{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border-color:#7c3aed}@media (max-width: 1024px){.analytics-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.page-header{flex-direction:column;gap:1rem}.analytics-stats-row,.analytics-charts-grid{grid-template-columns:1fr}.date-range-selector{flex-wrap:wrap}}.admin-settings-page{padding:1.5rem;max-width:1200px;margin:0 auto}.logo-upload-area{margin-top:1rem}.logo-upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;border:2px dashed #d1d5db;border-radius:12px;cursor:pointer;transition:border-color .2s,background .2s;background:#fafbfc}.logo-upload-placeholder:hover,.logo-upload-placeholder.drag-over{border-color:#7c3aed;background:#f5f3ff}.logo-upload-placeholder.drag-over{border-style:solid;box-shadow:0 0 0 3px #7c3aed26}.logo-upload-icon{font-size:2rem}.logo-upload-text{font-size:.95rem;font-weight:600;color:#374151}.logo-upload-hint{font-size:.8rem;color:#9ca3af}.logo-preview-container{display:flex;align-items:center;gap:1.5rem;padding:1rem;border:1px solid #e5e7eb;border-radius:12px;background:#fafbfc}.logo-preview-img{max-width:200px;max-height:80px;object-fit:contain;border-radius:6px}.logo-preview-actions{display:flex;flex-direction:column;gap:.5rem}.btn-danger{background:#ef4444;color:#fff;border:none;padding:.4rem .75rem;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-danger:hover{background:#dc2626}.btn-danger.btn-sm{padding:.35rem .65rem;font-size:.78rem}@media (max-width: 768px){.admin-settings-page{padding:1rem}.admin-settings-page .settings-header h1{font-size:1.25rem}.admin-settings-page .page-subtitle{font-size:.8rem}.logo-preview-container{flex-direction:column;align-items:flex-start}.logo-preview-actions{flex-direction:row}.logo-upload-placeholder{padding:1.25rem}.admin-settings-page .accordion-header{padding:.875rem 1rem;min-height:48px}.admin-settings-page .card-subtitle{font-size:.8rem}.admin-settings-page .settings-save-bar{flex-direction:column;gap:.5rem;text-align:center}.admin-settings-page .settings-save-bar button{width:100%}.admin-settings-page .feature-list,.admin-settings-page .chem-prefs-grid{grid-template-columns:1fr}.admin-settings-page .chem-prefs-column{padding:0}.admin-settings-page .form-row-4{grid-template-columns:1fr 1fr;gap:.5rem}}@media (max-width: 480px){.admin-settings-page{padding:.75rem}.admin-settings-page .settings-card{padding:1rem}.admin-settings-page .form-row-4,.admin-settings-page .form-row-3{grid-template-columns:1fr}.logo-preview-img{max-width:100%}}.svc-config-list{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.75rem}.svc-config-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border:1px solid #e5e7eb;border-radius:8px;background:#fafafa;transition:all .15s}.svc-config-item:hover{border-color:#d1d5db;background:#f3f4f6}.svc-config-item-text{flex:1;font-size:.88rem;color:#374151;font-weight:500}.svc-config-item-edit{flex:1;padding:.3rem .5rem;border:1px solid #7c3aed;border-radius:6px;font-size:.88rem;color:#374151;font-weight:500;outline:none;box-shadow:0 0 0 2px #7c3aed26}.svc-config-item-slug{font-size:.72rem;color:#9ca3af;font-family:monospace;background:#f3f4f6;padding:.1rem .35rem;border-radius:4px}.svc-config-item-remove{background:none;border:none;color:#d1d5db;font-size:.85rem;cursor:pointer;padding:.15rem .3rem;border-radius:4px;transition:all .15s;flex-shrink:0}.svc-config-item-remove:hover{color:#ef4444;background:#fef2f2}.svc-config-add-row{display:flex;gap:.5rem;align-items:center}.svc-config-add-row input{flex:1;padding:.45rem .6rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem}.svc-config-add-row input:focus{border-color:#7c3aed;outline:none;box-shadow:0 0 0 2px #7c3aed26}.svc-config-add-row .btn-primary{padding:.45rem .75rem;font-size:.82rem;white-space:nowrap}.org-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.org-section-header h2{margin:0 0 .25rem}.org-section-header .card-subtitle{margin:0 0 1.25rem}.limit-warning-bar{font-size:.85rem;color:#d97706;font-weight:500;background:#fffbeb;border:1px solid #fde68a;border-radius:.5rem;padding:.65rem 1rem;margin-bottom:1rem}.btn-link-inline{background:none;border:none;color:#7c3aed;font-weight:600;font-size:inherit;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.btn-link-inline:hover{color:#6d28d9}.org-add-btn{font-size:.82rem!important;padding:.4rem .9rem!important;white-space:nowrap;flex-shrink:0;margin-top:.1rem}.org-add-form{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.25rem;margin-bottom:1.25rem}.org-add-form-actions{display:flex;gap:.5rem;margin-top:1rem;justify-content:flex-end}.org-add-form-actions .btn-primary,.org-add-form-actions .btn-secondary{font-size:.82rem;padding:.4rem .85rem}.org-list{display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden}.org-list-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#fff;transition:background .15s}.org-list-item:not(:last-child){border-bottom:1px solid #f3f4f6}.org-list-item:hover{background:#fafbfc}.org-list-item-info{flex:1;min-width:0}.org-list-item-name{font-weight:500;font-size:.9rem;color:#1f2937;display:flex;align-items:center;flex-wrap:wrap;gap:.25rem}.org-list-item-meta{font-size:.78rem;color:#9ca3af;margin-top:.15rem}.org-list-item-badge{font-size:.72rem;color:#6b7280;background:#f3f4f6;padding:.1rem .4rem;border-radius:4px;white-space:nowrap;font-weight:400}.org-list-item-badge.badge-retailer{color:#7c3aed;background:#f3e8ff}.org-list-item-badge.badge-service{color:#0369a1;background:#e0f2fe}.org-list-item-actions{display:flex;gap:.4rem;flex-shrink:0;margin-left:.75rem}.org-list-item-actions .btn-sm{font-size:.78rem;padding:.3rem .7rem}.org-list-item .btn-sm{font-size:.78rem;padding:.3rem .7rem;flex-shrink:0;margin-left:.75rem}.org-empty-text{color:#9ca3af;font-size:.875rem;margin:0}@media (max-width: 768px){.org-section-header{flex-direction:column;gap:.5rem}.org-add-btn{width:100%!important;text-align:center}.org-add-form{padding:1rem}.org-add-form-actions{flex-direction:column}.org-add-form-actions .btn-primary,.org-add-form-actions .btn-secondary{width:100%;text-align:center;padding:.5rem .85rem}.org-list-item{padding:.65rem .75rem}.org-list-item-name{font-size:.85rem}.org-list-item-badge{font-size:.65rem;padding:.05rem .3rem}.org-list-item-meta{font-size:.72rem}.org-list-item .btn-sm,.org-list-item-actions .btn-sm{font-size:.72rem;padding:.25rem .55rem}}@media (max-width: 480px){.org-add-form{padding:.75rem}.org-list-item{flex-direction:column;align-items:flex-start;gap:.5rem}.org-list-item .btn-sm,.org-list-item-actions{margin-left:0;align-self:flex-end}}.subscription-page{max-width:1100px;margin:0 auto}.subscription-page h1{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:1.5rem}.sub-alert{padding:1rem 1.5rem;border-radius:.5rem;margin-bottom:1.5rem;font-size:.875rem;font-weight:500}.sub-alert-success{background:#f0fdf4;border:1px solid #86efac;color:#166534}.sub-alert-warning{background:#fffbeb;border:1px solid #fcd34d;color:#78350f}.sub-current-status{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;margin-bottom:2rem}.sub-status-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.sub-status-header h2{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}.sub-header-actions,.sub-status-badges{display:flex;gap:.5rem}.sub-status-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.sub-status-badge.trial{background:#f5f3ff;color:#7c3aed}.sub-status-badge.active{background:#f0fdf4;color:#16a34a}.sub-status-badge.grace_period{background:#fff7ed;color:#ea580c}.sub-status-badge.trial_expired,.sub-status-badge.suspended{background:#fef2f2;color:#dc2626}.sub-status-badge.pending_payment{background:#fffbeb;color:#b45309}.sub-plan-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500;background:#f3f4f6;color:#4b5563}.sub-trial-info{background:#f5f3ff;border:1px solid #c4b5fd;border-radius:.5rem;padding:.75rem 1rem;color:#5b21b6;font-size:.875rem;margin-bottom:1rem}.sub-trial-date{color:#7c3aed;margin-left:.5rem}.sub-grace-info{background:#fff7ed;border:1px solid #fdba74;border-radius:.5rem;padding:.75rem 1rem;color:#9a3412;font-size:.875rem;margin-bottom:1rem}.sub-expired-info{background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;padding:.75rem 1rem;color:#991b1b;font-size:.875rem;margin-bottom:1rem}.sub-pending-payment-info{background:#fffbeb;border:1px solid #fcd34d;border-radius:.5rem;padding:.75rem 1rem;color:#92400e;font-size:.875rem;margin-bottom:1rem}.sub-paused-info{background:#f0f4ff;border:1px solid #bfdbfe;border-radius:.5rem;padding:.75rem 1rem;color:#1e40af;font-size:.875rem;margin-bottom:1rem}.sub-status-badge.paused{background:#dbeafe;color:#1d4ed8}.sub-current-plan-details{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1rem;padding:.75rem 0;border-top:1px solid #f3f4f6;border-bottom:1px solid #f3f4f6}.sub-plan-feature-row{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:#4b5563}.sub-feature-icon{font-size:1rem}.sub-usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:.5rem}.sub-usage-item{display:flex;flex-direction:column;gap:.375rem}.sub-usage-label{display:flex;justify-content:space-between;font-size:.8125rem;color:#4b5563}.sub-usage-count{font-weight:600;color:#1f2937}.sub-usage-bar{height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.sub-usage-fill{height:100%;background:#7c3aed;border-radius:3px;transition:width .5s ease}.sub-usage-fill.near-limit{background:#f59e0b}.sub-usage-fill.at-limit{background:#dc2626}.sub-plan-tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:2px solid #e5e7eb}.sub-tab{padding:.75rem 1.5rem;border:none;background:none;cursor:pointer;font-size:.95rem;font-weight:500;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.sub-tab.active{color:#7c3aed;border-bottom-color:#7c3aed;font-weight:600}.sub-tab:hover:not(.active){color:#374151}.sub-other-track-notice{background:#f5f3ff;border:1px solid #c4b5fd;border-radius:.5rem;padding:.75rem 1rem;color:#5b21b6;font-size:.85rem;margin-bottom:1.25rem}.sub-other-track-notice a{color:#7c3aed;font-weight:600}.sub-plans-title{font-size:1.25rem;font-weight:600;color:#1f2937;margin-bottom:1rem}.sub-plans-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.sub-plan-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:1.75rem 1.25rem 1.25rem;display:flex;flex-direction:column;position:relative;transition:border-color .2s,box-shadow .2s}.sub-plan-card:hover{border-color:#c4b5fd;box-shadow:0 4px 12px #7c3aed1a}.sub-plan-card.current{border-color:#7c3aed;background:#faf5ff}.sub-plan-card.recommended{border-color:#7c3aed}.sub-plan-badge-top{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:#7c3aed;color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.25rem 1rem;border-radius:9999px;white-space:nowrap}.sub-plan-badge-current{background:#16a34a}.sub-plan-card h3{font-size:1.125rem;font-weight:700;color:#1f2937;margin:0 0 .75rem}.sub-plan-price{margin-bottom:.25rem}.sub-price-amount{font-size:2rem;font-weight:800;color:#1f2937}.sub-price-period{font-size:.875rem;color:#6b7280}.sub-price-custom{font-size:1.125rem;font-weight:600;color:#4b5563}.sub-price-yearly{font-size:.75rem;color:#16a34a;margin-bottom:1rem}.billing-toggle{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.5rem}.billing-toggle-pill{display:grid;grid-template-columns:1fr 1fr;position:relative;background:#f3f4f6;border-radius:9999px;padding:3px;cursor:pointer;border:1px solid #e5e7eb}.billing-toggle-option{position:relative;z-index:1;padding:.4rem 1.15rem;font-size:.82rem;font-weight:500;color:#6b7280;border:none;background:none;cursor:pointer;border-radius:9999px;transition:color .3s;white-space:nowrap;text-align:center}.billing-toggle-option.active{color:#fff;font-weight:600}.billing-toggle-slider{position:absolute;top:3px;left:3px;height:calc(100% - 6px);width:calc(50% - 3px);background:#7c3aed;border-radius:9999px;transition:left .35s cubic-bezier(.4,0,.2,1);pointer-events:none}.billing-toggle-pill.yearly .billing-toggle-slider{left:calc(50% + 0px)}.billing-toggle-save{font-size:.7rem;font-weight:600;color:#16a34a;background:#f0fdf4;padding:.2rem .6rem;border-radius:9999px;white-space:nowrap;transition:opacity .3s}.billing-toggle-save.hidden{opacity:0}.sub-plan-features{list-style:none;padding:0;margin:1rem 0;flex:1}.sub-plan-features li{padding:.375rem 0;font-size:.8125rem;color:#4b5563;border-bottom:1px solid #f3f4f6}.sub-plan-features li:before{content:"✓ ";color:#7c3aed;font-weight:700}.sub-plan-action{margin-top:auto;padding-top:1rem}.sub-plan-action .btn-primary,.sub-plan-action .btn-secondary{width:100%;padding:.75rem;font-size:.875rem;border-radius:.5rem;text-align:center;text-decoration:none;display:block;cursor:pointer}.sub-plan-action .btn-primary{background:#7c3aed;color:#fff;border:none;font-weight:600}.sub-plan-action .btn-primary:hover:not(:disabled){background:#6d28d9}.sub-plan-action .btn-primary:disabled,.sub-plan-action .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.sub-plan-action .btn-secondary{background:#f3f4f6;color:#4b5563;border:1px solid #e5e7eb;font-weight:500}.sub-plan-action .btn-downgrade{border-color:#fcd34d;background:#fffbeb;color:#92400e}.sub-plan-action .btn-downgrade:hover:not(:disabled){background:#fef3c7;border-color:#f59e0b}@media (max-width: 1024px){.sub-plans-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.sub-status-header{flex-direction:column;gap:1rem}.sub-plans-grid,.sub-usage-grid{grid-template-columns:1fr}.sub-current-plan-details{flex-direction:column;gap:.5rem}.billing-toggle{flex-wrap:wrap;gap:.5rem}.billing-toggle-option{padding:.35rem .9rem;font-size:.78rem}.billing-toggle-save{font-size:.65rem}}.sub-promo-section{margin-bottom:1.25rem}.sub-promo-toggle{background:none;border:none;color:#6366f1;font-size:.9rem;font-weight:600;cursor:pointer;padding:.25rem 0;transition:color .2s}.sub-promo-toggle:hover{color:#4f46e5}.sub-promo-input-row{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.sub-promo-input{padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:.375rem;font-size:.85rem;width:220px;outline:none;letter-spacing:1px;font-weight:600;text-transform:uppercase}.sub-promo-input:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f11a}.sub-promo-status{font-size:.8rem;color:#15803d;font-weight:500}.sub-seats-section{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;margin-bottom:2rem}.sub-seats-header h3{font-size:1.1rem;font-weight:700;color:#1f2937;margin:0 0 .25rem}.sub-seats-desc{font-size:.85rem;color:#6b7280;margin:0 0 1rem}.sub-seats-controls{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap}.sub-seats-info{display:flex;gap:1.5rem;flex-wrap:wrap}.sub-seats-stat{display:flex;flex-direction:column;gap:.15rem}.sub-seats-stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;font-weight:500}.sub-seats-stat-value{font-size:1.25rem;font-weight:700;color:#1e293b}.sub-seats-stat-value.highlight{color:#7c3aed}.sub-seats-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0;flex-wrap:wrap}.sub-seats-proration-note{font-size:.75rem;color:#6b7280;margin:0;width:100%}.sub-seats-btn{padding:.5rem 1rem!important;font-size:.85rem!important;border-radius:.5rem!important;white-space:nowrap}.sub-seats-btn.btn-primary{background:#7c3aed;color:#fff;border:none;font-weight:600;cursor:pointer}.sub-seats-btn.btn-primary:hover:not(:disabled){background:#6d28d9}.sub-seats-btn.btn-primary:disabled{opacity:.5;cursor:not-allowed}.sub-seats-btn.btn-secondary{background:#f3f4f6;color:#4b5563;border:1px solid #e5e7eb;font-weight:500;cursor:pointer}.sub-seats-btn.btn-secondary:hover:not(:disabled){background:#e5e7eb}.sub-seats-btn.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.sub-seats-upgrade-hint{margin-top:1rem;padding:.75rem 1rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:.5rem;font-size:.82rem;color:#92400e;line-height:1.5}.sub-feature-note{font-size:.7rem;color:#7c3aed;font-weight:500}@media (max-width: 768px){.sub-seats-controls{flex-direction:column}.sub-seats-info{gap:1rem}.sub-seats-actions{width:100%;justify-content:stretch}.sub-seats-actions .sub-seats-btn{flex:1}}.wizard-container{max-width:800px;margin:0 auto;padding:2rem 1.5rem;min-height:calc(100vh - 64px)}.wizard-header{text-align:center;margin-bottom:1.5rem}.wizard-header h1{font-size:1.5rem;font-weight:700;color:#111827;margin:0 0 .25rem}.wizard-subtitle{font-size:.95rem;color:#6b7280;margin:0}.wizard-stepper{margin-bottom:1.5rem}.wizard-stepper-desktop{display:flex;align-items:flex-start;justify-content:center;gap:0}.wizard-stepper-item{display:flex;flex-direction:column;align-items:center;position:relative;flex:0 0 auto}.wizard-stepper-line{width:32px;height:2px;background:#e5e7eb;align-self:center;margin-top:17px;flex-shrink:0}.wizard-stepper-line-done{background:#10b981}.wizard-stepper-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;transition:all .2s;flex-shrink:0}.wizard-stepper-circle-upcoming{background:#f3f4f6;color:#9ca3af;border:2px solid #d1d5db}.wizard-stepper-circle-active{background:#7c3aed;color:#fff;border:2px solid #7c3aed;box-shadow:0 0 0 4px #7c3aed33}.wizard-stepper-circle-done{background:#10b981;color:#fff;border:2px solid #10b981}.wizard-stepper-label{font-size:.7rem;color:#9ca3af;margin-top:.375rem;white-space:nowrap;text-align:center}.wizard-stepper-label-active{color:#7c3aed;font-weight:600}.wizard-stepper-label-done{color:#10b981}.wizard-stepper-mobile{display:none;background:#fff;padding:.875rem 1rem;border-radius:.75rem;border:1px solid #e5e7eb;text-align:center}.wizard-stepper-mobile-text{font-size:.9rem;font-weight:600;color:#7c3aed}.wizard-alert{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;margin-bottom:1rem}.wizard-alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.wizard-alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.wizard-alert-icon{width:18px;height:18px;flex-shrink:0}.wizard-step-content{background:#fff;border-radius:.75rem;border:1px solid #e5e7eb;padding:2rem;box-shadow:0 1px 3px #0000000d}.wizard-step-header{margin-bottom:1.5rem}.wizard-step-header h2{font-size:1.25rem;font-weight:700;color:#111827;margin:0 0 .5rem}.wizard-step-header p{font-size:.9rem;color:#6b7280;margin:0;line-height:1.5}.wizard-form{display:flex;flex-direction:column;gap:1rem}.wizard-form-section{margin-bottom:.5rem}.wizard-form-section h3{font-size:.95rem;font-weight:600;color:#374151;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid #f3f4f6}.wizard-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.75rem}.wizard-form-group{display:flex;flex-direction:column;gap:.375rem}.wizard-form-group label{font-size:.8125rem;font-weight:500;color:#374151}.wizard-form-group input,.wizard-form-group select,.wizard-form-group textarea{padding:.625rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.9rem;font-family:inherit;transition:border-color .2s;background:#fff;width:100%;box-sizing:border-box}.wizard-form-group input:focus,.wizard-form-group select:focus,.wizard-form-group textarea:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a;outline:none}.wizard-field-hint{font-size:.75rem;color:#6b7280;font-style:italic}.wizard-step-content .form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.75rem}.wizard-step-content .form-group{display:flex;flex-direction:column;gap:.375rem;margin-bottom:.5rem}.wizard-step-content .form-group label{font-size:.8125rem;font-weight:500;color:#374151}.wizard-step-content .form-group input,.wizard-step-content .form-group select,.wizard-step-content .form-group textarea{padding:.625rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.9rem;font-family:inherit;transition:border-color .2s;background:#fff;width:100%;box-sizing:border-box}.wizard-step-content .form-group input:focus,.wizard-step-content .form-group select:focus,.wizard-step-content .form-group textarea:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a;outline:none}.wizard-step-content .btn-primary{background:#7c3aed;color:#fff;border:none;padding:.625rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.wizard-step-content .btn-primary:hover{background:#6d28d9}.wizard-step-content .btn-primary:disabled{opacity:.5;cursor:not-allowed}.wizard-step-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0 0 .5rem}.wizard-step-subtitle{font-size:.9rem;color:#6b7280;margin:0 0 1.5rem;line-height:1.5}.wizard-step-content .chem-group-label{font-size:.8125rem;font-weight:600;color:#6b7280;margin:1.25rem 0 .5rem;padding-bottom:.375rem;border-bottom:1px solid #f3f4f6}.range-card-inputs{display:flex;align-items:center;gap:.375rem}.range-card-inputs input{flex:1;min-width:0}.range-card-sep{color:#9ca3af;font-size:.8rem;flex-shrink:0}.wizard-step-content .btn-reset-defaults{background:transparent;border:1px solid #d1d5db;color:#6b7280;padding:.375rem .75rem;border-radius:.375rem;font-size:.75rem;cursor:pointer;transition:all .2s}.wizard-step-content .btn-reset-defaults:hover{border-color:#7c3aed;color:#7c3aed}.wizard-success-inline{text-align:center;padding:3rem 2rem}.wizard-success-icon{font-size:3rem;margin-bottom:1rem}.wizard-success-inline h4{font-size:1.1rem;color:#111827;margin:0 0 .5rem}.wizard-success-inline p{color:#6b7280;font-size:.9rem}.wizard-complete-card{text-align:center}.wizard-summary{display:flex;flex-direction:column;gap:.5rem;margin-top:1.5rem;text-align:left}.wizard-summary-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:.5rem;background:#f9fafb}.wizard-summary-item:nth-child(2n){background:#fff}.wizard-summary-icon{font-size:1.25rem;flex-shrink:0}.wizard-summary-text{font-size:.9rem;color:#374151}.wizard-nav{display:flex;align-items:center;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid #e5e7eb;gap:.75rem}.wizard-nav-spacer{flex:1}.wizard-btn{border-radius:.5rem;font-size:.875rem;cursor:pointer;transition:all .2s;white-space:nowrap}.wizard-btn-back{background:transparent;border:1px solid #d1d5db;color:#6b7280;padding:.625rem 1.25rem;border-radius:.5rem}.wizard-btn-back:hover{border-color:#9ca3af;color:#374151}.wizard-btn-skip{background:transparent;border:none;color:#9ca3af;padding:.625rem 1rem;font-size:.875rem;cursor:pointer;text-decoration:underline;transition:color .2s}.wizard-btn-skip:hover{color:#6b7280}.wizard-btn-next{background:#7c3aed;color:#fff;border:none;padding:.625rem 1.5rem;border-radius:.5rem;font-weight:600}.wizard-btn-next:hover{background:#6d28d9}.wizard-btn-next:disabled{opacity:.5;cursor:not-allowed}.wizard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;color:#6b7280;gap:1rem}.wizard-spinner{width:36px;height:36px;border:3px solid #e5e7eb;border-top-color:#7c3aed;border-radius:50%;animation:wizard-spin .8s linear infinite}@keyframes wizard-spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.wizard-container{padding:1rem}.wizard-header h1{font-size:1.25rem}.wizard-subtitle{font-size:.85rem}.wizard-stepper-desktop{display:none}.wizard-stepper-mobile{display:block}.wizard-step-content{padding:1.25rem;border-radius:.5rem}.wizard-step-header h2,.wizard-step-title{font-size:1.1rem}.wizard-step-header p,.wizard-step-subtitle{font-size:.85rem;margin-bottom:1rem}.wizard-form-row,.wizard-step-content .form-row-2{grid-template-columns:1fr;gap:.75rem}.wizard-nav{flex-wrap:wrap;position:sticky;bottom:0;background:#fff;padding:.75rem 0;margin-top:1rem;border-top:1px solid #e5e7eb;z-index:10}.wizard-nav-spacer{display:none}.wizard-btn-back,.wizard-btn-next,.wizard-btn-skip{width:100%;text-align:center;min-height:44px;padding:.75rem;box-sizing:border-box}.wizard-btn-next{order:1}.wizard-btn-skip{order:2}.wizard-btn-back{order:3}.wizard-step-content .btn-primary{width:100%;min-height:44px;padding:.75rem}.wizard-step-content .settings-chem-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.wizard-success-inline{padding:2rem 1rem}.wizard-summary-item{padding:.625rem .75rem}}@media (max-width: 380px){.wizard-step-content{padding:1rem}.wizard-step-content .settings-chem-grid{grid-template-columns:1fr 1fr}.wizard-form-group input,.wizard-form-group select,.wizard-step-content .form-group input,.wizard-step-content .form-group select{font-size:16px}}.wizard-section-hint{font-size:.82rem;color:#6b7280;margin:-.5rem 0 .75rem}.wizard-service-types,.wizard-checklist-items{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.wizard-service-type-item,.wizard-checklist-item{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.5rem .75rem}.wizard-service-type-label,.wizard-checklist-label{font-size:.88rem;color:#1f2937}.wizard-remove-btn{background:none;border:none;font-size:1.1rem;color:#9ca3af;cursor:pointer;padding:0 .25rem;line-height:1}.wizard-remove-btn:hover{color:#ef4444}.wizard-add-row{display:flex;gap:.5rem;align-items:center}.wizard-add-row input{flex:1;padding:.45rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.88rem}.wizard-btn-add{padding:.45rem .75rem!important;font-size:.82rem!important;white-space:nowrap;background:#7c3aed!important;color:#fff!important;border:none!important;border-radius:8px!important}.wizard-btn-add:hover:not(:disabled){background:#6d28d9!important}.wizard-btn-add:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 600px){.wizard-add-row{flex-direction:column}.wizard-add-row input{width:100%}.wizard-btn-add{width:100%;text-align:center}}.time-input-group{display:inline-flex;align-items:center;gap:2px}.time-input-group .time-select{padding:.38rem .2rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;background:#fff;color:#374151;cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.time-input-group .time-select:focus{border-color:#7c3aed;outline:none;box-shadow:0 0 0 2px #7c3aed26}.time-input-group .time-select:disabled{opacity:.5;cursor:not-allowed;background:#f9fafb}.time-input-group .time-hour,.time-input-group .time-minute,.time-input-group .time-period{min-width:52px}.time-input-colon{font-weight:700;color:#6b7280;padding:0 1px;font-size:.9rem;-webkit-user-select:none;user-select:none}.time-input-group.empty .time-select{color:#9ca3af}@media (max-width: 600px){.time-input-group .time-select{padding:.35rem .15rem;font-size:.82rem;min-width:46px}}.schedule-page{padding:1.5rem;max-width:1200px;margin:0 auto}.schedule-page h1{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.25rem}.schedule-page .page-subtitle{color:#6b7280;font-size:.9rem;margin-bottom:1.5rem}.schedule-actions{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.schedule-actions .btn-primary,.schedule-actions .btn-secondary{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:background .2s}.schedule-actions .btn-primary{background:#7c3aed;color:#fff}.schedule-actions .btn-primary:hover{background:#6d28d9}.schedule-actions .btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb}.schedule-actions .btn-secondary:hover{background:#e5e7eb}.schedule-filters{display:flex;gap:.75rem;margin-bottom:1rem;align-items:center;flex-wrap:wrap}.schedule-filters select{padding:.4rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.85rem;background:#fff}.week-nav{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.week-nav button{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;padding:.4rem .75rem;cursor:pointer;font-size:.85rem;font-weight:500}.week-nav button:hover{background:#e5e7eb}.week-nav .week-label{font-weight:600;color:#374151;font-size:.95rem}.schedule-table{width:100%;border-collapse:collapse;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;background:#fff}.schedule-table th{background:#f9fafb;padding:.6rem .75rem;text-align:left;font-size:.8rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #e5e7eb}.schedule-table td{padding:.6rem .75rem;font-size:.88rem;border-bottom:1px solid #f3f4f6;color:#374151}.schedule-table tr:last-child td{border-bottom:none}.schedule-table tr:hover td{background:#f9fafb}.day-badge{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:600;background:#ede9fe;color:#7c3aed}.freq-badge{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500;background:#ecfdf5;color:#059669}.service-type-badge{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500;background:#eff6ff;color:#2563eb}.row-actions{display:flex;gap:.4rem}.row-actions button{background:none;border:none;cursor:pointer;padding:.25rem;font-size:.85rem;border-radius:4px;transition:background .2s}.row-actions button:hover{background:#f3f4f6}.schedule-empty{text-align:center;padding:3rem 1rem;color:#9ca3af}.schedule-empty .empty-icon{font-size:2.5rem;margin-bottom:.75rem}.schedule-empty h3{font-size:1.1rem;color:#6b7280;margin-bottom:.25rem}.schedule-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.schedule-modal{background:#fff;border-radius:12px;padding:1.5rem;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000026}.schedule-modal .form-group{margin-bottom:.75rem}.schedule-modal .form-group label{display:block;font-size:.82rem;font-weight:600;color:#374151;margin-bottom:.25rem}.schedule-modal .form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.schedule-modal .modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid #f3f4f6}.generate-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:.75rem;font-size:.85rem;color:#1e40af;margin-bottom:1rem}.generate-result{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;padding:.75rem;font-size:.9rem;font-weight:600;color:#065f46;text-align:center}@media (max-width: 768px){.schedule-page{padding:1rem}.schedule-actions{flex-direction:column}.schedule-actions .btn-primary,.schedule-actions .btn-secondary{width:100%;justify-content:center}.schedule-filters{flex-direction:column}.schedule-filters select{width:100%}.schedule-table{border:none;background:transparent}.schedule-table thead{display:none}.schedule-table tbody{display:flex;flex-direction:column;gap:.75rem}.schedule-table tbody tr{display:flex;flex-wrap:wrap;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;box-shadow:0 1px 3px #0000000f;gap:.35rem;align-items:center}.schedule-table tbody tr:hover td{background:transparent}.schedule-table td{padding:0;border:none}.schedule-table td[data-label=Customer]{width:100%;padding-bottom:.5rem;margin-bottom:.5rem;border-bottom:1px solid #f3f4f6;font-size:1.05rem}.schedule-table td[data-label=Technician]{width:100%;padding-bottom:.35rem;display:flex;align-items:center;gap:.35rem}.schedule-table td[data-label=Technician]:before{content:"Tech: ";font-size:.75rem;font-weight:600;color:#9ca3af;white-space:nowrap}.schedule-table td[data-label=Day],.schedule-table td[data-label=Frequency],.schedule-table td[data-label=Service]{margin-right:.35rem}.schedule-table td[data-label=Start]{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#6b7280}.schedule-table td[data-label=Start]:before{content:"Start: ";font-size:.75rem;font-weight:600;color:#9ca3af;white-space:nowrap}.schedule-table td[data-label=Actions]{width:100%;padding-top:.5rem;margin-top:.25rem;border-top:1px solid #f3f4f6}.schedule-table td[data-label=Actions] .row-actions{gap:.75rem}.schedule-table td[data-label=Actions] .row-actions button{font-size:1.15rem;padding:.35rem}.schedule-modal .form-row{grid-template-columns:1fr}}.routes-page{padding:1.5rem;max-width:1200px;margin:0 auto}.routes-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.routes-page h1{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.25rem}.routes-page .page-subtitle{color:#6b7280;font-size:.9rem;margin-bottom:0}.btn-map-toggle{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .85rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;background:#fff;color:#374151;white-space:nowrap;flex-shrink:0;transition:all .15s;margin-top:.2rem}.btn-map-toggle:hover{background:#f5f3ff;border-color:#c4b5fd;color:#7c3aed}.btn-map-toggle.active{background:#7c3aed;color:#fff;border-color:#7c3aed;box-shadow:0 1px 4px #7c3aed40}.btn-map-toggle.active:hover{background:#6d28d9}.routes-map-overlay{margin-bottom:1rem}.routes-controls{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem;padding:.65rem .85rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #0000000a}.routes-controls-row{display:contents}.routes-controls-spacer{flex:1}.routes-controls input[type=date],.routes-controls select{padding:.45rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.85rem;background:#fff;text-align:center}.routes-controls .btn-sm{padding:.45rem .75rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid #e5e7eb;background:#f3f4f6;color:#374151}.routes-controls .btn-sm:hover{background:#e5e7eb}.routes-controls .btn-sm.active{background:#7c3aed;color:#fff;border-color:#7c3aed}.btn-nav{min-width:36px;text-align:center;font-size:1rem!important;padding:.4rem .5rem!important}.btn-today{border-color:#7c3aed!important;color:#7c3aed!important;background:#fff!important}.btn-today:hover{background:#f5f3ff!important}.btn-adhoc{background:#7c3aed!important;color:#fff!important;border:none!important}.btn-adhoc:hover{background:#6d28d9!important}.routes-controls .btn-primary{padding:.45rem .75rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;background:#7c3aed;color:#fff}.routes-controls .btn-primary:hover{background:#6d28d9}.tech-group{margin-bottom:1.5rem}.tech-group-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:2px solid #e5e7eb}.tech-group-header h3{font-size:1rem;font-weight:700;color:#1f2937}.tech-group.unassigned-group .tech-group-header{border-bottom-color:#f59e0b}.tech-group.unassigned-group .tech-group-header h3{color:#d97706}.tech-group-header .stop-count{font-size:.78rem;color:#9ca3af;font-weight:400}.stop-card{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:.5rem;transition:border-color .2s,opacity .2s,box-shadow .2s,background .2s;position:relative}.stop-card:hover{border-color:#c4b5fd}.stop-card.unassigned{border-left:4px solid #f59e0b;background:#fffdf7}.stop-card.unassigned:hover{border-color:#f59e0b}.stop-card-left{flex-shrink:0}.stop-card-left .reorder-btns{display:flex;flex-direction:column;align-items:center;gap:0}.drag-handle{font-size:1rem;color:#d1d5db;cursor:grab;-webkit-user-select:none;user-select:none;line-height:1;letter-spacing:1px;transition:color .15s}.drag-handle:hover{color:#7c3aed}.drag-handle:active{cursor:grabbing}.stop-card.dragging{opacity:.4;box-shadow:none;border-style:dashed}.stop-card.drag-over{border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed33;background:#faf5ff}.stop-card.drag-over:before{content:"";position:absolute;top:-3px;left:0;right:0;height:3px;background:#7c3aed;border-radius:3px}.stop-card-right{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-shrink:0}.stop-card-action-btn{padding:.35rem .75rem;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;border:none;background:#7c3aed;color:#fff;transition:background .15s;white-space:nowrap}.stop-card-action-btn:hover{background:#6d28d9}.stop-card-action-btn.completed{background:#16a34a}.stop-card-action-btn.completed:hover{background:#15803d}.stop-card-action-btn.in_progress{background:#2563eb}.stop-card-action-btn.in_progress:hover{background:#1d4ed8}.stop-time{font-size:.78rem;color:#7c3aed;font-weight:500;margin-top:.1rem}.stop-time.clickable{cursor:pointer;border-radius:4px;padding:.1rem .25rem;margin-left:-.25rem;transition:background .15s}.stop-time.clickable:hover{background:#f5f3ff}.stop-time-edit{display:flex;align-items:center;gap:.25rem;margin-top:.1rem}.stop-time-edit input[type=time]{padding:.2rem .35rem;border:1px solid #7c3aed;border-radius:4px;font-size:.78rem;width:110px}.btn-time-save{background:#16a34a;color:#fff;border:none;border-radius:4px;padding:.2rem .35rem;font-size:.75rem;cursor:pointer;line-height:1}.btn-time-save:hover{background:#15803d}.btn-time-cancel{background:none;color:#ef4444;border:none;padding:.2rem .25rem;font-size:.75rem;cursor:pointer;line-height:1}.stop-order{font-size:.85rem;font-weight:700;color:#9ca3af;min-width:1.5rem;text-align:center}.stop-info{flex:1}.stop-customer{font-weight:600;color:#1f2937;font-size:.92rem}.stop-address{font-size:.8rem;color:#6b7280;margin-top:.15rem}.stop-address-link{display:inline-block;font-size:.8rem;color:#7c3aed;text-decoration:none;margin-top:.15rem;transition:color .15s}.stop-address-link:hover{color:#6d28d9;text-decoration:underline}.stop-phone-link{display:inline-block;font-size:.8rem;color:#059669;text-decoration:none;margin-top:.15rem;transition:color .15s}.stop-phone-link:hover{color:#047857;text-decoration:underline}.stop-notes-preview{font-size:.78rem;color:#9ca3af;font-style:italic;margin-top:.1rem}.status-badge{display:inline-block;padding:.2rem .6rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-badge.scheduled{background:#f3f4f6;color:#6b7280}.status-badge.in_progress{background:#dbeafe;color:#2563eb}.status-badge.completed{background:#dcfce7;color:#16a34a}.status-badge.skipped{background:#fef9c3;color:#ca8a04}.status-badge.rescheduled{background:#fff7ed;color:#c2410c}.quick-assign-select{padding:.3rem .5rem;border:1px solid #f59e0b;border-radius:6px;font-size:.78rem;font-weight:600;color:#92400e;background:#fffbeb;cursor:pointer;min-width:110px}.quick-assign-select:hover{border-color:#d97706;background:#fef3c7}.quick-assign-select.assigned{border-color:#d1d5db;background:#fff;color:#374151;font-weight:500}.quick-assign-select.assigned:hover{border-color:#7c3aed;background:#f5f3ff}.quick-assign-select:disabled{opacity:.6;cursor:not-allowed}.btn-reassign{padding:.25rem .55rem;border:1px solid #d1d5db;border-radius:6px;font-size:.75rem;font-weight:600;color:#6b7280;background:#f9fafb;cursor:pointer;white-space:nowrap;transition:all .15s}.btn-reassign:hover{border-color:#7c3aed;color:#7c3aed;background:#f5f3ff}.btn-reassign-cancel{padding:.2rem .35rem;border:none;background:none;color:#ef4444;cursor:pointer;font-size:.75rem;line-height:1}.btn-reassign-cancel:hover{color:#dc2626}.week-quick-assign{width:100%;padding:.15rem .25rem;border:1px solid #f59e0b;border-radius:4px;font-size:.65rem;font-weight:600;color:#92400e;background:#fffbeb;cursor:pointer;margin-top:.1rem}.week-quick-assign:hover{border-color:#d97706}.week-quick-assign.assigned{border-color:#d1d5db;background:#fff;color:#374151;font-weight:500}.week-quick-assign.assigned:hover{border-color:#7c3aed}.week-reassign-row{display:flex;gap:.2rem;align-items:center;width:100%;margin-top:.1rem}.week-btn-reassign{width:100%;padding:.15rem .25rem;border:1px solid #d1d5db;border-radius:4px;font-size:.62rem;font-weight:600;color:#6b7280;background:#f9fafb;cursor:pointer;white-space:nowrap;transition:all .15s}.week-btn-reassign:hover{border-color:#7c3aed;color:#7c3aed;background:#f5f3ff}.week-btn-reassign-cancel{padding:.1rem .25rem;border:none;background:none;color:#ef4444;cursor:pointer;font-size:.65rem;line-height:1;flex-shrink:0}.week-btn-reassign-cancel:hover{color:#dc2626}.routes-unassigned-warning{display:flex;align-items:center;gap:.6rem;background:#fffbeb;border:1px solid #fcd34d;border-left:4px solid #f59e0b;border-radius:.5rem;padding:.65rem 1rem;margin-bottom:1rem}.routes-warning-icon{font-size:1.15rem;flex-shrink:0}.routes-warning-text{font-size:.85rem;color:#92400e}.routes-warning-text strong{font-weight:700}.routes-empty{text-align:center;padding:3rem 1rem;color:#9ca3af}.routes-empty .empty-icon{font-size:2.5rem;margin-bottom:.75rem}.routes-empty h3{font-size:1.1rem;color:#6b7280;margin-bottom:.25rem}.routes-view-toggle{display:inline-flex;background:#f3f4f6;border-radius:8px;padding:3px;gap:2px}.routes-view-toggle .toggle-btn{padding:.4rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;border:none;background:transparent;color:#6b7280;border-radius:6px;transition:all .15s}.routes-view-toggle .toggle-btn.active{background:#7c3aed;color:#fff;box-shadow:0 1px 3px #7c3aed4d}.routes-view-toggle .toggle-btn:hover:not(.active){background:#e5e7eb;color:#374151}.routes-calendar{margin-top:1rem}.routes-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.6rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #0000000a}.routes-calendar-header h2{font-size:1.15rem;font-weight:700;color:#1f2937;min-width:180px;text-align:center}.routes-calendar-nav{padding:.4rem .75rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;font-size:1.1rem;color:#374151;transition:all .15s}.routes-calendar-nav:hover{background:#f3f4f6;border-color:#d1d5db}.routes-calendar-today-btn{padding:.35rem .7rem;border:1px solid #7c3aed;border-radius:6px;background:#fff;color:#7c3aed;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.routes-calendar-today-btn:hover{background:#f5f3ff;box-shadow:0 1px 3px #7c3aed26}.routes-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e5e7eb;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.routes-calendar-day-header{background:#f9fafb;padding:.55rem .4rem;text-align:center;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.routes-calendar-cell{background:#fff;padding:.5rem;min-height:90px;cursor:pointer;transition:background .15s,box-shadow .15s;position:relative}.routes-calendar-cell:hover{background:#f5f3ff;z-index:1;box-shadow:inset 0 0 0 1px #c4b5fd}.routes-calendar-cell.empty{background:#fafafa;cursor:default}.routes-calendar-cell.empty:hover{box-shadow:none}.routes-calendar-cell.today{background:#f5f3ff}.routes-calendar-cell.today .routes-cal-day-num{background:#7c3aed;color:#fff;border-radius:50%;width:1.6rem;height:1.6rem;display:flex;align-items:center;justify-content:center;font-size:.78rem}.routes-cal-day-num{font-size:.82rem;font-weight:600;color:#374151;margin-bottom:.3rem}.routes-cal-stop-count{font-size:.72rem;color:#6b7280;margin-bottom:.25rem;font-weight:500}.routes-cal-dots{display:flex;gap:3px;flex-wrap:wrap}.routes-cal-dot{width:7px;height:7px;border-radius:50%}.routes-cal-dot.completed{background:#16a34a}.routes-cal-dot.in_progress{background:#2563eb}.routes-cal-dot.scheduled{background:#9ca3af}.routes-cal-dot.skipped{background:#ca8a04}.routes-cal-dot.unassigned{background:#f59e0b;box-shadow:0 0 0 1px #fcd34d}.routes-cal-names{margin-bottom:.25rem}.routes-cal-name{font-size:.65rem;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35;padding-left:.1rem;border-left:2px solid #d1d5db;margin-bottom:1px}.routes-cal-name.completed{border-left-color:#16a34a;color:#6b7280}.routes-cal-name.in_progress{border-left-color:#2563eb}.routes-cal-name.scheduled{border-left-color:#9ca3af}.routes-cal-name.unassigned{border-left-color:#f59e0b;color:#92400e}.routes-cal-more{font-size:.6rem;color:#9ca3af;font-style:italic;padding-left:.1rem}.schedule-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.schedule-modal{background:#fff;border-radius:12px;padding:1.5rem;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000026}.schedule-modal h2{font-size:1.15rem;font-weight:700;color:#1f2937;margin-bottom:1rem}.schedule-modal .form-group{margin-bottom:1rem}.schedule-modal .form-group label{display:block;font-size:.82rem;font-weight:600;color:#374151;margin-bottom:.35rem}.schedule-modal .form-group select,.schedule-modal .form-group input,.schedule-modal .form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.88rem;box-sizing:border-box}.schedule-modal .modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.schedule-modal .btn-primary{padding:.5rem 1.2rem;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;border:none;background:#7c3aed;color:#fff}.schedule-modal .btn-primary:hover:not(:disabled){background:#6d28d9}.schedule-modal .btn-primary:disabled{opacity:.5;cursor:not-allowed}.schedule-modal .btn-secondary{padding:.5rem 1.2rem;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;border:1px solid #d1d5db;background:#fff;color:#374151}.schedule-modal .btn-secondary:hover:not(:disabled){background:#f3f4f6}.service-type-checkboxes{display:flex;flex-wrap:wrap;gap:.4rem;padding:.25rem 0}.service-type-checkbox{display:inline-flex;align-items:center;font-size:.82rem;color:#6b7280;cursor:pointer;font-weight:500!important;padding:.3rem .75rem;border:1px solid #e5e7eb;border-radius:999px;background:#fff;transition:all .15s ease;-webkit-user-select:none;user-select:none}.service-type-checkbox:hover{border-color:#c4b5fd;background:#faf5ff}.service-type-checkbox.selected{background:#f3e8ff;border-color:#7c3aed;color:#7c3aed}.service-type-checkbox input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.quick-add-customer{background:#f9fafb;border-radius:8px;padding:.75rem;margin-top:.5rem;border:1px solid #e5e7eb}.quick-add-title{font-size:.82rem;font-weight:600;margin-bottom:.5rem;color:#374151}.quick-add-customer .form-group{margin-bottom:.5rem}.quick-add-customer .form-group label{font-size:.78rem}.quick-add-customer .modal-actions{margin-top:.75rem}.quick-add-location{font-size:.8rem;color:#6b7280;padding:0 .2rem;margin-bottom:.35rem}.routes-week{margin-top:1rem}.routes-week-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.6rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #0000000a}.routes-week-header h2{font-size:1.1rem;font-weight:700;color:#1f2937;text-align:center}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e5e7eb;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.week-day-column{background:#f9fafb;min-height:280px;display:flex;flex-direction:column}.week-day-column.today{background:#faf8ff}.week-day-header{display:flex;align-items:center;justify-content:space-between;padding:.55rem .6rem;background:#f3f4f6;border-bottom:1px solid #e5e7eb;cursor:pointer;transition:background .15s}.week-day-header:hover{background:#e5e7eb}.week-day-column.today .week-day-header{background:#ede9fe;border-bottom-color:#c4b5fd}.week-day-label{font-size:.78rem;font-weight:600;color:#374151}.week-day-label.today{color:#7c3aed}.week-day-count{font-size:.7rem;color:#9ca3af;font-weight:500}.week-day-stops{flex:1;padding:.35rem;display:flex;flex-direction:column;gap:.3rem;overflow-y:auto;max-height:500px}.week-day-empty{text-align:center;padding:1.5rem .5rem;font-size:.75rem;color:#c9c9c9}.week-stop-card{background:#fff;border-radius:6px;padding:.45rem .5rem;border-left:3px solid #d1d5db;cursor:pointer;transition:box-shadow .15s,transform .1s;position:relative}.week-stop-card:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.week-stop-card.completed{border-left-color:#16a34a;opacity:.75;cursor:pointer}.week-stop-card.in_progress{border-left-color:#2563eb}.week-stop-card.scheduled{border-left-color:#9ca3af}.week-stop-card.skipped{border-left-color:#ca8a04;opacity:.6;cursor:default}.week-stop-card.unassigned{border-left-color:#f59e0b;background:#fffdf7}.week-stop-customer{font-size:.78rem;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:1rem}.week-stop-time{font-size:.65rem;color:#7c3aed;font-weight:600;margin-top:.1rem}.week-stop-address{display:block;font-size:.62rem;color:#7c3aed;text-decoration:none;margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}.week-stop-address:hover{color:#6d28d9;text-decoration:underline}.week-stop-tech{font-size:.68rem;color:#6b7280;margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-stop-tech.unassigned{color:#d97706;font-weight:600}.week-unassigned-badge{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:#f59e0b;color:#fff;font-size:.6rem;font-weight:700;margin-left:.3rem;vertical-align:middle}.week-stop-type{font-size:.62rem;color:#9ca3af;text-transform:capitalize;margin-top:.15rem;padding:.05rem .3rem;background:#f3f4f6;border-radius:3px;display:inline-block}.week-stop-status{position:absolute;top:.4rem;right:.4rem;font-size:.65rem;line-height:1}.week-stop-status.completed{color:#16a34a}.week-stop-status.in_progress{color:#2563eb}.week-stop-status.scheduled{color:#9ca3af}.week-stop-status.skipped{color:#ca8a04}.week-stop-status.rescheduled{color:#c2410c}@media (max-width: 1000px){.week-grid{grid-template-columns:1fr;gap:0;background:transparent;border:none;border-radius:0;overflow:visible}.week-day-column{min-height:auto;border-radius:8px;overflow:hidden;margin-bottom:.5rem;border:1px solid #e5e7eb}.week-day-column.today{box-shadow:0 0 0 2px #7c3aed}.week-day-stops{max-height:none}.week-stop-card{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem}.week-stop-customer{flex:1;font-size:.85rem}.week-stop-time{font-size:.75rem}.week-stop-address{display:block;font-size:.72rem;max-width:200px;color:#7c3aed}.week-stop-tech,.week-quick-assign{font-size:.75rem}.week-stop-type{font-size:.72rem;background:transparent;padding:0}.week-stop-status{position:static;font-size:.75rem}}@media (max-width: 600px){.routes-page{padding:1rem}.routes-page-header{gap:.5rem;align-items:center;margin-bottom:.75rem}.routes-page h1{font-size:1.25rem}.btn-map-toggle{padding:.4rem .7rem;font-size:.8rem;margin-top:0}.routes-controls{flex-direction:column;gap:.4rem}.routes-controls-row{display:flex;width:100%;gap:.4rem;align-items:center;flex-wrap:wrap}.routes-view-toggle{width:100%}.routes-view-toggle .toggle-btn{flex:1;text-align:center;padding:.5rem .4rem}.routes-controls input[type=date]{flex:1 1 auto;min-width:130px;font-size:.85rem;padding:.45rem .5rem}.routes-controls select{flex:1;min-width:0;font-size:.82rem;padding:.4rem .5rem}.routes-controls .btn-sm{padding:.45rem .55rem;font-size:.78rem;white-space:nowrap;flex-shrink:0}.btn-adhoc{flex:0 0 auto}.stop-card{flex-wrap:wrap;gap:.4rem;padding:.75rem}.stop-card-left{order:-1}.stop-card-left .reorder-btns{flex-direction:row;gap:.25rem}.drag-handle{font-size:.85rem}.routes-controls-spacer{display:none}.stop-card-right{width:100%;padding-top:.35rem;border-top:1px solid #f3f4f6;margin-left:0;flex-wrap:wrap}.stop-card-action-btn{font-size:.75rem;padding:.3rem .6rem;margin-left:auto}.stop-info{flex:1;min-width:0}.stop-customer{font-size:.88rem}.service-type-badge{font-size:.62rem;padding:.05rem .35rem}.stop-time{font-size:.75rem}.stop-time-edit{flex-wrap:nowrap}.stop-time-edit input[type=time]{width:100px;font-size:.75rem;padding:.15rem .25rem}.stop-address,.stop-address-link{font-size:.75rem}.quick-assign-select{font-size:.75rem;padding:.3rem .35rem;min-width:0;flex:1}.status-badge{font-size:.68rem;padding:.15rem .45rem}.routes-unassigned-warning{padding:.5rem .75rem;gap:.4rem}.routes-warning-icon{font-size:1rem}.routes-warning-text{font-size:.78rem}.routes-calendar-cell{min-height:50px;padding:.25rem}.routes-cal-names{display:none}.routes-cal-day-num{font-size:.7rem}.routes-cal-stop-count{font-size:.65rem}.routes-calendar-header h2{font-size:.95rem;min-width:130px}.routes-calendar-today-btn{font-size:.7rem;padding:.2rem .4rem}.routes-week-header h2{font-size:.95rem}.week-grid{gap:0;background:transparent;border:none;border-radius:0;overflow:visible}.week-day-column{border-radius:8px;overflow:hidden;margin-bottom:.4rem;border:1px solid #e5e7eb}.week-day-column.today{box-shadow:0 0 0 2px #7c3aed}.week-stop-card{flex-direction:column;align-items:flex-start;gap:.15rem;padding:.5rem .6rem}.week-stop-customer{max-width:none;white-space:normal;font-size:.82rem;padding-right:1.2rem}.week-stop-time{font-size:.72rem;white-space:nowrap}.week-stop-address{display:block;font-size:.7rem;white-space:normal;overflow:visible;color:#7c3aed}.week-stop-type{display:none}.week-quick-assign{max-width:none;width:100%;font-size:.75rem;padding:.2rem .3rem}.week-stop-tech{max-width:none;overflow:visible;font-size:.72rem}.week-stop-status{top:.5rem;right:.5rem}.quick-assign-select{min-height:36px}.stop-time-edit .time-input-group{gap:1px}.stop-time-edit .time-input-group .time-select{min-width:42px;padding:.25rem .1rem;font-size:.78rem}.schedule-modal{padding:1.25rem;max-width:100%;border-radius:12px 12px 0 0;max-height:85vh}.schedule-modal-overlay{align-items:flex-end;padding:0}.schedule-modal h2{font-size:1.05rem}.schedule-modal .form-group label{font-size:.78rem}.schedule-modal .form-group select,.schedule-modal .form-group input,.schedule-modal .form-group textarea{font-size:.85rem;padding:.45rem .6rem}.service-type-checkboxes{gap:.3rem}.service-type-checkbox{font-size:.78rem;padding:.25rem .6rem}.schedule-modal .modal-actions{flex-direction:column-reverse;gap:.5rem}.schedule-modal .btn-primary,.schedule-modal .btn-secondary{width:100%;text-align:center;padding:.6rem 1rem}}.my-route-page{padding:1.5rem;max-width:800px;margin:0 auto}.my-route-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.my-route-page h1{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.25rem}.my-route-page .page-subtitle{color:#6b7280;font-size:.9rem;margin-bottom:1rem}.my-route-page .btn-map-toggle{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .85rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;background:#fff;color:#374151;white-space:nowrap;flex-shrink:0;transition:all .15s;margin-top:.2rem}.my-route-page .btn-map-toggle:hover{background:#f5f3ff;border-color:#c4b5fd;color:#7c3aed}.my-route-page .btn-map-toggle.active{background:#7c3aed;color:#fff;border-color:#7c3aed;box-shadow:0 1px 4px #7c3aed40}.my-route-page .btn-map-toggle.active:hover{background:#6d28d9}.my-route-map-overlay{margin-bottom:1rem}.route-progress{margin-bottom:1.5rem}.route-progress-label{display:flex;justify-content:space-between;font-size:.85rem;color:#6b7280;margin-bottom:.35rem}.route-progress-bar{height:8px;background:#e5e7eb;border-radius:999px;overflow:hidden}.route-progress-fill{height:100%;background:#7c3aed;border-radius:999px;transition:width .3s ease}.route-stop-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1rem 1.25rem;margin-bottom:.75rem;transition:border-color .2s,box-shadow .2s}.route-stop-card:hover{border-color:#c4b5fd}.route-stop-card.active{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.route-stop-card.completed{opacity:.6;background:#f9fafb;border-color:#e5e7eb}.route-stop-card.completed .route-stop-name{text-decoration:line-through;text-decoration-color:#9ca3af;color:#9ca3af}.route-stop-card.completed .route-stop-details{text-decoration:line-through;text-decoration-color:#d1d5db;color:#9ca3af}.route-stop-card.completed .route-stop-address-link,.route-stop-card.completed .route-stop-phone-link{color:#9ca3af;text-decoration:line-through;text-decoration-color:#d1d5db}.route-stop-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.route-stop-number{width:28px;height:28px;border-radius:50%;background:#f3f4f6;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#6b7280;flex-shrink:0}.route-stop-card.completed .route-stop-number{background:#dcfce7;color:#16a34a}.route-stop-card.active .route-stop-number{background:#dbeafe;color:#2563eb}.route-stop-name{flex:1;font-weight:700;font-size:1rem;color:#1f2937}.service-type-badge{display:inline-block;padding:.1rem .45rem;border-radius:9999px;font-size:.68rem;font-weight:600;background:#f3f4f6;color:#6b7280;margin-left:.4rem;text-transform:capitalize;vertical-align:middle}.route-stop-details{padding-left:3rem}.route-stop-time{font-size:.82rem;color:#7c3aed;font-weight:500;margin-bottom:.25rem}.route-stop-address-link{display:inline-block;font-size:.85rem;color:#7c3aed;text-decoration:none;margin-bottom:.25rem;transition:color .15s}.route-stop-address-link:hover{color:#6d28d9;text-decoration:underline}.route-stop-phone-link{display:inline-block;font-size:.85rem;color:#059669;text-decoration:none;margin-bottom:.25rem;transition:color .15s}.route-stop-phone-link:hover{color:#047857;text-decoration:underline}.route-stop-notes{font-size:.82rem;color:#9ca3af;font-style:italic;margin-bottom:.5rem}.route-stop-pool{font-size:.8rem;color:#9ca3af}.route-stop-rescheduled-badge{display:inline-flex;align-items:center;gap:.3rem;margin-top:.4rem;padding:.2rem .6rem;background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;font-size:.78rem;font-weight:500;color:#c2410c}.route-stop-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-left:3rem}.route-stop-actions button{padding:.4rem .85rem;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;border:none;transition:background .2s}.btn-start{background:#2563eb;color:#fff}.btn-start:hover{background:#1d4ed8}.btn-complete{background:#16a34a;color:#fff}.btn-complete:hover{background:#15803d}.btn-skip{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb!important}.btn-skip:hover{background:#e5e7eb}.btn-edit{background:#f5f3ff;color:#7c3aed;border:1px solid #c4b5fd!important}.btn-edit:hover{background:#ede9fe}.my-route-empty{text-align:center;padding:3rem 1rem;color:#9ca3af}.my-route-empty .empty-icon{font-size:2.5rem;margin-bottom:.75rem}.my-route-empty h3{font-size:1.1rem;color:#6b7280;margin-bottom:.25rem}.skip-modal{background:#fff;border-radius:12px;padding:1.5rem;width:90%;max-width:400px;box-shadow:0 20px 60px #00000026}.skip-modal h3{font-size:1.05rem;margin-bottom:.75rem}.skip-modal textarea{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.88rem;margin-bottom:.75rem;box-sizing:border-box}.skip-modal .modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.my-route-controls{display:flex;gap:.5rem;margin-bottom:1rem;align-items:center;flex-wrap:wrap;padding:.65rem .85rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #0000000a}.my-route-controls-row{display:contents}.my-route-controls .btn-sm{padding:.45rem .75rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid #e5e7eb;background:#f3f4f6;color:#374151}.my-route-controls .btn-sm:hover{background:#e5e7eb}.my-route-controls .btn-nav{min-width:36px;text-align:center;font-size:1rem!important;padding:.4rem .5rem!important}.my-route-controls .btn-today{border-color:#7c3aed!important;color:#7c3aed!important;background:#fff!important}.my-route-controls .btn-today:hover{background:#f5f3ff!important}.my-route-controls input[type=date]{padding:.45rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.85rem;background:#fff;text-align:center}.my-route-view-toggle{display:inline-flex;background:#f3f4f6;border-radius:8px;padding:3px;gap:2px}.my-route-view-toggle .toggle-btn{padding:.4rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;border:none;background:transparent;color:#6b7280;border-radius:6px;transition:all .15s}.my-route-view-toggle .toggle-btn.active{background:#7c3aed;color:#fff;box-shadow:0 1px 3px #7c3aed4d}.my-route-view-toggle .toggle-btn:hover:not(.active){background:#e5e7eb;color:#374151}.my-route-page .status-badge{display:inline-block;padding:.2rem .6rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.my-route-page .status-badge.scheduled{background:#f3f4f6;color:#6b7280}.my-route-page .status-badge.in_progress{background:#dbeafe;color:#2563eb}.my-route-page .status-badge.completed{background:#dcfce7;color:#16a34a}.my-route-page .status-badge.skipped{background:#fef9c3;color:#ca8a04}.my-route-week{margin-top:1rem}.my-route-week-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.6rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #0000000a}.my-route-week-header h2{font-size:1.1rem;font-weight:700;color:#1f2937;text-align:center}.my-route-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e5e7eb;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.my-route-week-day{background:#f9fafb;min-height:280px;display:flex;flex-direction:column}.my-route-week-day.today{background:#faf8ff}.my-route-week-day-header{display:flex;align-items:center;justify-content:space-between;padding:.55rem .6rem;background:#f3f4f6;border-bottom:1px solid #e5e7eb;cursor:pointer;transition:background .15s}.my-route-week-day-header:hover{background:#e5e7eb}.my-route-week-day.today .my-route-week-day-header{background:#ede9fe;border-bottom-color:#c4b5fd}.my-route-week-day-label{font-size:.78rem;font-weight:600;color:#374151}.my-route-week-day-label.today{color:#7c3aed}.my-route-week-day-count{font-size:.7rem;color:#9ca3af;font-weight:500}.my-route-week-day-stops{flex:1;padding:.35rem;display:flex;flex-direction:column;gap:.3rem;overflow-y:auto;max-height:500px}.my-route-week-day-empty{text-align:center;padding:1.5rem .5rem;font-size:.75rem;color:#c9c9c9}.my-route-week-stop{background:#fff;border-radius:6px;padding:.45rem .5rem;border-left:3px solid #d1d5db;cursor:pointer;transition:box-shadow .15s,transform .1s;position:relative}.my-route-week-stop:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.my-route-week-stop.completed{border-left-color:#16a34a;opacity:.65}.my-route-week-stop.completed .my-route-week-stop-customer{text-decoration:line-through;text-decoration-color:#9ca3af;color:#9ca3af}.my-route-week-stop.completed .my-route-week-stop-address{text-decoration:line-through;text-decoration-color:#d1d5db;color:#9ca3af}.my-route-week-stop.in_progress{border-left-color:#2563eb}.my-route-week-stop.scheduled{border-left-color:#9ca3af}.my-route-week-stop.skipped{border-left-color:#ca8a04;opacity:.6}.my-route-week-stop-customer{font-size:.78rem;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:1rem}.my-route-week-stop-time{font-size:.65rem;color:#7c3aed;font-weight:600;margin-top:.1rem}.my-route-week-stop-address{display:block;font-size:.62rem;color:#7c3aed;text-decoration:none;margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}.my-route-week-stop-address:hover{color:#6d28d9;text-decoration:underline}.my-route-week-stop-type{font-size:.62rem;color:#9ca3af;text-transform:capitalize;margin-top:.15rem;padding:.05rem .3rem;background:#f3f4f6;border-radius:3px;display:inline-block}.my-route-week-stop-status{position:absolute;top:.4rem;right:.4rem;font-size:.65rem;line-height:1}.my-route-week-stop-status.completed{color:#16a34a}.my-route-week-stop-status.in_progress{color:#2563eb}.my-route-week-stop-status.scheduled{color:#9ca3af}.my-route-week-stop-status.skipped{color:#ca8a04}.my-route-calendar{margin-top:1rem}.my-route-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.6rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 3px #0000000a}.my-route-calendar-header h2{font-size:1.15rem;font-weight:700;color:#1f2937;min-width:180px;text-align:center}.my-route-calendar-nav{padding:.4rem .75rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;font-size:1.1rem;color:#374151;transition:all .15s}.my-route-calendar-nav:hover{background:#f3f4f6;border-color:#d1d5db}.my-route-calendar-today-btn{padding:.35rem .7rem;border:1px solid #7c3aed;border-radius:6px;background:#fff;color:#7c3aed;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.my-route-calendar-today-btn:hover{background:#f5f3ff;box-shadow:0 1px 3px #7c3aed26}.my-route-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e5e7eb;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.my-route-cal-day-header{background:#f9fafb;padding:.55rem .4rem;text-align:center;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.my-route-cal-cell{background:#fff;padding:.5rem;min-height:90px;cursor:pointer;transition:background .15s,box-shadow .15s;position:relative}.my-route-cal-cell:hover{background:#f5f3ff;z-index:1;box-shadow:inset 0 0 0 1px #c4b5fd}.my-route-cal-cell.empty{background:#fafafa;cursor:default}.my-route-cal-cell.empty:hover{box-shadow:none}.my-route-cal-cell.today{background:#f5f3ff}.my-route-cal-cell.today .my-route-cal-day-num{background:#7c3aed;color:#fff;border-radius:50%;width:1.6rem;height:1.6rem;display:flex;align-items:center;justify-content:center;font-size:.78rem}.my-route-cal-day-num{font-size:.82rem;font-weight:600;color:#374151;margin-bottom:.3rem}.my-route-cal-count{font-size:.72rem;color:#6b7280;margin-bottom:.25rem;font-weight:500}.my-route-cal-names{margin-bottom:.25rem}.my-route-cal-name{font-size:.65rem;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35;padding-left:.1rem;border-left:2px solid #d1d5db;margin-bottom:1px}.my-route-cal-name.completed{border-left-color:#16a34a;color:#6b7280}.my-route-cal-name.in_progress{border-left-color:#2563eb}.my-route-cal-name.scheduled{border-left-color:#9ca3af}.my-route-cal-more{font-size:.6rem;color:#9ca3af;font-style:italic;padding-left:.1rem}.my-route-cal-dots{display:flex;gap:3px;flex-wrap:wrap}.my-route-cal-dot{width:7px;height:7px;border-radius:50%}.my-route-cal-dot.completed{background:#16a34a}.my-route-cal-dot.in_progress{background:#2563eb}.my-route-cal-dot.scheduled{background:#9ca3af}.my-route-cal-dot.skipped{background:#ca8a04}.my-route-header-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.btn-adhoc-stop{padding:.45rem .85rem;border:2px solid #7c3aed;background:#fff;color:#7c3aed;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-adhoc-stop:hover{background:#7c3aed;color:#fff}.adhoc-modal{background:#fff;border-radius:12px;padding:1.5rem;width:440px;max-width:95vw;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.adhoc-modal h3{margin:0 0 .25rem;font-size:1.15rem;color:#1f2937}.adhoc-modal-subtitle{color:#6b7280;font-size:.82rem;margin:0 0 1rem}.adhoc-label{display:block;font-size:.78rem;font-weight:600;color:#374151;margin-bottom:.3rem;margin-top:.75rem}.adhoc-search-input{width:100%;padding:.55rem 2rem .55rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.85rem;outline:none;transition:border-color .15s;box-sizing:border-box;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 d='M3 5l3 3 3-3' fill='none' stroke='%239ca3af' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center}.adhoc-search-input:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.adhoc-customer-list{border:1px solid #e5e7eb;border-radius:8px;max-height:180px;overflow-y:auto;margin-top:.3rem;background:#fff}.adhoc-customer-item{padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background .1s}.adhoc-customer-item:last-child{border-bottom:none}.adhoc-customer-item:hover{background:#f5f3ff}.adhoc-customer-name{font-weight:600;font-size:.85rem;color:#1f2937}.adhoc-customer-addr{font-size:.75rem;color:#6b7280;margin-top:.1rem}.adhoc-customer-empty{padding:.75rem;text-align:center;color:#9ca3af;font-size:.82rem}.adhoc-selected-badge{display:inline-block;margin-top:.35rem;padding:.25rem .65rem;background:#dcfce7;color:#16a34a;border-radius:9999px;font-size:.78rem;font-weight:600}.adhoc-selected-display{display:flex;align-items:center;width:100%;padding:.55rem .75rem;border:1px solid #16a34a;border-radius:8px;background:#f0fdf4;box-sizing:border-box;gap:.5rem}.adhoc-selected-text{flex:1;font-size:.85rem;font-weight:600;color:#16a34a}.adhoc-selected-clear{background:none;border:none;color:#6b7280;cursor:pointer;font-size:1rem;padding:0 .25rem;line-height:1;border-radius:4px;transition:all .12s}.adhoc-selected-clear:hover{color:#dc2626;background:#fee2e2}.adhoc-select{width:100%;padding:.55rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.85rem;outline:none;background:#fff;box-sizing:border-box}.adhoc-select:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.adhoc-notes{width:100%;padding:.55rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.85rem;outline:none;resize:vertical;font-family:inherit;box-sizing:border-box}.adhoc-notes:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.btn-adhoc-submit{padding:.55rem 1.2rem;background:#7c3aed;color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-adhoc-submit:hover:not(:disabled){background:#6d28d9}.btn-adhoc-submit:disabled{opacity:.5;cursor:not-allowed}.adhoc-modal .modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}.adhoc-dropdown-wrap{position:relative}.adhoc-dropdown-wrap .adhoc-customer-list{position:absolute;z-index:10;left:0;right:0;top:100%;margin-top:2px;box-shadow:0 4px 16px #0000001f}.adhoc-new-customer-link{display:inline-block;margin-top:.4rem;padding:0;border:none;background:none;color:#7c3aed;font-size:.8rem;font-weight:600;cursor:pointer;text-decoration:none}.adhoc-new-customer-link:hover{text-decoration:underline}.adhoc-new-customer-form{border:1px solid #e5e7eb;border-radius:8px;padding:.75rem;background:#fafafa;margin-top:.35rem}.adhoc-new-customer-form .adhoc-new-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.adhoc-new-form-title{font-size:.82rem;font-weight:700;color:#374151}.adhoc-new-form-back{padding:0;border:none;background:none;color:#7c3aed;font-size:.78rem;font-weight:600;cursor:pointer;text-decoration:none}.adhoc-new-form-back:hover{text-decoration:underline}.adhoc-new-row{display:flex;gap:.5rem;margin-bottom:.5rem}.adhoc-new-row:last-of-type{margin-bottom:.4rem}.adhoc-new-field{flex:1}.adhoc-new-field label{display:block;font-size:.72rem;font-weight:600;color:#6b7280;margin-bottom:.15rem}.adhoc-new-field input{width:100%;padding:.4rem .55rem;border:1px solid #d1d5db;border-radius:6px;font-size:.82rem;outline:none;box-sizing:border-box}.adhoc-new-field input:focus,.adhoc-new-field select:focus{border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.adhoc-new-field select{width:100%;padding:.4rem 1.5rem .4rem .55rem;border:1px solid #d1d5db;border-radius:6px;font-size:.82rem;outline:none;box-sizing:border-box;background-color:#fff;color:#1f2937;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;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 d='M3 5l3 3 3-3' fill='none' stroke='%239ca3af' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center}.adhoc-new-section-label{font-size:.72rem;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;margin:.6rem 0 .3rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.adhoc-service-chips{display:flex;flex-wrap:wrap;gap:.35rem}.adhoc-service-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .65rem;border:1.5px solid #d1d5db;border-radius:9999px;font-size:.78rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .12s;background:#fff;-webkit-user-select:none;user-select:none}.adhoc-service-chip input[type=checkbox]{display:none}.adhoc-service-chip:hover{border-color:#a78bfa;color:#7c3aed}.adhoc-service-chip.active{border-color:#7c3aed;background:#f5f3ff;color:#7c3aed;font-weight:600}@media (max-width: 1000px){.my-route-week-grid{grid-template-columns:1fr;gap:0;background:transparent;border:none;border-radius:0;overflow:visible}.my-route-week-day{min-height:auto;border-radius:8px;overflow:hidden;margin-bottom:.5rem;border:1px solid #e5e7eb}.my-route-week-day.today{box-shadow:0 0 0 2px #7c3aed}.my-route-week-day-stops{max-height:none}.my-route-week-stop{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem}.my-route-week-stop-customer{flex:1;font-size:.85rem}.my-route-week-stop-time{font-size:.75rem}.my-route-week-stop-address{display:block;font-size:.72rem;max-width:200px;color:#7c3aed}.my-route-week-stop-type{font-size:.72rem;background:transparent;padding:0}.my-route-week-stop-status{position:static;font-size:.75rem}}@media (max-width: 600px){.my-route-page{padding:1rem}.my-route-header{gap:.5rem;align-items:center;margin-bottom:.75rem}.my-route-page h1{font-size:1.25rem}.my-route-page .btn-map-toggle{padding:.4rem .7rem;font-size:.8rem;margin-top:0}.my-route-controls{flex-direction:column;gap:.4rem}.my-route-view-toggle{width:100%}.my-route-view-toggle .toggle-btn{flex:1;text-align:center;padding:.5rem .4rem}.my-route-controls-row{display:flex;width:100%;gap:.4rem;align-items:center;flex-wrap:wrap}.my-route-controls .btn-sm{padding:.45rem .55rem;font-size:.78rem;white-space:nowrap;flex-shrink:0}.my-route-controls input[type=date]{flex:1 1 auto;min-width:130px;font-size:.85rem;padding:.45rem .5rem}.route-stop-card{padding:.75rem .85rem;border-radius:10px}.route-stop-header{gap:.5rem;flex-wrap:wrap}.route-stop-number{width:24px;height:24px;font-size:.75rem}.route-stop-name{font-size:.92rem;flex:1;min-width:0}.service-type-badge{font-size:.62rem;padding:.05rem .35rem}.route-stop-details{padding-left:2.25rem}.route-stop-time{font-size:.78rem}.route-stop-address-link{font-size:.8rem}.route-stop-notes{font-size:.78rem}.route-stop-pool{font-size:.75rem}.route-stop-actions{padding-left:0;gap:.4rem;flex-wrap:wrap;margin-top:.6rem}.route-stop-actions button{padding:.55rem .85rem;font-size:.82rem;flex:1;text-align:center;min-height:40px}.route-stop-card .status-badge{font-size:.68rem;padding:.15rem .45rem}.route-progress-label{font-size:.8rem}.skip-modal-overlay{align-items:flex-end;padding:0}.skip-modal{width:100%;max-width:100%;padding:1.25rem;border-radius:12px 12px 0 0;max-height:85vh}.skip-modal .modal-actions{flex-direction:column-reverse;gap:.5rem}.skip-modal .modal-actions button{width:100%;text-align:center;padding:.6rem 1rem;min-height:44px}.my-route-header-actions{flex-direction:row;gap:.35rem}.btn-adhoc-stop{padding:.35rem .6rem;font-size:.75rem;border-width:1.5px}.adhoc-modal{width:100%;max-width:100%;border-radius:12px 12px 0 0;padding:1.25rem;max-height:90vh}.adhoc-modal .modal-actions{flex-direction:column-reverse;gap:.5rem}.adhoc-modal .modal-actions button{width:100%;text-align:center;padding:.6rem 1rem;min-height:44px}.adhoc-customer-list{max-height:140px}.adhoc-new-row{flex-direction:column;gap:.4rem}.adhoc-service-chips{gap:.3rem}.adhoc-service-chip{font-size:.72rem;padding:.25rem .55rem}.my-route-cal-cell{min-height:50px;padding:.25rem}.my-route-cal-names{display:none}.my-route-cal-day-num{font-size:.7rem}.my-route-cal-count{font-size:.65rem}.my-route-calendar-header{padding:.5rem .75rem}.my-route-calendar-header h2{font-size:.95rem;min-width:130px}.my-route-calendar-nav{padding:.35rem .6rem;font-size:1rem}.my-route-calendar-today-btn{font-size:.7rem;padding:.2rem .4rem}.my-route-week-header{padding:.5rem .75rem}.my-route-week-header h2{font-size:.95rem}.my-route-week-grid{grid-template-columns:1fr;gap:0;background:transparent;border:none;border-radius:0;overflow:visible}.my-route-week-day{min-height:auto;border-radius:8px;overflow:hidden;margin-bottom:.4rem;border:1px solid #e5e7eb}.my-route-week-day.today{box-shadow:0 0 0 2px #7c3aed}.my-route-week-day-stops{max-height:none}.my-route-week-stop{flex-direction:column;align-items:flex-start;gap:.15rem;padding:.5rem .6rem}.my-route-week-stop-customer{max-width:none;white-space:normal;font-size:.82rem;padding-right:1.2rem}.my-route-week-stop-time{font-size:.72rem;white-space:nowrap}.my-route-week-stop-address{display:block;font-size:.7rem;white-space:normal;overflow:visible;color:#7c3aed}.my-route-week-stop-type{display:none}.my-route-week-stop-status{top:.5rem;right:.5rem}.my-route-map-overlay{margin-left:-1rem;margin-right:-1rem}}.service-log-page{padding:1.5rem;max-width:900px;margin:0 auto}.service-log-page h1{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.25rem}.service-log-page .page-subtitle{color:#6b7280;font-size:.9rem;margin-bottom:0}.log-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.btn-reschedule{padding:.5rem 1rem;border:1px solid #f97316;border-radius:8px;background:#fff7ed;color:#c2410c;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.btn-reschedule:hover:not(:disabled){background:#fed7aa;border-color:#ea580c}.btn-reschedule:disabled{opacity:.5;cursor:not-allowed}.log-status-badge{display:inline-block;padding:.35rem .75rem;border-radius:20px;font-size:.82rem;font-weight:600;white-space:nowrap;flex-shrink:0}.log-status-badge.rescheduled{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.log-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem;margin-bottom:1rem}.log-section h2{font-size:1rem;font-weight:700;color:#1f2937;margin-bottom:.75rem;display:flex;align-items:center;gap:.4rem}.customer-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.5rem}.customer-info-grid .info-item{font-size:.85rem}.customer-info-grid .info-label{color:#9ca3af;font-size:.78rem}.customer-info-grid .info-value{color:#374151;font-weight:500}.address-map-link{color:#7c3aed;text-decoration:none;display:inline-flex;align-items:center;gap:.3rem;font-weight:500;transition:color .15s}.address-map-link:hover{color:#6d28d9;text-decoration:underline}.address-map-link .map-icon{font-size:.85rem;flex-shrink:0}.service-time-grid{display:flex;gap:1.5rem;align-items:flex-end;flex-wrap:wrap}.service-time-field label{display:block;font-size:.78rem;font-weight:600;color:#6b7280;margin-bottom:.2rem}.service-time-input-row{display:flex;gap:.35rem;align-items:center}.service-time-input-row input[type=time]{padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem}.btn-time-now{padding:.35rem .6rem;border:1px solid #7c3aed;border-radius:6px;background:#fff;color:#7c3aed;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-time-now:hover:not(:disabled){background:#f5f3ff}.btn-time-now:disabled{opacity:.5;cursor:not-allowed}.service-time-duration{font-size:.82rem;color:#7c3aed;font-weight:600;padding:.4rem 0}.checklist-items{display:flex;flex-direction:column;gap:.35rem}.checklist-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.checklist-item:hover{background:#f9fafb;border-color:#d1d5db}.checklist-item.checked{background:#f0fdf4;border-color:#bbf7d0}.checklist-item input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:#16a34a;cursor:pointer;flex-shrink:0}.checklist-label{font-size:.88rem;color:#374151;font-weight:500}.checklist-item.checked .checklist-label{color:#15803d;text-decoration:line-through;text-decoration-color:#86efac}.checklist-progress{margin-top:.5rem;font-size:.78rem;font-weight:600;color:#6b7280;text-align:right}.water-body-tabs{display:flex;gap:0;margin-bottom:.75rem;border-bottom:2px solid #e5e7eb;overflow-x:auto;-webkit-overflow-scrolling:touch}.water-body-tab{padding:.5rem 1rem;border:none;background:none;font-size:.82rem;font-weight:600;color:#6b7280;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:color .15s,border-color .15s}.water-body-tab:hover{color:#7c3aed}.water-body-tab.active{color:#7c3aed;border-bottom-color:#7c3aed}.test-toggle{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.88rem;color:#374151}.test-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:#7c3aed}.test-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem}.test-field label{display:block;font-size:.75rem;font-weight:600;color:#6b7280;margin-bottom:.15rem}.test-field input{width:100%;padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;box-sizing:border-box}.sl-chem-section-label{font-size:.8rem;font-weight:700;color:#7c3aed;text-transform:uppercase;letter-spacing:.05em;margin:.75rem 0 .5rem}.sl-temp-toggle{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:#374151;cursor:pointer;padding:.25rem .5rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px}.sl-temp-toggle input[type=checkbox]{accent-color:#7c3aed;width:14px;height:14px;cursor:pointer}.sl-chem-section-label.sl-additional{color:#6b7280;margin-top:1rem}.sl-chem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}.sl-chem-card{border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem;background:#fff;transition:border-color .2s,box-shadow .2s}.sl-chem-card:hover{border-color:#c4b5fd;box-shadow:0 1px 4px #7c3aed14}.sl-chem-card-header{display:flex;align-items:center;justify-content:center;gap:.25rem;margin-bottom:.35rem}.sl-chem-card-icon{font-size:.85rem}.sl-chem-card-name{font-size:.75rem;font-weight:600;color:#374151}.sl-chem-card-unit{font-size:.65rem;color:#9ca3af;font-weight:500}.sl-chem-card-body{display:flex;flex-direction:column;gap:.25rem}.sl-chem-card-body input{width:100%;padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.9rem;font-weight:600;color:#1e1b4b;background:#f9fafb;box-sizing:border-box;transition:border-color .2s;text-align:center}.sl-chem-card-body input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed26;background:#fff}.sl-chem-card-body input::placeholder{font-weight:400;font-size:.75rem;color:#9ca3af;text-align:center}.sl-chem-card-body input[type=number]::-webkit-inner-spin-button,.sl-chem-card-body input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sl-chem-card-body input[type=number]{-moz-appearance:textfield}.sl-chem-card-feedback{display:flex;flex-direction:column;align-items:center;gap:.1rem;margin-top:.25rem;min-height:1.2rem}.sl-field-not-measured{font-size:.65rem;color:#9ca3af;font-style:italic;text-align:center}.sl-field-ideal{font-size:.65rem;color:#6b7280;text-align:center}.sl-field-status{font-size:.65rem;font-weight:600;text-align:center}.sl-field-status.status-green{color:#059669}.sl-field-status.status-yellow{color:#d97706}.sl-field-status.status-red{color:#dc2626}.sl-chem-card-empty{border-color:#e5e7eb;background:#fafafa}.sl-chem-card-green{border-color:#86efac;background:#f0fdf4}.sl-chem-card-green .sl-chem-card-body input{border-color:#86efac;background:#fff}.sl-chem-card-yellow{border-color:#fcd34d;background:#fffbeb}.sl-chem-card-yellow .sl-chem-card-body input{border-color:#fcd34d;background:#fff}.sl-chem-card-red{border-color:#fca5a5;background:#fef2f2}.sl-chem-card-red .sl-chem-card-body input{border-color:#fca5a5;background:#fff}.btn-weather-fetch{background:none;border:1px solid #d1d5db;border-radius:.375rem;padding:.25rem .375rem;font-size:.8rem;cursor:pointer;line-height:1;flex-shrink:0}.btn-weather-fetch:hover{background:#f3f4f6}.btn-weather-fetch:disabled{opacity:.5;cursor:not-allowed}.btn-calculate{padding:.45rem 1rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid #7c3aed;background:#fff;color:#7c3aed;transition:all .2s}.btn-calculate:hover:not(:disabled){background:#f5f3ff}.btn-calculate:disabled{opacity:.5;cursor:not-allowed}.recommendations-preview{margin-top:.75rem;border:1px solid #c4b5fd;border-left:4px solid #7c3aed;border-radius:0 8px 8px 0;padding:.75rem;background:#faf5ff}.recommendations-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.88rem;color:#1f2937}.btn-use-recs{padding:.3rem .6rem;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;border:none;background:#7c3aed;color:#fff;transition:background .2s}.btn-use-recs:hover{background:#6d28d9}.rec-item{display:flex;gap:.5rem;align-items:baseline;padding:.25rem 0;font-size:.82rem;border-bottom:1px solid #ede9fe}.rec-item:last-child{border-bottom:none}.rec-chemical{font-weight:600;color:#1f2937;min-width:120px}.rec-amount{color:#7c3aed;font-weight:600;white-space:nowrap}.rec-reason{color:#6b7280;font-size:.78rem}.treatment-rows{margin-bottom:.5rem}.treatment-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:.5rem;margin-bottom:.35rem;align-items:center}.treatment-row input,.treatment-row select{padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem}.treatment-row button{background:none;border:none;cursor:pointer;color:#ef4444;font-size:1rem;padding:.25rem}.chemical-autocomplete{position:relative}.chemical-autocomplete input{width:100%;box-sizing:border-box}.chemical-dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;background:#fff;border:1px solid #d1d5db;border-top:none;border-radius:0 0 6px 6px;max-height:200px;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.chemical-dropdown-item{padding:.4rem .6rem;font-size:.85rem;color:#374151;cursor:pointer;transition:background .1s}.chemical-dropdown-item:hover{background:#f5f3ff;color:#7c3aed}.add-treatment-btn{background:#f3f4f6;border:1px dashed #d1d5db;border-radius:8px;padding:.4rem .75rem;font-size:.82rem;color:#6b7280;cursor:pointer;width:100%;text-align:center}.add-treatment-btn:hover{background:#e5e7eb}.photo-category{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #f3f4f6}.photo-category:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.photo-category-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.photo-category-label{font-size:.82rem;font-weight:600;color:#374151;text-transform:capitalize}.btn-add-photo{background:none;border:1px solid #d1d5db;border-radius:6px;padding:.2rem .5rem;font-size:.75rem;font-weight:600;color:#7c3aed;cursor:pointer;transition:all .15s}.btn-add-photo:hover{background:#f5f3ff;border-color:#7c3aed}.photo-category-empty{font-size:.78rem;color:#9ca3af;font-style:italic;padding:.25rem 0}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;margin-bottom:.25rem}.photo-item{position:relative;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb;aspect-ratio:4/3}.photo-item img{width:100%;height:100%;object-fit:cover}.photo-item .photo-remove{position:absolute;top:4px;right:4px;background:#00000080;color:#fff;border:none;border-radius:50%;width:20px;height:20px;font-size:.65rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.photo-upload-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;border:2px dashed #d1d5db;border-radius:8px;aspect-ratio:4/3;cursor:pointer;color:#9ca3af;font-size:.78rem;transition:border-color .2s}.photo-upload-btn:hover{border-color:#7c3aed;color:#7c3aed}.photo-upload-btn .upload-icon{font-size:1.5rem}.photo-caption-select{width:100%;padding:.25rem;border:1px solid #d1d5db;border-radius:4px;font-size:.75rem;margin-top:.25rem}.log-notes textarea{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.88rem;resize:vertical;box-sizing:border-box}.log-actions{display:flex;gap:.75rem;margin-top:1rem;flex-wrap:wrap;align-items:center}.log-actions-spacer{flex:1}.log-actions button{padding:.6rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:background .2s}.log-actions .btn-complete{background:#16a34a;color:#fff}.log-actions .btn-complete:hover{background:#15803d}.log-actions .btn-complete:disabled{opacity:.6;cursor:not-allowed}.log-actions .btn-draft{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb}.log-actions .btn-draft:hover{background:#e5e7eb}.log-actions .btn-email-report{background:#fff;color:#7c3aed;border:1px solid #7c3aed}.log-actions .btn-email-report:hover:not(:disabled){background:#f5f3ff}.log-actions .btn-email-report:disabled{opacity:.5;cursor:not-allowed}.log-actions .btn-generate-report{background:#fff;color:#374151;border:1px solid #d1d5db}.log-actions .btn-generate-report:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.log-actions .btn-generate-report:disabled{opacity:.5;cursor:not-allowed}.log-actions .btn-create-invoice{background:#f0fdf4;color:#15803d;border:1px solid #86efac}.log-actions .btn-create-invoice:hover:not(:disabled){background:#dcfce7;border-color:#4ade80}.log-actions .btn-create-invoice:disabled{opacity:.5;cursor:not-allowed}.log-actions .btn-back{background:none;color:#6b7280}.skip-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.email-prompt-modal{background:#fff;border-radius:12px;padding:1.5rem;width:90%;max-width:400px;box-shadow:0 20px 60px #00000026}.email-prompt-modal h3{font-size:1.05rem;margin-bottom:.5rem;color:#1f2937}.email-prompt-modal .modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.email-prompt-modal .btn-primary{padding:.5rem 1rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;background:#7c3aed;color:#fff}.email-prompt-modal .btn-primary:hover:not(:disabled){background:#6d28d9}.email-prompt-modal .btn-primary:disabled{opacity:.5;cursor:not-allowed}.email-prompt-modal .btn-secondary{padding:.5rem 1rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid #d1d5db;background:#fff;color:#374151}.email-prompt-modal .btn-secondary:hover:not(:disabled){background:#f3f4f6}@media (max-width: 600px){.service-log-page{padding:1rem}.service-log-page h1{font-size:1.25rem}.log-header-row{flex-direction:row;align-items:center}.water-body-tabs{gap:0}.water-body-tab{padding:.4rem .65rem;font-size:.75rem}.btn-reschedule{padding:.4rem .75rem;font-size:.8rem}.checklist-item{padding:.45rem .6rem}.checklist-label{font-size:.82rem}.log-section{padding:1rem;border-radius:10px}.customer-info-grid{grid-template-columns:1fr}.service-time-grid{flex-direction:column;gap:.75rem;align-items:stretch}.service-time-field{width:100%}.service-time-input-row{gap:.5rem}.service-time-input-row input[type=time]{flex:1;min-width:0}.btn-time-now{padding:.4rem .75rem}.service-time-duration{text-align:center;padding:.25rem 0}.treatment-row{grid-template-columns:1fr 1fr auto}.chemical-autocomplete{grid-column:1 / -1}.test-fields{grid-template-columns:repeat(2,1fr)}.sl-chem-grid{grid-template-columns:repeat(2,1fr);gap:.375rem}.sl-chem-card{padding:.4rem}.sl-chem-card-icon{font-size:.75rem}.sl-chem-card-name{font-size:.7rem}.sl-chem-card-unit{font-size:.6rem}.sl-chem-card-body input{padding:.3rem .4rem;font-size:.85rem}.sl-chem-card-feedback{min-height:1rem}.sl-chem-section-label{font-size:.7rem;margin:.5rem 0 .35rem}.btn-calculate{width:100%;padding:.5rem 1rem}.recommendations-preview{padding:.6rem}.rec-item{flex-wrap:wrap;gap:.25rem}.rec-chemical{min-width:auto;width:100%}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.5rem}.log-actions{flex-direction:column;gap:.5rem}.log-actions-spacer{display:none}.log-actions button{width:100%;text-align:center}.log-actions .btn-complete{order:-2}.log-actions .btn-draft{order:-1}.email-prompt-modal{width:95%;padding:1.25rem}}@media (max-width: 380px){.sl-chem-grid{grid-template-columns:1fr}}.chem-report-page{max-width:1100px;margin:0 auto}.chem-report-page h1{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:1.5rem}.chem-filters{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.5rem;align-items:flex-end}.chem-filter-group{display:flex;flex-direction:column;gap:.25rem}.chem-filter-group label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.chem-filter-group input,.chem-filter-group select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;color:#1f2937;background:#fff}.chem-filter-group input:focus,.chem-filter-group select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed26}.chem-btn-run{padding:.5rem 1.25rem;background:#7c3aed;color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s}.chem-btn-run:hover:not(:disabled){background:#6d28d9}.chem-btn-run:disabled{opacity:.5;cursor:not-allowed}.chem-summary-stats{display:flex;gap:1rem;margin-bottom:1.5rem}.chem-stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem 1.25rem;flex:1}.chem-stat-label{font-size:.75rem;color:#6b7280;margin-bottom:.25rem}.chem-stat-value{font-size:1.5rem;font-weight:700;color:#1f2937}.chem-section{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;margin-bottom:1.5rem;overflow:hidden}.chem-section-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb}.chem-section-header h2{font-size:1.1rem;font-weight:600;color:#1f2937;margin:0}.chem-table{width:100%;border-collapse:collapse;font-size:.875rem}.chem-table thead th{background:#f9fafb;padding:.625rem 1.25rem;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;font-size:.8125rem}.chem-table tbody td{padding:.625rem 1.25rem;color:#4b5563;border-bottom:1px solid #f3f4f6}.chem-table tbody tr:last-child td{border-bottom:none}.chem-table tbody tr:hover{background:#f9fafb}.chem-chemical-name{font-weight:600;color:#1f2937}.chem-amount{font-weight:600;color:#7c3aed}.chem-toggle-btn{padding:.375rem .75rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:.375rem;font-size:.8125rem;color:#4b5563;cursor:pointer;transition:all .2s}.chem-toggle-btn:hover{background:#e5e7eb}.chem-empty{text-align:center;padding:3rem 1rem;color:#9ca3af}.chem-empty-icon{font-size:2.5rem;margin-bottom:.75rem}.chem-empty h3{font-size:1.1rem;font-weight:600;color:#6b7280;margin:0 0 .5rem}.chem-empty p{font-size:.875rem;margin:0}.chem-loading{text-align:center;padding:3rem;color:#9ca3af;font-size:.875rem}@media (max-width: 768px){.chem-filters{flex-direction:column}.chem-filter-group,.chem-filter-group input,.chem-filter-group select{width:100%}.chem-summary-stats{flex-direction:column}.chem-table{font-size:.8125rem}.chem-table thead th,.chem-table tbody td{padding:.5rem .75rem}}.svc-rpt-page{padding:1.5rem;max-width:1200px;margin:0 auto}.svc-rpt-page h1{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.25rem}.svc-rpt-page .page-subtitle{color:#6b7280;font-size:.9rem;margin-bottom:1.25rem}.svc-rpt-subtitle{font-size:.88rem;color:#6b7280;margin-bottom:1rem}.report-tabs{display:flex;gap:0;border-bottom:2px solid #e5e7eb;margin-bottom:1.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.report-tab{padding:.65rem 1.1rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:.85rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s;white-space:nowrap}.report-tab:hover{color:#1f2937}.report-tab.active{color:#7c3aed;border-bottom-color:#7c3aed;font-weight:600}.svc-rpt-filters{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.5rem;align-items:flex-end}.svc-rpt-filter-group{display:flex;flex-direction:column;gap:.2rem}.svc-rpt-filter-group label{font-size:.72rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.svc-rpt-filter-group input,.svc-rpt-filter-group select{padding:.45rem .6rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;min-width:130px}.svc-rpt-run-btn{padding:.5rem 1.25rem;border:none;border-radius:8px;background:#7c3aed;color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.svc-rpt-run-btn:hover:not(:disabled){background:#6d28d9}.svc-rpt-run-btn:disabled{opacity:.5;cursor:not-allowed}.svc-rpt-stats{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.svc-rpt-stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem 1.25rem;flex:1;min-width:120px}.svc-rpt-stat-card.accent{border-left:4px solid #7c3aed}.svc-rpt-stat-value{font-size:1.5rem;font-weight:700;color:#1f2937;line-height:1.2}.svc-rpt-stat-label{font-size:.75rem;font-weight:500;color:#9ca3af;margin-top:.15rem;text-transform:uppercase;letter-spacing:.02em}.svc-rpt-chart-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1.25rem;margin-bottom:1.25rem}.svc-rpt-chart-card h3{font-size:.95rem;font-weight:600;color:#1f2937;margin-bottom:.75rem}.svc-rpt-row{display:flex;gap:1.25rem;margin-bottom:1.25rem}.svc-rpt-half{flex:1;min-width:0}.svc-rpt-table{width:100%;border-collapse:collapse;font-size:.82rem}.svc-rpt-table th{text-align:left;padding:.5rem .6rem;border-bottom:2px solid #e5e7eb;font-weight:600;color:#374151;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.svc-rpt-table td{padding:.45rem .6rem;border-bottom:1px solid #f3f4f6;color:#374151}.svc-rpt-table tbody tr:hover{background:#f9fafb}.svc-rpt-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.svc-rpt-nowrap{white-space:nowrap}.svc-rpt-small{font-size:.75rem;color:#6b7280;max-width:200px}.svc-rpt-badge{display:inline-block;padding:.1rem .45rem;border-radius:10px;font-size:.68rem;font-weight:600;text-transform:capitalize}.svc-rpt-badge.completed{background:#dcfce7;color:#15803d}.svc-rpt-badge.scheduled{background:#f3e8ff;color:#7c3aed}.svc-rpt-badge.in_progress{background:#dbeafe;color:#2563eb}.svc-rpt-badge.skipped{background:#fef3c7;color:#92400e}.svc-rpt-badge.cancelled{background:#fee2e2;color:#dc2626}.svc-rpt-badge.rescheduled{background:#fff7ed;color:#c2410c}.svc-rpt-water-test-row td{background:#faf5ff;padding:.25rem .6rem;border-bottom:1px solid #ede9fe}.svc-rpt-water-test-inline{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.75rem;color:#6b7280}.svc-rpt-wt-label{font-weight:600;color:#7c3aed}.svc-rpt-customer-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;padding:1rem 1.25rem;background:#fff;border:1px solid #e5e7eb;border-left:4px solid #7c3aed;border-radius:10px}.svc-rpt-customer-header h3{font-size:1.1rem;font-weight:700;color:#1f2937;margin:0}.svc-rpt-customer-meta{display:flex;gap:.75rem;font-size:.78rem;color:#6b7280;flex-wrap:wrap}.svc-rpt-customer-meta span{background:#f3f4f6;padding:.2rem .5rem;border-radius:6px;text-transform:capitalize}.svc-rpt-pivot th.svc-rpt-pivot-head{font-size:.7rem;max-width:100px;word-break:break-word;white-space:normal}.svc-rpt-pivot-cell{font-size:.75rem;text-align:center;color:#374151;white-space:nowrap}.svc-rpt-tech-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-bottom:1.25rem}.svc-rpt-tech-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1.25rem}.svc-rpt-tech-card h4{font-size:1rem;font-weight:700;color:#1f2937;margin-bottom:.75rem}.svc-rpt-tech-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:.75rem}.svc-rpt-tech-metric{text-align:center}.svc-rpt-tech-metric-value{display:block;font-size:1.1rem;font-weight:700;color:#7c3aed}.svc-rpt-tech-metric-label{display:block;font-size:.65rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.03em}.svc-rpt-tech-chems{padding-top:.5rem;border-top:1px solid #f3f4f6}.svc-rpt-tech-chems-label{font-size:.72rem;font-weight:600;color:#6b7280;margin-bottom:.35rem}.svc-rpt-tech-chem-tag{display:inline-block;font-size:.72rem;color:#374151;background:#f3f4f6;padding:.15rem .45rem;border-radius:4px;margin:.15rem .25rem .15rem 0}.svc-rpt-empty{text-align:center;padding:3rem 1rem;color:#9ca3af;font-size:.9rem}.svc-rpt-loading{text-align:center;padding:2rem;color:#7c3aed;font-weight:500}@media (max-width: 768px){.svc-rpt-page{padding:1rem}.svc-rpt-page h1{font-size:1.25rem}.report-tabs{gap:0;scrollbar-width:none}.report-tabs::-webkit-scrollbar{display:none}.report-tab{padding:.5rem .85rem;font-size:.78rem}.svc-rpt-filters{flex-direction:column;gap:.5rem}.svc-rpt-filter-group{width:100%}.svc-rpt-filter-group input,.svc-rpt-filter-group select{width:100%;min-width:0}.svc-rpt-run-btn{width:100%;padding:.6rem 1rem}.svc-rpt-stats{flex-direction:column;gap:.5rem}.svc-rpt-stat-card{min-width:0}.svc-rpt-row{flex-direction:column}.svc-rpt-half{width:100%}.svc-rpt-chart-card{padding:1rem}.svc-rpt-customer-header{flex-direction:column}.svc-rpt-tech-cards{grid-template-columns:1fr}.svc-rpt-tech-metrics{grid-template-columns:repeat(2,1fr);gap:.75rem}.svc-rpt-table-scroll{margin:0 -1rem;padding:0 1rem}}.inv-beta-badge{font-size:.55rem;font-weight:700;color:#7c3aed;background:#ede9fe;padding:.15rem .5rem;border-radius:999px;vertical-align:middle;margin-left:.35rem;letter-spacing:.03em}.invoices-page{padding:24px;max-width:1200px;margin:0 auto}.invoices-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.invoices-status-tabs{display:flex;align-items:center;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:3px 0}.invoices-status-tabs::-webkit-scrollbar{display:none}.inv-tab{padding:7px 16px;background:#f3f4f6;color:#4b5563;border:none;outline:none;border-radius:9999px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s;line-height:1.3}.inv-tab:hover{background:#e5e7eb;color:#1f2937}.inv-tab:focus,.inv-tab:focus-visible{outline:none;box-shadow:none}.inv-tab-active{background:#7c3aed;color:#fff}.inv-tab-active:hover{background:#6d28d9;color:#fff}.invoices-search{position:relative;min-width:240px}.inv-search-input{width:100%;padding:9px 14px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;color:#1f2937;background:#fff;transition:border-color .2s,box-shadow .2s}.inv-search-input::placeholder{color:#9ca3af}.inv-search-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.invoices-count{font-size:13px;color:#6b7280;margin-bottom:12px}.invoices-table-wrap{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;overflow:hidden}.invoices-table{width:100%;border-collapse:collapse}.invoices-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #e5e7eb;background:#f9fafb}.invoices-table td{padding:12px 16px;font-size:14px;color:#1f2937;border-bottom:1px solid #f3f4f6;vertical-align:middle}.invoices-table-row{cursor:pointer;transition:background .15s}.invoices-table-row:hover{background:#f9fafb}.invoices-table-row:last-child td{border-bottom:none}.invoices-table .text-right{text-align:right}.inv-number{font-weight:600;color:#7c3aed}.inv-amount{font-weight:600;font-variant-numeric:tabular-nums}.inv-status-badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;border-radius:9999px;white-space:nowrap}.inv-status-draft{background:#f3f4f6;color:#6b7280}.inv-status-sent{background:#dbeafe;color:#1d4ed8}.inv-status-overdue{background:#fee2e2;color:#b91c1c}.inv-status-paid{background:#d1fae5;color:#065f46}.inv-status-partial{background:#fef3c7;color:#b45309}.inv-status-void{background:#f3f4f6;color:#9ca3af}.inv-status-viewed{background:#e0e7ff;color:#4338ca}.inv-reminder-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#d97706;color:#fff;font-size:10px;font-weight:700;margin-left:6px;vertical-align:middle}.inv-late-fee-indicator{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:9px;background:#fef3c7;color:#b45309;font-size:10px;font-weight:700;margin-left:4px;vertical-align:middle}.inv-card-status-group{display:flex;align-items:center;gap:4px}.invoices-cards{display:none}.inv-card{background:#fff;border-radius:10px;box-shadow:0 1px 3px #00000014;padding:16px;margin-bottom:12px;cursor:pointer;transition:box-shadow .15s}.inv-card:hover{box-shadow:0 2px 8px #0000001f}.inv-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.inv-card-customer{font-weight:600;color:#1f2937;font-size:15px;margin-bottom:6px}.inv-card-dates{display:flex;align-items:center;gap:16px;font-size:13px;color:#6b7280}.inv-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid #f3f4f6}.inv-card-total-label,.inv-card-balance-label{display:block;font-size:11px;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.inv-card-total-value{font-size:18px;font-weight:700;color:#1f2937;font-variant-numeric:tabular-nums}.inv-card-balance-value{font-size:16px;font-weight:600;color:#b91c1c;font-variant-numeric:tabular-nums}.invoices-pagination{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:24px;padding:16px 0}.inv-page-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;color:#4b5563;cursor:pointer;transition:all .2s}.inv-page-btn:hover:not(:disabled){background:#f5f3ff;border-color:#7c3aed;color:#7c3aed}.inv-page-active{background:#7c3aed;border-color:#7c3aed;color:#fff}.inv-page-active:hover{background:#6d28d9;color:#fff}.inv-page-btn:disabled{opacity:.4;cursor:not-allowed}.inv-page-ellipsis{display:inline-flex;align-items:center;justify-content:center;width:28px;height:36px;font-size:14px;color:#9ca3af}.inv-create-modal{max-width:720px;width:100%;overflow:hidden;display:flex;flex-direction:column}.inv-modal-body{padding:24px;overflow-y:auto;max-height:calc(90vh - 140px)}.inv-field-loading{padding:12px 0;font-size:14px;color:#9ca3af}.inv-line-items-section{margin-bottom:20px}.inv-line-items-section>label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:10px}.inv-line-items-table-wrap{overflow-x:auto}.inv-line-items-table{width:100%;border-collapse:collapse;margin-bottom:12px}.inv-line-items-table th{padding:8px 10px;text-align:left;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e5e7eb}.inv-line-items-table td{padding:8px 10px;vertical-align:middle}.inv-line-items-table input{width:100%;padding:7px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#1f2937;background:#fff;transition:border-color .2s,box-shadow .2s}.inv-line-items-table input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.inv-li-desc{width:40%}.inv-li-qty{width:12%;min-width:70px}.inv-li-price{width:20%;min-width:110px}.inv-li-total{width:18%;min-width:90px;font-weight:600;font-variant-numeric:tabular-nums;color:#1f2937;white-space:nowrap}.inv-li-actions{width:10%;min-width:40px;text-align:center}.inv-dollar-input{position:relative;display:flex;align-items:center}.inv-dollar-sign{position:absolute;left:10px;font-size:13px;color:#9ca3af;pointer-events:none;z-index:1}.inv-discount-input{display:flex;align-items:stretch}.inv-discount-input .inv-discount-type{width:auto;padding:9px 24px 9px 12px;border:1px solid #e5e7eb;border-right:none;border-radius:8px 0 0 8px;font-size:14px;font-weight:600;color:#6b7280;background:#f9fafb;cursor:pointer;flex-shrink:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%236b7280' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:8px}.inv-discount-input .inv-discount-type:focus{border-color:#7c3aed;outline:none;z-index:1}.inv-discount-input input{width:auto;flex:1;min-width:0;border-radius:0 8px 8px 0}.inv-dollar-input input{padding-left:22px!important}.inv-remove-line-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;border-radius:6px;color:#9ca3af;font-size:14px;cursor:pointer;transition:all .2s}.inv-remove-line-btn:hover:not(:disabled){background:#fee2e2;color:#dc2626}.inv-remove-line-btn:disabled{opacity:.3;cursor:not-allowed}.inv-line-items-mobile{display:none}.inv-li-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:12px;margin-bottom:10px}.inv-li-card-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.inv-li-card-desc{flex:1;padding:8px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;color:#1f2937}.inv-li-card-desc:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.inv-li-card-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.inv-li-card-field label{display:block;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.inv-li-card-field input{width:100%;padding:7px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#1f2937}.inv-li-card-field input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.inv-li-card-amount span{font-size:15px;font-weight:600;color:#1f2937;font-variant-numeric:tabular-nums}.inv-add-line-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:none;border:2px dashed #d1d5db;border-radius:8px;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s}.inv-add-line-btn:hover{border-color:#7c3aed;color:#7c3aed;background:#f5f3ff}.inv-options-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:20px}.inv-option-field label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}.inv-option-field input,.inv-option-field select{width:100%;padding:9px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;color:#1f2937;background:#fff;transition:border-color .2s,box-shadow .2s}.inv-option-field input:focus,.inv-option-field select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.inv-totals-summary{display:flex;flex-direction:column;align-items:flex-end;gap:8px;margin-bottom:20px;padding:16px 0;border-top:1px solid #e5e7eb}.inv-totals-row{display:flex;align-items:center;gap:24px;font-size:14px}.inv-totals-row span:first-child{color:#6b7280;min-width:90px;text-align:right}.inv-totals-row span:last-child{font-weight:600;color:#1f2937;min-width:100px;text-align:right;font-variant-numeric:tabular-nums}.inv-totals-discount span:last-child{color:#059669}.inv-totals-total{font-size:16px;padding-top:8px;border-top:2px solid #7c3aed}.inv-totals-total span:last-child{color:#7c3aed;font-weight:700}.inv-notes-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.inv-modal-actions{gap:10px;padding:16px 24px;border-top:1px solid #e5e7eb;margin-top:0;flex-shrink:0}.inv-btn-draft{border-color:#c4b5fd;color:#7c3aed;background:#f5f3ff}.inv-btn-draft:hover{background:#ede9fe;border-color:#7c3aed}@media (max-width: 768px){.invoices-page{padding:16px}.invoices-toolbar{flex-direction:column;align-items:stretch}.invoices-search{min-width:unset;width:100%;order:-1}.invoices-status-tabs{gap:4px}.inv-tab{padding:6px 12px;font-size:12px}.invoices-table-wrap{display:none}.invoices-cards{display:block}.inv-card-dates{flex-direction:column;gap:2px}.inv-create-modal{max-width:100%;max-height:95vh;border-radius:12px 12px 0 0;margin-top:auto}.inv-line-items-table-wrap{display:none}.inv-line-items-mobile{display:block}.inv-options-row{grid-template-columns:1fr;gap:12px}.inv-notes-row{grid-template-columns:1fr}.inv-totals-summary{align-items:stretch}.inv-totals-row{justify-content:space-between}.inv-modal-actions{flex-direction:column-reverse}.inv-modal-actions button,.inv-modal-actions .btn-primary,.inv-modal-actions .btn-secondary{width:100%;text-align:center}.invoices-pagination{flex-wrap:wrap;gap:6px}}@media (max-width: 480px){.inv-li-card-fields{grid-template-columns:1fr 1fr;gap:8px}.inv-li-card-amount{grid-column:1 / -1;text-align:right}}.inv-line-actions-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inv-import-chem-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;color:#7c3aed;background:#f5f3ff;border:1px dashed #c4b5fd;border-radius:8px;cursor:pointer;transition:all .15s}.inv-import-chem-btn:hover{background:#ede9fe;border-color:#7c3aed}.inv-import-panel{margin-top:14px;padding:16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px}.inv-import-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.inv-import-header h4{font-size:14px;font-weight:600;color:#1f2937;margin:0}.inv-import-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:#9ca3af;font-size:16px;cursor:pointer;border-radius:6px;transition:all .15s}.inv-import-close:hover{color:#1f2937;background:#e5e7eb}.inv-import-dates{display:flex;align-items:flex-end;gap:10px;margin-bottom:14px;flex-wrap:wrap}.inv-import-date-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:120px}.inv-import-date-field label{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.inv-import-date-field input{padding:7px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#1f2937;background:#fff}.inv-import-date-field input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.inv-import-fetch-btn{padding:7px 18px;font-size:13px;font-weight:600;color:#fff;background:#7c3aed;border:none;border-radius:6px;cursor:pointer;transition:background .15s;white-space:nowrap}.inv-import-fetch-btn:hover{background:#6d28d9}.inv-import-fetch-btn:disabled{opacity:.5;cursor:not-allowed}.inv-import-list{display:flex;flex-direction:column;gap:2px;margin-bottom:12px;max-height:240px;overflow-y:auto}.inv-import-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .15s}.inv-import-item:hover{border-color:#c4b5fd;background:#faf9fe}.inv-import-item input[type=checkbox]{width:16px;height:16px;accent-color:#7c3aed;flex-shrink:0}.inv-import-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.inv-import-item-name{font-size:13px;font-weight:600;color:#1f2937}.inv-import-item-detail{font-size:12px;color:#6b7280}.inv-import-item-price{font-size:13px;font-weight:500;color:#059669;white-space:nowrap;flex-shrink:0}.inv-import-no-price{color:#d97706;font-style:italic;font-size:12px}.inv-import-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.inv-import-add-btn{padding:8px 20px;font-size:13px}.inv-import-hint{font-size:12px;color:#9ca3af;font-style:italic}.inv-import-empty{font-size:13px;color:#9ca3af;text-align:center;padding:16px;margin:0}@media (max-width: 640px){.inv-line-actions-row{flex-direction:column;align-items:stretch}.inv-import-chem-btn{justify-content:center}.inv-import-dates{flex-direction:column}.inv-import-date-field{min-width:0}.inv-import-item{flex-wrap:wrap}.inv-import-item-price{width:100%;padding-left:26px;font-size:12px}.inv-import-actions{flex-direction:column;align-items:stretch}.inv-import-add-btn{text-align:center}}.invd-page{padding:24px;max-width:1000px;margin:0 auto}.invd-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:16px;color:#6b7280}.invd-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:12px;text-align:center;padding:40px 20px}.invd-error-icon{margin-bottom:8px}.invd-error h2{font-size:20px;font-weight:600;color:#1f2937;margin:0}.invd-error p{font-size:14px;color:#6b7280;margin:0}.invd-error-actions{display:flex;gap:12px;margin-top:16px}.invd-back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:#7c3aed;text-decoration:none;cursor:pointer;margin-bottom:20px;transition:color .2s;background:none;border:none;padding:0}.invd-back:hover{color:#6d28d9}.invd-back-arrow{font-size:18px;line-height:1}.invd-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:24px}.invd-header-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.invd-header h1{font-size:24px;font-weight:700;color:#1f2937;margin:0}.invd-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.invd-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none;white-space:nowrap}.invd-btn-primary{background:#7c3aed;color:#fff}.invd-btn-primary:hover{background:#6d28d9}.invd-btn-outline{background:#fff;color:#4b5563;border:1px solid #e5e7eb}.invd-btn-outline:hover{background:#f3f4f6;border-color:#d1d5db}.invd-btn-danger{background:#fff;color:#dc2626;border:1px solid #fecaca}.invd-btn-danger:hover{background:#fef2f2;border-color:#f87171}.invd-btn-success{background:#059669;color:#fff}.invd-btn-success:hover{background:#047857}.invd-btn:disabled{opacity:.5;cursor:not-allowed}.invd-btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:invd-spin .6s linear infinite}.invd-btn-outline .invd-btn-spinner,.invd-btn-danger .invd-btn-spinner{border-color:#6b72804d;border-top-color:#6b7280}@keyframes invd-spin{to{transform:rotate(360deg)}}.invd-status-badge{display:inline-flex;align-items:center;padding:4px 12px;font-size:12px;font-weight:600;border-radius:9999px;white-space:nowrap}.invd-status-badge.draft{background:#f3f4f6;color:#6b7280}.invd-status-badge.sent{background:#dbeafe;color:#1d4ed8}.invd-status-badge.partial{background:#fef3c7;color:#b45309}.invd-status-badge.paid{background:#d1fae5;color:#065f46}.invd-status-badge.overdue{background:#fee2e2;color:#b91c1c}.invd-status-badge.cancelled{background:#f3f4f6;color:#9ca3af}.invd-overdue-tag{display:inline-block;padding:2px 8px;border-radius:4px;background:#fee2e2;color:#ef4444;font-size:11px;font-weight:600;margin-left:8px}.invd-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.invd-info-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;padding:20px}.invd-info-card h3{font-size:14px;font-weight:700;color:#1f2937;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.invd-info-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px}.invd-info-row:last-child{margin-bottom:0}.invd-info-label{font-size:12px;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.03em;min-width:100px;flex-shrink:0}.invd-info-value{font-size:14px;color:#1f2937;font-weight:500;word-break:break-word}.invd-link{color:#7c3aed;text-decoration:none}.invd-link:hover{text-decoration:underline;color:#6d28d9}.invd-items-section{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;padding:20px;margin-bottom:24px}.invd-items-section h3{font-size:14px;font-weight:700;color:#1f2937;margin:0 0 16px}.invd-items-table{width:100%;border-collapse:collapse}.invd-items-table th{padding:10px 14px;text-align:left;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #e5e7eb;background:#f9fafb}.invd-items-table th:last-child{text-align:right}.invd-items-table td{padding:12px 14px;font-size:14px;color:#1f2937;border-bottom:1px solid #f3f4f6;vertical-align:middle}.invd-items-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.invd-items-table tr:last-child td{border-bottom:none}.invd-item-name{font-weight:600}.invd-item-desc{font-size:13px;color:#6b7280;margin-top:2px}.invd-items-mobile{display:none}.invd-item-card{padding:12px 0;border-bottom:1px solid #f3f4f6}.invd-item-card:last-child{border-bottom:none}.invd-item-card-desc{font-size:14px;font-weight:600;color:#1f2937;margin-bottom:4px}.invd-item-card-details{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#6b7280}.invd-item-card-total{font-weight:600;color:#1f2937;font-variant-numeric:tabular-nums}.invd-totals{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding:16px 14px 0}.invd-total-row{display:flex;align-items:center;gap:32px;font-size:14px}.invd-total-label{color:#6b7280;min-width:120px;text-align:right}.invd-total-value{font-weight:600;color:#1f2937;min-width:100px;text-align:right;font-variant-numeric:tabular-nums}.invd-total-discount .invd-total-value{color:#10b981}.invd-total-final{font-size:18px;padding-top:12px;margin-top:4px;border-top:2px solid #7c3aed}.invd-total-final .invd-total-label{font-weight:700;color:#1f2937}.invd-total-final .invd-total-value{font-weight:700;color:#7c3aed;font-size:18px}.invd-total-paid{padding-top:8px;margin-top:4px;border-top:1px solid #f3f4f6}.invd-paid-value{color:#059669!important}.invd-total-balance{padding-top:8px;margin-top:4px;border-top:2px solid #e5e7eb}.invd-total-balance .invd-total-label{font-weight:700;color:#7c3aed}.invd-total-balance .invd-total-value{font-weight:700;color:#7c3aed;font-size:16px}.invd-payments{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;padding:20px;margin-bottom:24px}.invd-payments h3{font-size:14px;font-weight:700;color:#1f2937;margin:0 0 16px}.invd-payment-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f3f4f6}.invd-payment-item:last-child{border-bottom:none}.invd-payment-info{display:flex;flex-direction:column;gap:2px}.invd-payment-method{font-size:14px;font-weight:600;color:#1f2937}.invd-payment-ref{font-weight:400;color:#6b7280;font-size:13px}.invd-payment-date{font-size:13px;color:#6b7280;display:flex;align-items:center;gap:8px}.invd-payment-amount{font-size:16px;font-weight:700;color:#059669;font-variant-numeric:tabular-nums}.invd-payment-status-badge{display:inline-block;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:600;text-transform:capitalize}.invd-ps-completed,.invd-ps-success{background:#d1fae5;color:#065f46}.invd-ps-pending{background:#fef3c7;color:#b45309}.invd-ps-failed{background:#fee2e2;color:#b91c1c}.invd-ps-refunded{background:#f3f4f6;color:#6b7280}.invd-payments-empty{text-align:center;padding:24px;color:#9ca3af;font-size:14px}.invd-notes{background:#f5f3ff;border-radius:12px;padding:20px;margin-bottom:24px}.invd-notes-customer{background:#f0fdf4}.invd-notes h3{font-size:14px;font-weight:700;color:#1f2937;margin:0 0 10px}.invd-notes p{font-size:14px;color:#4b5563;line-height:1.6;margin:0;white-space:pre-wrap}.invd-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.invd-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;width:100%;max-width:480px;overflow:hidden}.invd-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e5e7eb}.invd-modal-header h2{font-size:18px;font-weight:700;color:#1f2937;margin:0}.invd-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:6px;font-size:20px;color:#6b7280;cursor:pointer;transition:background .2s}.invd-modal-close:hover{background:#f3f4f6;color:#1f2937}.invd-modal-body{padding:24px}.invd-payment-summary{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 16px;background:#f9fafb;border-radius:8px;margin-bottom:20px;font-size:14px;color:#4b5563}.invd-payment-summary-balance{color:#7c3aed}.invd-payment-summary-balance strong{font-weight:700}.invd-form-group{margin-bottom:16px}.invd-form-group label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}.invd-form-group input,.invd-form-group select,.invd-form-group textarea{width:100%;padding:9px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;color:#1f2937;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.invd-form-group input:focus,.invd-form-group select:focus,.invd-form-group textarea:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.invd-form-group textarea{resize:vertical}.invd-dollar-input{position:relative;display:flex;align-items:center}.invd-dollar-sign{position:absolute;left:8px;color:#6b7280;font-size:13px;pointer-events:none;z-index:1}.invd-dollar-input input{padding-left:22px!important}.invd-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e5e7eb;background:#f9fafb}@media (max-width: 768px){.invd-page{padding:16px}.invd-header{flex-direction:column;align-items:flex-start}.invd-header h1{font-size:20px}.invd-actions{width:100%;flex-wrap:wrap}.invd-actions .invd-btn{flex:1;justify-content:center;min-width:0}.invd-info-grid{grid-template-columns:1fr}.invd-items-table{display:none}.invd-items-mobile{display:block}.invd-totals{align-items:stretch}.invd-total-row{justify-content:space-between;gap:16px}.invd-total-label{min-width:auto;text-align:left}.invd-payment-item{flex-direction:column;align-items:flex-start;gap:8px}.invd-modal{max-width:100%;border-radius:12px 12px 0 0;margin-top:auto}.invd-modal-overlay{align-items:flex-end;padding:0}.invd-modal-actions{flex-direction:column-reverse}.invd-modal-actions .invd-btn{width:100%;text-align:center;justify-content:center}.invd-payment-summary{flex-direction:column;align-items:flex-start}.invd-info-row{flex-direction:column;gap:2px}}.invd-modal-wide{max-width:700px}.invd-edit-body{max-height:70vh;overflow-y:auto}.invd-edit-section-label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:10px}.invd-edit-items-table-wrap{overflow-x:auto;margin-bottom:8px}.invd-edit-items-table{width:100%;border-collapse:collapse}.invd-edit-items-table th{padding:8px 6px;text-align:left;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid #e5e7eb;background:#f9fafb}.invd-edit-items-table td{padding:6px;vertical-align:middle}.invd-edit-items-table input{width:100%;padding:8px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#1f2937;background:#fff;transition:border-color .2s;box-sizing:border-box}.invd-edit-items-table input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.invd-eli-desc{min-width:200px}.invd-eli-qty{width:70px}.invd-eli-price{width:120px}.invd-eli-total{width:100px;text-align:right;font-size:13px;font-weight:600;color:#1f2937;font-variant-numeric:tabular-nums;white-space:nowrap;padding-right:10px!important}.invd-eli-actions{width:36px}.invd-edit-remove-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:#9ca3af;font-size:14px;border-radius:6px;cursor:pointer;transition:all .2s}.invd-edit-remove-btn:hover:not(:disabled){background:#fee2e2;color:#dc2626}.invd-edit-remove-btn:disabled{opacity:.3;cursor:not-allowed}.invd-edit-items-mobile{display:none}.invd-eli-card{padding:12px;background:#f9fafb;border-radius:8px;margin-bottom:8px}.invd-eli-card-row{display:flex;gap:8px;margin-bottom:8px}.invd-eli-card-desc{flex:1;padding:8px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#1f2937}.invd-eli-card-desc:focus{outline:none;border-color:#7c3aed}.invd-eli-card-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.invd-eli-card-field label{display:block;font-size:11px;font-weight:600;color:#6b7280;margin-bottom:4px}.invd-eli-card-field input{width:100%;padding:7px 8px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#1f2937;box-sizing:border-box}.invd-eli-card-field input:focus{outline:none;border-color:#7c3aed}.invd-eli-card-amount{display:flex;flex-direction:column;justify-content:flex-end}.invd-eli-card-amount span{font-size:13px;font-weight:600;color:#1f2937;padding:7px 0}.invd-edit-add-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 16px;font-size:13px;font-weight:600;color:#7c3aed;background:#f5f3ff;border:1px dashed #c4b5fd;border-radius:8px;cursor:pointer;transition:all .2s;margin-bottom:16px}.invd-edit-add-btn:hover:not(:disabled){background:#ede9fe;border-color:#7c3aed}.invd-edit-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:16px}.invd-edit-discount-row{display:flex;gap:6px}.invd-edit-discount-row .invd-edit-discount-type{width:54px;flex-shrink:0;padding:8px 4px;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;color:#1f2937;cursor:pointer}.invd-edit-discount-row input[type=number]{flex:1;min-width:0;width:auto}.invd-edit-totals{display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding:12px 0;margin-bottom:16px;border-top:1px solid #e5e7eb}.invd-edit-totals-row{display:flex;align-items:center;gap:24px;font-size:14px}.invd-edit-totals-row span:first-child{color:#6b7280;min-width:100px;text-align:right}.invd-edit-totals-row span:last-child{font-weight:600;color:#1f2937;min-width:90px;text-align:right;font-variant-numeric:tabular-nums}.invd-edit-totals-discount span:last-child{color:#10b981}.invd-edit-totals-total{padding-top:8px;margin-top:4px;border-top:2px solid #7c3aed}.invd-edit-totals-total span:first-child{font-weight:700;color:#1f2937}.invd-edit-totals-total span:last-child{font-weight:700;color:#7c3aed;font-size:16px}.invd-edit-notes{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 480px){.invd-page{padding:12px}.invd-header-left{flex-direction:column;align-items:flex-start;gap:8px}.invd-actions{flex-direction:column}.invd-actions .invd-btn{width:100%}}@media (max-width: 768px){.invd-modal-wide{max-width:100%;border-radius:12px 12px 0 0;margin-top:auto}.invd-edit-body{max-height:65vh}.invd-edit-items-table-wrap{display:none}.invd-edit-items-mobile{display:block;margin-bottom:8px}.invd-edit-options,.invd-edit-notes{grid-template-columns:1fr;gap:12px}.invd-edit-totals{align-items:stretch}.invd-edit-totals-row{justify-content:space-between;gap:16px}.invd-edit-totals-row span:first-child{min-width:auto;text-align:left}}.invd-status-badge.viewed{background:#e0e7ff;color:#4338ca}.invd-btn-warning{background:#fff;color:#d97706;border:1px solid #fcd34d}.invd-btn-warning:hover{background:#fffbeb;border-color:#f59e0b}.invd-btn-warning .invd-btn-spinner{border-color:#d977064d;border-top-color:#d97706}.invd-viewed-badge{display:inline-block;padding:2px 8px;border-radius:4px;background:#e0e7ff;color:#4338ca;font-size:11px;font-weight:600;margin-right:8px}.invd-late-fee-badge{display:inline-block;padding:2px 8px;border-radius:4px;background:#fef3c7;color:#b45309;font-size:11px;font-weight:600}.invd-payment-right{display:flex;align-items:center;gap:12px}.invd-btn-refund{padding:4px 10px;border:1px solid #e5e7eb;background:#fff;border-radius:6px;font-size:12px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .15s ease}.invd-btn-refund:hover{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.invd-ps-partial-refund{background:#fef3c7;color:#b45309}.invd-refund-stripe-note{display:flex;align-items:flex-start;gap:8px;padding:12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1e40af;font-size:13px;line-height:1.5;margin-bottom:16px}.invd-refund-stripe-note svg{flex-shrink:0;margin-top:1px}.invd-collection-activity{background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;padding:20px;margin-bottom:24px}.invd-collection-activity h3{font-size:16px;font-weight:600;color:#92400e;margin:0 0 16px;display:flex;align-items:center;gap:8px}.invd-collection-activity h3 svg{color:#d97706}.invd-collection-info{display:flex;gap:24px;flex-wrap:wrap}.invd-collection-stat{display:flex;flex-direction:column;gap:4px}.invd-collection-label{font-size:12px;color:#92400e;font-weight:500}.invd-collection-value{font-size:14px;font-weight:600;color:#78350f}.invd-reminder-level-1{color:#d97706}.invd-reminder-level-2{color:#ea580c}.invd-reminder-level-3{color:#dc2626}.invd-reminder-level-4{color:#b91c1c}@media (max-width: 640px){.invd-collection-info{flex-direction:column;gap:12px}.invd-payment-right{flex-direction:column;align-items:flex-end;gap:6px}.invd-btn-refund{font-size:11px;padding:3px 8px}.invd-refund-stripe-note{font-size:12px}}.bset-beta-badge{font-size:.55rem;font-weight:700;color:#7c3aed;background:#ede9fe;padding:.15rem .5rem;border-radius:999px;vertical-align:middle;margin-left:.35rem;letter-spacing:.03em}.bset-page{padding:24px;max-width:900px;margin:0 auto}.bset-header{margin-bottom:28px}.bset-header h1,.bset-page-title{font-size:24px;font-weight:700;color:#1f2937;margin:0 0 4px}.bset-header p,.bset-page-subtitle{font-size:14px;color:#6b7280;margin:0}.bset-section{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;padding:24px;margin-bottom:24px}.bset-section-title{font-size:16px;font-weight:700;color:#1f2937;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.bset-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:32px 16px;color:#6b7280;font-size:14px}.bset-spinner{width:20px;height:20px;border:2px solid #e5e7eb;border-top-color:#7c3aed;border-radius:50%;animation:bset-spin .6s linear infinite}@keyframes bset-spin{to{transform:rotate(360deg)}}.bset-empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 16px;gap:12px}.bset-empty-state p{font-size:14px;color:#9ca3af;margin:0;max-width:360px}.bset-connect-card{display:flex;flex-direction:column;gap:16px;padding:24px;border-radius:10px;border:1px solid #ede9fe}.bset-connect-start{background:#f5f3ff;border-color:#ede9fe;text-align:center;align-items:center}.bset-connect-pending{background:#fffbeb;border-color:#fde68a}.bset-connect-active{background:#f0fdf4;border-color:#a7f3d0}.bset-connect-restricted{background:#fef2f2;border-color:#fecaca}.bset-connect-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.bset-connect-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.bset-connect-title{font-size:16px;font-weight:700;color:#1f2937;margin:0}.bset-connect-desc{font-size:14px;color:#6b7280;margin:0;line-height:1.5}.bset-connect-account-name{font-size:14px;font-weight:500;color:#4b5563;margin:0}.bset-connect-status-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 12px;border-radius:9999px}.bset-badge-active{background:#d1fae5;color:#065f46}.bset-balance-row{display:flex;align-items:center;gap:0;background:#fff;border-radius:8px;border:1px solid #e5e7eb;overflow:hidden}.bset-balance-item{flex:1;padding:14px 16px;text-align:center}.bset-balance-divider{width:1px;height:44px;background:#e5e7eb;flex-shrink:0}.bset-balance-label{display:block;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.bset-balance-value{font-size:20px;font-weight:700;color:#1f2937;font-variant-numeric:tabular-nums}.bset-balance-available{color:#059669}.bset-balance-pending{color:#d97706}.bset-platform-fee{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.bset-fee-label{font-size:13px;font-weight:600;color:#6b7280}.bset-fee-value{font-size:15px;font-weight:700;color:#7c3aed}.bset-restricted-banner{font-size:14px;line-height:1.5;color:#991b1b;padding:12px 16px;background:#fee2e2;border-radius:8px}.bset-restricted-banner strong{font-weight:700}.bset-requirements-list{font-size:13px;color:#4b5563}.bset-requirements-label{font-weight:600;margin:0 0 6px}.bset-requirements-list ul{margin:0;padding-left:20px}.bset-requirements-list li{margin-bottom:4px;text-transform:capitalize}.bset-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none;white-space:nowrap}.bset-btn-primary{background:#7c3aed;color:#fff}.bset-btn-primary:hover{background:#6d28d9}.bset-btn-secondary{background:#fff;color:#4b5563;border:1px solid #e5e7eb}.bset-btn-secondary:hover{background:#f3f4f6}.bset-btn-warning{background:#f59e0b;color:#fff}.bset-btn-warning:hover{background:#d97706}.bset-btn-danger{background:#ef4444;color:#fff}.bset-btn-danger:hover{background:#dc2626}.bset-btn:disabled{opacity:.5;cursor:not-allowed}.bset-btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:bset-spin .6s linear infinite}.bset-btn-secondary .bset-btn-spinner{border-color:#6b72804d;border-top-color:#6b7280}.bset-form-group{margin-bottom:20px}.bset-form-group:last-child{margin-bottom:0}.bset-label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}.bset-help-text{display:block;font-size:12px;color:#9ca3af;margin:4px 0 0}.bset-input,.bset-select{width:100%;padding:9px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;color:#1f2937;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.bset-input:focus,.bset-select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.bset-form-group input,.bset-form-group select,.bset-form-group textarea{width:100%;padding:9px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;color:#1f2937;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.bset-form-group input:focus,.bset-form-group select:focus,.bset-form-group textarea:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.bset-input-with-suffix{position:relative;display:flex;align-items:center}.bset-input-with-suffix .bset-input{padding-right:50px}.bset-input-suffix{position:absolute;right:12px;font-size:13px;font-weight:500;color:#9ca3af;pointer-events:none}.bset-form-toggle-group{margin-bottom:0}.bset-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #f3f4f6}.bset-toggle-row:last-child{border-bottom:none}.bset-toggle-info{flex:1;padding-right:16px}.bset-toggle-info .bset-label{margin-bottom:2px}.bset-toggle-info .bset-help-text{margin-top:0}.bset-toggle{position:relative;display:inline-flex;align-items:center;width:44px;height:24px;background:#d1d5db;border:none;border-radius:9999px;cursor:pointer;transition:background .2s;flex-shrink:0;padding:0}.bset-toggle:disabled{opacity:.5;cursor:not-allowed}.bset-toggle-on{background:#7c3aed}.bset-toggle-knob{position:absolute;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #00000026}.bset-toggle-on .bset-toggle-knob{transform:translate(20px)}.bset-late-fees-section{margin-bottom:20px}.bset-late-fees-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 0 0}.bset-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid #f3f4f6}.bset-payouts-table-wrap{overflow-x:auto;margin-top:16px}.bset-payouts-table{width:100%;border-collapse:collapse}.bset-payouts-table th{padding:10px 14px;text-align:left;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #e5e7eb;background:#f9fafb}.bset-payouts-table td{padding:12px 14px;font-size:14px;color:#1f2937;border-bottom:1px solid #f3f4f6;vertical-align:middle}.bset-payouts-table tr:hover{background:#f9fafb}.bset-payouts-table tr:last-child td{border-bottom:none}.bset-payout-amount{font-weight:600;font-variant-numeric:tabular-nums;color:#059669}.bset-bank-info{font-family:ui-monospace,monospace;font-size:13px;color:#6b7280}.bset-payout-badge{display:inline-flex;align-items:center;padding:3px 10px;font-size:12px;font-weight:600;border-radius:9999px;white-space:nowrap}.bset-payout-paid{background:#d1fae5;color:#065f46}.bset-payout-pending{background:#fef3c7;color:#b45309}.bset-payout-transit{background:#dbeafe;color:#1d4ed8}.bset-payout-failed{background:#fee2e2;color:#b91c1c}.bset-payouts-cards{display:none}.bset-payout-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;margin-bottom:10px}.bset-payout-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.bset-payout-card-amount{font-size:18px;font-weight:700;color:#059669;font-variant-numeric:tabular-nums}.bset-payout-card-details{display:flex;flex-direction:column;gap:6px}.bset-payout-card-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#4b5563}.bset-payout-card-label{font-weight:600;color:#6b7280}.bset-guide-steps{display:flex;flex-direction:column;gap:0}.bset-guide-step{display:flex;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid #f3f4f6}.bset-guide-step:last-child{border-bottom:none;padding-bottom:0}.bset-guide-step:first-child{padding-top:0}.bset-guide-step-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#f5f3ff;color:#7c3aed;font-size:15px;font-weight:700;flex-shrink:0;border:2px solid #ede9fe}.bset-guide-step-done .bset-guide-step-number{background:#d1fae5;color:#059669;border-color:#a7f3d0}.bset-guide-step-active .bset-guide-step-number{background:#fef3c7;color:#d97706;border-color:#fde68a}.bset-guide-step-content h4{font-size:14px;font-weight:700;color:#1f2937;margin:0 0 4px;line-height:1.4}.bset-guide-step-content p{font-size:13px;color:#6b7280;margin:0;line-height:1.5}.bset-guide-tip{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:12px 16px;background:#f5f3ff;border-radius:8px;border:1px solid #ede9fe}.bset-guide-tip svg{flex-shrink:0;margin-top:1px}.bset-guide-tip span{font-size:13px;color:#6b7280;line-height:1.5}.bset-workflow{display:flex;flex-direction:column;gap:0}.bset-workflow-step{display:flex;align-items:flex-start;gap:16px;padding:4px 0}.bset-workflow-connector{width:2px;height:16px;background:#e5e7eb;margin-left:19px}.bset-workflow-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;flex-shrink:0}.bset-wf-service{background:#dbeafe;color:#2563eb}.bset-wf-invoice{background:#f5f3ff;color:#7c3aed}.bset-wf-send{background:#fef3c7;color:#d97706}.bset-wf-payment{background:#d1fae5;color:#059669}.bset-wf-payout{background:#e0e7ff;color:#4f46e5}.bset-workflow-info h4{font-size:14px;font-weight:700;color:#1f2937;margin:0 0 4px;line-height:1.4}.bset-workflow-info p{font-size:13px;color:#6b7280;margin:0;line-height:1.5}.bset-workflow-features{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid #f3f4f6}.bset-wf-feature{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background:#f9fafb;border-radius:8px}.bset-wf-feature-icon{font-size:16px;color:#7c3aed;flex-shrink:0;line-height:1}.bset-wf-feature div{display:flex;flex-direction:column;gap:2px}.bset-wf-feature strong{font-size:13px;font-weight:600;color:#1f2937}.bset-wf-feature span{font-size:12px;color:#6b7280;line-height:1.4}.bset-section-desc{font-size:13px;color:#6b7280;margin:-12px 0 20px;line-height:1.5}.bset-chem-table-wrap{overflow-x:auto}.bset-chem-table{width:100%;border-collapse:collapse}.bset-chem-table th{padding:10px 14px;text-align:left;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #e5e7eb;background:#f9fafb}.bset-chem-table td{padding:10px 14px;font-size:14px;color:#1f2937;border-bottom:1px solid #f3f4f6;vertical-align:middle}.bset-chem-table tr:last-child td{border-bottom:none}.bset-chem-table tr:hover{background:#faf9fe}.bset-chem-name{font-weight:500;display:flex;align-items:center;gap:8px}.bset-chem-custom-badge{display:inline-block;font-size:10px;font-weight:600;padding:2px 8px;border-radius:9999px;background:#ede9fe;color:#7c3aed;text-transform:uppercase;letter-spacing:.03em}.bset-chem-unit-select{padding:6px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#1f2937;background:#fff;min-width:70px;cursor:pointer}.bset-chem-unit-select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.bset-chem-price{width:140px}.bset-dollar-input{position:relative;display:flex;align-items:center}.bset-dollar-sign{position:absolute;left:10px;font-size:14px;font-weight:500;color:#9ca3af;pointer-events:none;z-index:1}.bset-dollar-input input{width:100%;padding:6px 10px 6px 24px;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;color:#1f2937;background:#fff;box-sizing:border-box}.bset-dollar-input input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.bset-dollar-input input::placeholder{color:#d1d5db}.bset-chem-actions{width:40px;text-align:center}.bset-chem-remove{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:#d1d5db;font-size:14px;cursor:pointer;border-radius:6px;transition:all .15s}.bset-chem-remove:hover{color:#ef4444;background:#fef2f2}.bset-chem-cards{display:none}.bset-chem-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px;margin-bottom:8px}.bset-chem-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.bset-chem-card-name{font-size:14px;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:8px}.bset-chem-card-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bset-chem-card-field label{display:block;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.bset-chem-add-form{display:flex;align-items:center;gap:10px;margin-top:16px;padding:12px 14px;background:#f9fafb;border-radius:8px;border:1px dashed #d1d5db}.bset-chem-add-form .bset-input{flex:1;min-width:0}.bset-chem-add-btn{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:8px 16px;font-size:13px;font-weight:500;color:#7c3aed;background:none;border:1px dashed #c4b5fd;border-radius:8px;cursor:pointer;transition:all .15s}.bset-chem-add-btn:hover{background:#f5f3ff;border-color:#7c3aed}.bset-btn-sm{padding:6px 14px;font-size:13px}@media (max-width: 768px){.bset-page{padding:16px}.bset-header h1,.bset-page-title{font-size:20px}.bset-section{padding:16px;border-radius:10px}.bset-connect-card{padding:18px}.bset-btn{width:100%;justify-content:center}.bset-balance-row{flex-direction:column}.bset-balance-divider{width:100%;height:1px}.bset-balance-item{padding:12px 16px}.bset-balance-value{font-size:18px}.bset-late-fees-fields{grid-template-columns:1fr}.bset-guide-step{gap:12px}.bset-guide-step-number{width:32px;height:32px;font-size:13px}.bset-guide-step-content h4{font-size:13px}.bset-guide-step-content p{font-size:12px}.bset-workflow-step{gap:12px}.bset-workflow-icon{width:36px;height:36px;border-radius:8px}.bset-workflow-icon svg{width:18px;height:18px}.bset-workflow-connector{margin-left:17px;height:12px}.bset-workflow-info h4{font-size:13px}.bset-workflow-info p{font-size:12px}.bset-workflow-features{grid-template-columns:1fr;gap:8px}.bset-wf-feature{padding:8px 10px}.bset-toggle-row{flex-wrap:wrap;gap:10px}.bset-payouts-table-wrap{display:none}.bset-payouts-cards{display:block;margin-top:16px}.bset-form-actions{flex-direction:column-reverse}.bset-form-actions .bset-btn{width:100%;text-align:center}.bset-chem-table-wrap{display:none}.bset-chem-cards{display:block}.bset-chem-add-form{flex-wrap:wrap}.bset-chem-add-form .bset-input{width:100%;flex:none}.bset-chem-add-form .bset-chem-unit-select{flex:1}.bset-chem-card-fields .bset-dollar-input input,.bset-chem-card-fields .bset-chem-unit-select{width:100%;box-sizing:border-box}}@media (max-width: 480px){.bset-page{padding:12px}.bset-section{padding:14px}.bset-section-title{font-size:15px}.bset-section-desc{font-size:12px}.bset-connect-card{padding:14px}.bset-connect-status h3{font-size:15px}.bset-workflow-icon{width:32px;height:32px}.bset-workflow-icon svg{width:16px;height:16px}.bset-workflow-connector{margin-left:15px;height:10px}.bset-guide-step-number{width:28px;height:28px;font-size:12px}.bset-guide-step-number svg{width:14px;height:14px}.bset-guide-tip{padding:10px 12px}.bset-guide-tip span{font-size:12px}}.bset-paylink-placeholder{display:none;margin:0 0 14px}.bset-paylink-tabs{display:inline-flex;background:#f3f4f6;border-radius:8px;padding:3px;gap:2px;margin-bottom:16px}.bset-paylink-tab{padding:7px 16px;font-size:13px;font-weight:500;color:#6b7280;border:none;background:transparent;border-radius:6px;cursor:pointer;transition:all .15s;white-space:nowrap}.bset-paylink-tab:hover{color:#374151}.bset-paylink-tab.active{background:#fff;color:#111827;font-weight:600;box-shadow:0 1px 3px #00000014}.bset-paylink-context{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb;margin-bottom:16px}.bset-paylink-context-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center}.bset-paylink-context-icon.stripe{background:#f5f3ff;color:#7c3aed}.bset-paylink-context-icon.external{background:#dbeafe;color:#2563eb}.bset-paylink-context-text h4{font-size:13px;font-weight:600;color:#1f2937;margin:0 0 2px}.bset-paylink-context-text p{font-size:12px;color:#6b7280;margin:0;line-height:1.4}.bset-paylink-fields{display:flex;flex-direction:column;gap:14px}.bset-paylink-preview{background:#f9fafb;border-radius:8px;padding:14px 18px;border:1px solid #e5e7eb;text-align:center}.bset-paylink-preview-label{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;text-align:left}.bset-paylink-preview-btn{display:inline-block;background:#7c3aed;color:#fff;padding:9px 28px;border-radius:6px;font-weight:600;font-size:13px}.bset-paylink-preview-url{font-size:11px;color:#9ca3af;margin-top:6px;word-break:break-all}@media (max-width: 600px){.bset-paylink-tabs{display:flex;width:100%}.bset-paylink-tab{flex:1;text-align:center;padding:7px 8px;font-size:12px}}.bset-provider-guides{margin-bottom:16px}.bset-provider-guides-header{margin-bottom:10px}.bset-provider-guides-title{font-size:13px;font-weight:600;color:#374151;margin:0 0 2px}.bset-provider-guides-subtitle{font-size:12px;color:#9ca3af;margin:0}.bset-provider-accordion{display:flex;flex-direction:column;gap:6px}.bset-provider-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;transition:border-color .2s}.bset-provider-item[open]{border-color:#c4b5fd}.bset-provider-item summary{padding:10px 14px;font-size:13px;font-weight:600;color:#1f2937;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;outline:none}.bset-provider-item summary::-webkit-details-marker{display:none}.bset-provider-item summary::marker{display:none;content:""}.bset-provider-item summary:after{content:"+";font-size:1rem;font-weight:400;color:#7c3aed;flex-shrink:0;margin-left:.75rem}.bset-provider-item[open] summary:after{content:"−"}.bset-provider-item[open] summary{border-bottom:1px solid #e5e7eb}.bset-provider-item summary:hover{color:#7c3aed}.bset-provider-item-label{display:flex;align-items:center;gap:8px}.bset-provider-icon{width:20px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.bset-provider-icon svg{width:20px;height:20px}.bset-provider-body{padding:12px 14px}.bset-provider-steps{margin:0 0 10px;padding-left:20px;font-size:13px;color:#4b5563;line-height:1.6}.bset-provider-steps li{margin-bottom:4px}.bset-provider-steps li:last-child{margin-bottom:0}.bset-provider-url-format{display:flex;align-items:baseline;gap:6px;margin-bottom:8px;flex-wrap:wrap}.bset-provider-url-label{font-size:12px;font-weight:600;color:#6b7280;white-space:nowrap}.bset-provider-url-code{font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#7c3aed;background:#f5f3ff;padding:2px 8px;border-radius:4px;word-break:break-all}.bset-provider-note{font-size:12px;color:#9ca3af;margin:0 0 10px;line-height:1.5;font-style:italic}.bset-provider-use-btn{display:inline-flex;align-items:center;background:#f5f3ff;color:#7c3aed;border:1px solid #c4b5fd;font-size:12px;font-weight:600;padding:5px 12px;border-radius:6px;cursor:pointer;transition:all .15s}.bset-provider-use-btn:hover{background:#ede9fe;border-color:#7c3aed}@media (max-width: 768px){.bset-provider-item summary{padding:8px 12px;font-size:12px}.bset-provider-body{padding:10px 12px}.bset-provider-steps{font-size:12px}.bset-provider-url-format{flex-direction:column;gap:2px}}@media (max-width: 480px){.bset-provider-icon{width:18px;height:18px}.bset-provider-icon svg{width:18px;height:18px}.bset-provider-url-code{font-size:11px}}.sc-beta-badge{font-size:.55rem;font-weight:700;color:#7c3aed;background:#ede9fe;padding:.15rem .5rem;border-radius:999px;vertical-align:middle;margin-left:.35rem;letter-spacing:.03em}.sc-page{padding:24px;max-width:1200px;margin:0 auto}.sc-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:24px}.sc-header h1{font-size:24px;font-weight:700;color:#1f2937;margin:0}.sc-subtitle{font-size:14px;color:#6b7280;margin:4px 0 0}.sc-filters{display:flex;align-items:center;gap:8px;margin-bottom:20px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.sc-filters::-webkit-scrollbar{display:none}.sc-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#f3f4f6;color:#4b5563;border:none;border-radius:9999px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.sc-tab:hover{background:#e5e7eb;color:#1f2937}.sc-tab-active{background:#7c3aed;color:#fff}.sc-tab-active:hover{background:#6d28d9;color:#fff}.sc-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;border-radius:9999px;background:#0000001a}.sc-tab-active .sc-tab-count{background:#ffffff40}.sc-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center;color:#6b7280}.sc-loading p{margin-top:16px;font-size:14px}.sc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center}.sc-empty-icon{margin-bottom:16px;color:#d1d5db}.sc-empty h3{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 8px}.sc-empty p{font-size:14px;color:#6b7280;margin:0 0 20px}.sc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.sc-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000a;padding:20px;transition:box-shadow .2s;display:flex;flex-direction:column}.sc-card:hover{box-shadow:0 4px 12px #0000001a,0 2px 4px #0000000f}.sc-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.sc-card-name{font-size:16px;font-weight:700;color:#1f2937;margin:0;line-height:1.3}.sc-status-badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;border-radius:9999px;white-space:nowrap;flex-shrink:0}.sc-status-active{background:#d1fae5;color:#065f46}.sc-status-paused{background:#fef3c7;color:#92400e}.sc-status-cancelled{background:#f3f4f6;color:#6b7280}.sc-freq-badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;border-radius:9999px;background:#ede9fe;color:#6d28d9;text-transform:uppercase;letter-spacing:.03em}.sc-billing-day{font-size:13px;color:#6b7280}.sc-card-info{display:flex;flex-direction:column;gap:10px;flex:1}.sc-card-info-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.sc-card-label{font-size:13px;color:#6b7280;flex-shrink:0}.sc-card-value{font-size:14px;color:#1f2937;font-weight:500;text-align:right;display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.sc-card-amount{font-weight:700;color:#1f2937;font-variant-numeric:tabular-nums}.sc-card-actions{display:flex;align-items:center;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #f3f4f6}.sc-action-btn{padding:6px 14px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid #e5e7eb;background:#fff;color:#4b5563}.sc-action-btn:hover{background:#f9fafb}.sc-action-edit{color:#7c3aed;border-color:#ddd6fe}.sc-action-edit:hover{background:#f5f3ff;border-color:#7c3aed}.sc-action-pause{color:#d97706;border-color:#fde68a}.sc-action-pause:hover{background:#fffbeb;border-color:#d97706}.sc-action-resume{color:#059669;border-color:#a7f3d0}.sc-action-resume:hover{background:#ecfdf5;border-color:#059669}.sc-action-cancel{color:#dc2626;border-color:#fecaca;margin-left:auto}.sc-action-cancel:hover{background:#fef2f2;border-color:#dc2626}.sc-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.sc-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;width:100%;max-width:720px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.sc-confirm-modal{max-width:480px}.sc-confirm-modal .sc-modal-body p{font-size:14px;color:#4b5563;line-height:1.6;margin:0}.sc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e5e7eb;position:sticky;top:0;background:#fff;border-radius:12px 12px 0 0;z-index:1}.sc-modal-header h2{font-size:18px;font-weight:700;color:#1f2937;margin:0}.sc-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:6px;font-size:20px;color:#6b7280;cursor:pointer;transition:background .2s}.sc-modal-close:hover{background:#f3f4f6;color:#1f2937}.sc-modal-body{padding:24px;flex:1}.sc-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e5e7eb;background:#f9fafb;border-radius:0 0 12px 12px;position:sticky;bottom:0}.sc-form-group{margin-bottom:16px}.sc-form-group label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}.sc-form-group input,.sc-form-group select,.sc-form-group textarea{width:100%;padding:9px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;color:#1f2937;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.sc-form-group input:focus,.sc-form-group select:focus,.sc-form-group textarea:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.sc-form-group input:disabled,.sc-form-group select:disabled,.sc-form-group textarea:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.sc-form-group textarea{resize:vertical;min-height:80px}.sc-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sc-field-loading{padding:10px 12px;color:#6b7280;font-size:14px;font-style:italic}.sc-dollar-input{position:relative;display:flex;align-items:center}.sc-dollar-sign{position:absolute;left:12px;color:#6b7280;font-size:14px;font-weight:500;pointer-events:none;z-index:1}.sc-dollar-input input{padding-left:28px!important}.sc-dollar-input-sm .sc-dollar-sign{left:8px;font-size:13px}.sc-dollar-input-sm input{padding-left:22px!important}.sc-toggle-wrap{display:flex;align-items:center;gap:10px;margin-top:4px}.sc-toggle{position:relative;display:inline-flex;align-items:center;width:44px;height:24px;background:#d1d5db;border:none;border-radius:12px;cursor:pointer;transition:background .2s;padding:0;flex-shrink:0}.sc-toggle:disabled{opacity:.5;cursor:not-allowed}.sc-toggle-on{background:#7c3aed}.sc-toggle-slider{position:absolute;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #00000026}.sc-toggle-on .sc-toggle-slider{transform:translate(20px)}.sc-toggle-label{font-size:13px;color:#6b7280;font-weight:500}.sc-items-section{margin-bottom:16px;padding:16px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.sc-items-section>label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:4px}.sc-items-hint{font-size:12px;color:#9ca3af;margin:0 0 12px}.sc-items-table-wrap{overflow-x:auto;margin-bottom:12px}.sc-items-table{width:100%;border-collapse:collapse}.sc-items-table th{padding:8px 10px;text-align:left;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e5e7eb}.sc-items-table td{padding:6px 10px;vertical-align:middle}.sc-items-table input{width:100%;padding:7px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#1f2937;background:#fff;box-sizing:border-box}.sc-items-table input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.sc-li-desc{min-width:180px}.sc-li-qty{width:70px}.sc-li-price{width:120px}.sc-li-total{width:100px;font-size:13px;font-weight:600;color:#1f2937;font-variant-numeric:tabular-nums;white-space:nowrap}.sc-li-actions{width:40px;text-align:center}.sc-item-remove-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;transition:all .2s;font-size:14px}.sc-item-remove-btn:hover:not(:disabled){background:#fee2e2;color:#dc2626}.sc-item-remove-btn:disabled{opacity:.3;cursor:not-allowed}.sc-items-mobile{display:none}.sc-li-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px;margin-bottom:8px}.sc-li-card-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.sc-li-card-desc{flex:1;padding:7px 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#1f2937;background:#fff}.sc-li-card-desc:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.sc-li-card-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.sc-li-card-field label{display:block;font-size:11px;font-weight:600;color:#6b7280;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.sc-li-card-field input{width:100%;padding:6px 8px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#1f2937;background:#fff;box-sizing:border-box}.sc-li-card-field input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed1a}.sc-li-card-amount{display:flex;flex-direction:column;justify-content:flex-end}.sc-li-card-amount span{font-size:14px;font-weight:600;color:#1f2937;padding:6px 0}.sc-add-item-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:none;border:2px dashed #d1d5db;border-radius:8px;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s}.sc-add-item-btn:hover:not(:disabled){border-color:#7c3aed;color:#7c3aed;background:#f5f3ff}.sc-add-item-btn:disabled{opacity:.5;cursor:not-allowed}.sc-items-subtotal{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb;font-size:14px;font-weight:600;color:#1f2937}.sc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none;white-space:nowrap}.sc-btn:disabled{opacity:.5;cursor:not-allowed}.sc-btn-primary{background:#7c3aed;color:#fff}.sc-btn-primary:hover:not(:disabled){background:#6d28d9}.sc-btn-secondary{background:#fff;color:#4b5563;border:1px solid #e5e7eb}.sc-btn-secondary:hover:not(:disabled){background:#f3f4f6}.sc-btn-danger{background:#dc2626;color:#fff}.sc-btn-danger:hover:not(:disabled){background:#b91c1c}.sc-btn-warning{background:#d97706;color:#fff}.sc-btn-warning:hover:not(:disabled){background:#b45309}@media (max-width: 768px){.sc-page{padding:16px}.sc-header{flex-direction:column;align-items:flex-start}.sc-header h1{font-size:20px}.sc-header .sc-btn{width:100%}.sc-filters{gap:6px}.sc-tab{padding:6px 12px;font-size:12px}.sc-list{grid-template-columns:1fr;gap:12px}.sc-card{padding:16px}.sc-card-name{font-size:15px}.sc-card-actions{flex-wrap:wrap}.sc-action-btn{font-size:12px;padding:5px 10px}.sc-action-cancel{margin-left:0}.sc-modal-overlay{align-items:flex-end;padding:0}.sc-modal{max-width:100%;max-height:95vh;border-radius:12px 12px 0 0;margin-top:auto}.sc-form-row{grid-template-columns:1fr}.sc-items-table-wrap{display:none}.sc-items-mobile{display:block;margin-bottom:12px}.sc-items-section{padding:12px}.sc-modal-actions{flex-direction:column-reverse}.sc-modal-actions .sc-btn{width:100%;text-align:center}}.pbill-beta-badge{font-size:.55rem;font-weight:700;color:#7c3aed;background:#ede9fe;padding:.15rem .5rem;border-radius:999px;vertical-align:middle;margin-left:.35rem;letter-spacing:.03em}.pbill-page{max-width:900px;margin:0 auto}.pbill-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#7c3aed;border-radius:50%;animation:pbill-spin .7s linear infinite;margin:0 auto 1rem}@keyframes pbill-spin{to{transform:rotate(360deg)}}.pbill-btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:pbill-spin .6s linear infinite;vertical-align:middle;margin-right:6px}.pbill-balance-banner{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:.75rem;padding:1.5rem 2rem;color:#fff;margin-bottom:1.5rem;text-align:center}.pbill-balance-label{font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;opacity:.85;margin-bottom:.25rem}.pbill-balance-amount{font-size:2.25rem;font-weight:700;line-height:1.2;margin-bottom:.25rem}.pbill-balance-meta{font-size:.85rem;opacity:.8}.pbill-stats-bar{display:flex;gap:1rem;margin-bottom:1.5rem}.pbill-stat{flex:1;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:.875rem 1rem;text-align:center}.pbill-stat-value{font-size:1.5rem;font-weight:700;color:#111827}.pbill-stat-label{font-size:.7rem;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-top:.125rem}.pbill-stat-outstanding .pbill-stat-value{color:#d97706}.pbill-stat-paid .pbill-stat-value{color:#16a34a}.pbill-invoice-list{display:flex;flex-direction:column;gap:.75rem}.pbill-invoice-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden;transition:box-shadow .2s}.pbill-invoice-card:hover{box-shadow:0 2px 8px #0000000f}.pbill-invoice-card.pbill-expanded{border-color:#c4b5fd;box-shadow:0 2px 12px #7c3aed14}.pbill-card-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;cursor:pointer;transition:background .15s}.pbill-card-header:hover{background:#faf9ff}.pbill-card-main{flex:1;min-width:0}.pbill-card-top-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.35rem}.pbill-invoice-number{font-weight:600;font-size:.95rem;color:#111827}.pbill-card-dates{font-size:.8rem;color:#6b7280}.pbill-date-sep{margin:0 .5rem;color:#d1d5db}.pbill-overdue-text{color:#dc2626;font-weight:600}.pbill-card-amounts{display:flex;gap:1.25rem;align-items:center;flex-shrink:0}.pbill-card-total,.pbill-card-paid,.pbill-card-due{text-align:right}.pbill-amount-label{display:block;font-size:.65rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.pbill-amount-value{font-size:.95rem;font-weight:600;color:#111827}.pbill-amount-paid{color:#16a34a}.pbill-amount-due{color:#dc2626}.pbill-card-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.pbill-pay-btn{padding:.5rem 1rem;background:#7c3aed;color:#fff;border:none;border-radius:.5rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.pbill-pay-btn:hover{background:#6d28d9}.pbill-pay-btn:active{background:#5b21b6}.pbill-view-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:1px solid #e5e7eb;border-radius:.375rem;color:#6b7280;cursor:pointer;transition:all .15s;padding:0}.pbill-view-btn:hover{background:#f3f4f6;color:#374151}.pbill-status-badge{display:inline-flex;align-items:center;padding:2px 10px;font-size:.7rem;font-weight:600;border-radius:9999px;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.pbill-status-badge.draft{background:#f3f4f6;color:#6b7280}.pbill-status-badge.sent{background:#dbeafe;color:#1d4ed8}.pbill-status-badge.viewed{background:#e0e7ff;color:#4338ca}.pbill-status-badge.partial{background:#fef3c7;color:#b45309}.pbill-status-badge.paid{background:#d1fae5;color:#065f46}.pbill-status-badge.overdue{background:#fee2e2;color:#b91c1c}.pbill-status-badge.cancelled,.pbill-status-badge.void{background:#f3f4f6;color:#9ca3af}.pbill-detail{border-top:1px solid #f3f4f6;padding:1.25rem;background:#faf9ff}.pbill-detail-section{margin-bottom:1.25rem}.pbill-detail-section:last-child{margin-bottom:0}.pbill-detail-heading{font-size:.8rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.pbill-items-table{width:100%;border-collapse:collapse;font-size:.875rem}.pbill-items-table thead{background:#fff}.pbill-items-table th{text-align:left;padding:.625rem .75rem;font-size:.7rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e5e7eb}.pbill-items-table td{padding:.625rem .75rem;color:#374151;border-bottom:1px solid #f3f4f6}.pbill-items-table tbody tr:last-child td{border-bottom:none}.pbill-items-num{text-align:right}.pbill-totals{margin-top:.75rem;border-top:1px solid #e5e7eb;padding-top:.75rem;max-width:300px;margin-left:auto}.pbill-totals-row{display:flex;justify-content:space-between;padding:.3rem 0;font-size:.875rem;color:#374151}.pbill-discount span:last-child{color:#16a34a}.pbill-totals-total{border-top:1px solid #e5e7eb;padding-top:.5rem;margin-top:.25rem;font-weight:700;color:#111827;font-size:.95rem}.pbill-totals-paid span:last-child{color:#16a34a}.pbill-totals-due{font-weight:700;color:#dc2626;font-size:.95rem}.pbill-totals-due span:last-child{color:#dc2626}.pbill-notes-text{font-size:.875rem;color:#4b5563;line-height:1.6;margin:0;padding:.75rem 1rem;background:#fff;border-radius:.5rem;border:1px solid #e5e7eb}.pbill-payments-list{display:flex;flex-direction:column;gap:.5rem}.pbill-payment-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;font-size:.85rem}.pbill-payment-info{display:flex;align-items:center;gap:.75rem}.pbill-payment-amount{font-weight:600;color:#111827}.pbill-payment-method{color:#6b7280;text-transform:capitalize}.pbill-payment-ref{color:#9ca3af;font-size:.8rem}.pbill-payment-meta{display:flex;align-items:center;gap:.75rem}.pbill-payment-status{font-size:.7rem;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:9999px}.pbill-payment-status.succeeded,.pbill-payment-status.completed{background:#d1fae5;color:#065f46}.pbill-payment-status.pending{background:#fef3c7;color:#b45309}.pbill-payment-status.failed{background:#fee2e2;color:#b91c1c}.pbill-payment-date{color:#9ca3af;font-size:.8rem}.pbill-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:pbill-fade-in .2s ease}@keyframes pbill-fade-in{0%{opacity:0}to{opacity:1}}.pbill-modal{background:#fff;border-radius:1rem;width:100%;max-width:460px;box-shadow:0 20px 60px #00000026;animation:pbill-slide-up .25s ease;overflow:hidden}@keyframes pbill-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pbill-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #f3f4f6}.pbill-modal-title{font-size:1.125rem;font-weight:700;color:#111827;margin:0}.pbill-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:.375rem;color:#9ca3af;cursor:pointer;transition:all .15s;padding:0}.pbill-modal-close:hover{background:#f3f4f6;color:#374151}.pbill-modal-close:disabled{opacity:.4;cursor:not-allowed}.pbill-modal-body{padding:1.5rem}.pbill-pay-summary{text-align:center;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #f3f4f6}.pbill-pay-invoice-num{font-size:.8rem;color:#6b7280;font-weight:500;margin-bottom:.25rem}.pbill-pay-amount{font-size:2rem;font-weight:700;color:#111827;line-height:1.2}.pbill-pay-due{font-size:.8rem;color:#9ca3af;margin-top:.25rem}.pbill-card-form{display:flex;flex-direction:column;gap:1rem}.pbill-card-label{font-size:.8rem;font-weight:600;color:#374151;margin-bottom:-.5rem}.pbill-card-element{padding:.875rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;transition:border-color .15s,box-shadow .15s}.pbill-card-element:focus-within{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.pbill-payment-error{font-size:.85rem;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;padding:.625rem .875rem;border-radius:.5rem}.pbill-confirm-btn{padding:.75rem 1.5rem;background:#7c3aed;color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:.35rem}.pbill-confirm-btn:hover:not(:disabled){background:#6d28d9}.pbill-confirm-btn:active:not(:disabled){background:#5b21b6}.pbill-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.pbill-stripe-badge{display:flex;align-items:center;justify-content:center;gap:.35rem;font-size:.75rem;color:#9ca3af;margin-top:.25rem}.pbill-payment-loading{text-align:center;padding:2rem 0}.pbill-payment-loading p{font-size:.9rem;color:#6b7280;margin:0}.pbill-payment-success{text-align:center;padding:1rem 0}.pbill-success-icon{margin-bottom:1rem}.pbill-success-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0 0 .5rem}.pbill-success-text{font-size:.9rem;color:#6b7280;margin:0 0 1.5rem;line-height:1.5}.pbill-done-btn{padding:.625rem 2rem;background:#7c3aed;color:#fff;border:none;border-radius:.5rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.pbill-done-btn:hover{background:#6d28d9}@media (max-width: 768px){.pbill-balance-banner{padding:1.25rem 1rem}.pbill-balance-amount{font-size:1.75rem}.pbill-stats-bar{gap:.5rem}.pbill-stat{padding:.625rem .5rem}.pbill-stat-value{font-size:1.25rem}.pbill-card-header{flex-direction:column;align-items:stretch;gap:.75rem;padding:1rem}.pbill-card-main{width:100%}.pbill-card-top-row{flex-wrap:wrap}.pbill-card-dates{font-size:.75rem}.pbill-date-sep{display:none}.pbill-card-dates span{display:block}.pbill-card-amounts{justify-content:space-between;padding-top:.5rem;border-top:1px solid #f3f4f6}.pbill-card-total,.pbill-card-paid,.pbill-card-due{text-align:center}.pbill-card-actions{justify-content:space-between;padding-top:.5rem}.pbill-pay-btn{flex:1}.pbill-detail{padding:1rem}.pbill-items-table th,.pbill-items-table td{padding:.5rem;font-size:.8rem}.pbill-totals{max-width:100%}.pbill-payment-row{flex-direction:column;align-items:flex-start;gap:.5rem}.pbill-payment-info{flex-wrap:wrap}.pbill-payment-meta{width:100%;justify-content:space-between}.pbill-modal{max-width:100%;margin:.5rem}.pbill-pay-amount{font-size:1.5rem}}@media (max-width: 480px){.pbill-stats-bar{flex-wrap:wrap}.pbill-stat{min-width:calc(33.333% - .5rem)}.pbill-card-paid{display:none}.pbill-items-table th:nth-child(2),.pbill-items-table td:nth-child(2),.pbill-items-table th:nth-child(3),.pbill-items-table td:nth-child(3){display:none}}.subscription-banner{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-radius:.5rem;margin-bottom:1.5rem;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.banner-icon{font-size:1.5rem;flex-shrink:0}.banner-content{flex:1;display:flex;flex-direction:column;gap:.25rem}.banner-content strong{font-weight:600;font-size:.875rem}.banner-content span{font-size:.875rem}.banner-action{padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .2s;white-space:nowrap}.trial-info{background:#f5f3ff;border:1px solid #c4b5fd;color:#5b21b6}.trial-info .banner-action{background:#7c3aed;color:#fff}.trial-info .banner-action:hover{background:#6d28d9}.trial-warning{background:#fffbeb;border:1px solid #fcd34d;color:#78350f}.trial-warning .banner-action{background:#f59e0b;color:#fff}.trial-warning .banner-action:hover{background:#d97706}.grace-period{background:#fff7ed;border:1px solid #fdba74;color:#9a3412}.grace-period .banner-action{background:#ea580c;color:#fff}.grace-period .banner-action:hover{background:#c2410c}.trial-expired{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.trial-expired .banner-action{background:#dc2626;color:#fff}.trial-expired .banner-action:hover{background:#b91c1c}.suspended{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.suspended .banner-action{background:#ea580c;color:#fff}.suspended .banner-action:hover{background:#c2410c}.pending-payment{background:#fffbeb;border:1px solid #fcd34d;color:#92400e}.pending-payment .banner-action{background:#d97706;color:#fff}.pending-payment .banner-action:hover{background:#b45309}.paused{background:#f0f4ff;border:1px solid #bfdbfe;color:#1e40af}.paused .banner-action{background:#3b82f6;color:#fff}.paused .banner-action:hover{background:#2563eb}.limit-warning{background:#eff6ff;border:1px solid #93c5fd;color:#1e40af}.limit-warning .banner-action{background:#3b82f6;color:#fff}.limit-warning .banner-action:hover{background:#2563eb}.trial-progress{width:100%;height:4px;background:#0000001a;border-radius:2px;overflow:hidden;margin-top:.375rem}.trial-progress-bar{height:100%;border-radius:2px;transition:width .5s ease}.trial-info .trial-progress-bar{background:#7c3aed}.trial-warning .trial-progress-bar{background:#f59e0b}@media (max-width: 640px){.subscription-banner{flex-direction:column;align-items:flex-start;text-align:left}.banner-action{width:100%;text-align:center}}.location-switcher{position:relative;padding:0 .75rem .75rem;border-bottom:1px solid #e5e7eb;margin-bottom:.5rem}.location-switcher-org-name{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;margin-bottom:.35rem;font-weight:600}.location-switcher-toggle{display:flex;align-items:center;gap:.4rem;width:100%;padding:.5rem .65rem;border:1px solid #d1d5db;border-radius:.5rem;background:#f9fafb;cursor:pointer;transition:all .15s ease;font-size:.82rem;color:#374151}.location-switcher-toggle:hover{border-color:#7c3aed;background:#faf5ff}.location-switcher-icon{font-size:.85rem;flex-shrink:0}.location-switcher-current{flex:1;text-align:left;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-switcher-chevron{font-size:.75rem;color:#9ca3af;transition:transform .2s ease;flex-shrink:0}.location-switcher-chevron.open{transform:rotate(180deg)}.location-switcher-dropdown{position:absolute;left:0;right:0;margin-top:.3rem;background:#fff;border:1px solid #d1d5db;border-radius:.5rem;box-shadow:0 8px 24px #00000026,0 2px 6px #00000014;z-index:50;max-height:260px;overflow-y:auto;animation:locDropIn .15s ease-out}@keyframes locDropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.location-switcher-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.6rem .75rem;border:none;background:transparent;cursor:pointer;font-size:.82rem;color:#374151;transition:background .1s ease;text-align:left;gap:.5rem}.location-switcher-option:hover{background:#f3f4f6}.location-switcher-option.active{color:#7c3aed;font-weight:600;background:#faf5ff}.location-switcher-option:first-child{border-radius:.5rem .5rem 0 0}.location-switcher-option:last-child{border-radius:0 0 .5rem .5rem}.location-option-info{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.location-option-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-option-type{font-size:.6rem;font-weight:600;white-space:nowrap}.location-option-type.type-retailer,.location-option-type.type-service{color:#9ca3af}.location-option-check{color:#7c3aed;font-weight:700;font-size:.9rem;flex-shrink:0;margin-left:.25rem}.sidebar.theme-classic .location-switcher{border-bottom-color:#ffffff26}.sidebar.theme-classic .location-switcher-org-name{color:#ffffff8c}.sidebar.theme-classic .location-switcher-toggle{background:#ffffff1f;border-color:#fff3;color:#fffffff2}.sidebar.theme-classic .location-switcher-toggle:hover{background:#fff3;border-color:#ffffff59}.sidebar.theme-classic .location-switcher-chevron{color:#ffffff80}.sidebar.theme-classic .location-switcher-dropdown{border-color:#e5e7eb;box-shadow:0 8px 28px #00000040,0 2px 8px #0000001f}.sidebar.theme-modern .location-switcher{border-bottom-color:#e2e8f0}.sidebar.theme-modern .location-switcher-org-name{color:#94a3b8}.sidebar.theme-modern .location-switcher-toggle{background:#f8fafc;border-color:#e2e8f0;color:#1e293b}.sidebar.theme-modern .location-switcher-toggle:hover{background:#f5f3ff;border-color:#c4b5fd}.sidebar.theme-modern .location-switcher-chevron{color:#94a3b8}.theme-toggle{display:inline-flex;background:#f3f4f6;border-radius:8px;padding:3px;gap:2px;flex-shrink:0}.theme-toggle-btn{padding:5px 14px;border-radius:6px;font-size:.8rem;font-weight:500;color:#6b7280;border:none;background:none;cursor:pointer;transition:all .2s ease;font-family:inherit;white-space:nowrap;line-height:1.3}.theme-toggle-btn:hover{color:#374151}.theme-toggle-btn.active{background:#fff;color:#7c3aed;box-shadow:0 1px 3px #0000001a;font-weight:600}.theme-toggle.theme-toggle-mobile{background:#ffffff26;border-radius:6px;padding:2px}.theme-toggle-mobile .theme-toggle-btn{padding:4px 10px;font-size:.7rem;color:#ffffffa6;border-radius:5px}.theme-toggle-mobile .theme-toggle-btn:hover{color:#ffffffe6}.theme-toggle-mobile .theme-toggle-btn.active{background:#ffffff40;color:#fff;box-shadow:none;font-weight:600}.app-layout{display:flex;height:100vh;height:100dvh;overflow:hidden}.sidebar{width:250px;background:linear-gradient(180deg,#7c3aed,#6d28d9);color:#fff;padding:1.5rem;display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;z-index:100}.sidebar-logo{margin-bottom:2rem}.sidebar-logo h1{font-size:1.5rem;font-weight:700;margin:0}.sidebar-logo .tagline{font-size:.75rem;color:#fff;opacity:.8;margin-top:.25rem}.sidebar-logo-img{max-width:180px;width:100%;height:auto}.mobile-logo-img{height:32px;width:auto}.sidebar-company{background:#ffffff1a;padding:.75rem;border-radius:.5rem;margin-bottom:2rem;font-size:.875rem}.sidebar-company .label{opacity:.8;font-size:.75rem;margin-bottom:.25rem}.sidebar-company .name{font-weight:600}.sidebar-nav{flex:1}.sidebar-nav a{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;color:#fff;text-decoration:none;border-radius:.5rem;margin-bottom:.25rem;transition:background .2s;font-size:.95rem}.sidebar-nav a:hover{background:#ffffff26;color:#fff}.sidebar-nav a.active{background:#fff3;font-weight:600}.sidebar-nav-group{margin-bottom:.25rem}.sidebar-nav-parent{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1rem;color:#fff;background:none;border:none;border-radius:.5rem;cursor:pointer;transition:background .2s;font-size:.95rem;font-family:inherit;text-align:left}.sidebar-nav-parent:hover{background:#ffffff26}.sidebar-nav-parent.active{background:#fff3;font-weight:600}.sidebar-chevron{font-size:.75rem;transition:transform .2s;opacity:.7}.sidebar-chevron.open{transform:rotate(90deg)}.sidebar-submenu{padding-left:.75rem}.sidebar-submenu a{padding:.5rem 1rem .5rem 1.25rem;font-size:.85rem;opacity:.85;margin-bottom:0}.sidebar-submenu a:hover{opacity:1}.sidebar-submenu a.active{opacity:1;background:#ffffff26;font-weight:600}.sidebar-section-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#ffffff80;padding:.75rem 1rem .25rem;margin-top:.5rem;border-top:1px solid rgba(255,255,255,.1)}.top-bar{display:flex;align-items:center;justify-content:flex-end;padding:.5rem 2rem;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0}.top-bar-spacer{flex:1}.profile-dropdown-container{position:relative}.profile-avatar-btn{display:flex;align-items:center;gap:.5rem;background:none;border:none;cursor:pointer;padding:.25rem;border-radius:2rem;transition:background .2s}.profile-avatar-btn:hover{background:#0000000a}.profile-avatar-circle{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0;transition:box-shadow .2s}.profile-avatar-btn:hover .profile-avatar-circle{box-shadow:0 0 0 3px #7c3aed33}.profile-avatar-sm{width:30px;height:30px;font-size:.75rem}.profile-avatar-name{font-size:.8125rem;font-weight:500;color:#374151}.profile-dropdown{position:absolute;top:calc(100% + .5rem);right:0;width:240px;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 10px 25px #00000026;z-index:500;overflow:hidden}.profile-dropdown-header{padding:1rem;background:#faf5ff;border-bottom:1px solid #e5e7eb}.profile-dropdown-name{font-weight:600;color:#111827;font-size:.875rem}.profile-dropdown-email{font-size:.75rem;color:#6b7280;margin-top:.125rem}.profile-dropdown-role{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#7c3aed;margin-top:.25rem}.profile-dropdown-divider{height:1px;background:#e5e7eb}.profile-dropdown-item{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.8125rem;color:#374151;text-decoration:none;cursor:pointer;transition:background .15s;border:none;background:none;width:100%;text-align:left;font-family:inherit}.profile-dropdown-item:hover{background:#f9fafb}.profile-dropdown-sysadmin{color:#6b7280;font-size:.75rem}.profile-dropdown-sysadmin:hover{background:#f3f4f6}.profile-dropdown-logout{color:#ef4444}.profile-dropdown-logout:hover{background:#fef2f2}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.mobile-header{display:none;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;padding:.75rem 1rem;align-items:center;justify-content:space-between;flex-shrink:0}.mobile-header h1{font-size:1.1rem;font-weight:700;margin:0}.mobile-header-left,.mobile-header-actions{display:flex;align-items:center;gap:.5rem}.mobile-header .profile-avatar-btn:hover{background:#ffffff26}.mobile-header .profile-avatar-circle{box-shadow:none}.menu-toggle{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:4px 8px;border-radius:4px}.menu-toggle:hover{background:#ffffff26}.mobile-header-modern{background:#fff!important;color:#334155!important;border-bottom:1px solid #e2e8f0}.mobile-header-modern .menu-toggle{color:#334155}.mobile-header-modern .menu-toggle:hover{background:#f3f4f6}.mobile-header-modern .profile-avatar-btn:hover{background:#0000000a!important}.main-content{flex:1;overflow:auto;background:#f9fafb}.main-content-inner{padding:2rem;max-width:1400px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:99}.top-bar{gap:.75rem}.top-bar-company{font-size:.8rem;color:#64748b;font-weight:500;white-space:nowrap}.top-bar-badge{display:inline-block;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:#f1f5f9;color:#64748b;padding:.15rem .45rem;border-radius:4px;margin-left:.35rem;vertical-align:middle}.sidebar-beta-badge{font-size:.6rem;font-weight:600;color:#a78bfa;opacity:.8;margin-left:.15rem}.sidebar{transition:background .35s ease,border-color .35s ease,color .25s ease,width .25s ease}.sidebar.theme-modern{width:240px;background:#fff;border-right:1px solid #e2e8f0;color:#334155;padding:1.25rem .75rem}.sidebar.theme-modern .sidebar-logo{margin-bottom:.75rem;padding:0 .25rem}.sidebar.theme-modern .sidebar-company{background:transparent;border:none;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;border-radius:0;padding:.65rem .5rem;margin-bottom:.5rem}.sidebar.theme-modern .sidebar-company .label{opacity:1;color:#94a3b8;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.sidebar.theme-modern .sidebar-company .name{color:#1e293b;font-weight:600}.sidebar.theme-modern .sidebar-nav a{color:#334155;font-weight:500;border-radius:8px;height:40px;font-size:.875rem;gap:.625rem;padding:0 .75rem;display:flex;align-items:center;margin-bottom:1px}.sidebar.theme-modern .sidebar-nav a:hover{background:#f8fafc;color:#1e293b}.sidebar.theme-modern .sidebar-nav a.active{background:#f5f3ff;color:#7c3aed;font-weight:600}.sidebar.theme-modern .sidebar-nav a.active svg{color:#7c3aed}.sidebar.theme-modern .sidebar-nav a svg,.sidebar.theme-modern .sidebar-nav-parent svg{color:#64748b;flex-shrink:0;transition:color .15s}.sidebar.theme-modern .sidebar-nav a:hover svg{color:#475569}.sidebar.theme-modern .sidebar-nav-parent{color:#334155;font-weight:500;border-radius:8px;font-size:.875rem;height:40px;display:flex;align-items:center}.sidebar.theme-modern .sidebar-nav-parent:hover{background:#f8fafc}.sidebar.theme-modern .sidebar-nav-parent.active{background:#f5f3ff;color:#7c3aed;font-weight:600}.sidebar.theme-modern .sidebar-nav-parent.active svg{color:#7c3aed}.sidebar.theme-modern .sidebar-chevron{color:#94a3b8;opacity:1}.sidebar.theme-modern .sidebar-nav-group{border-top:1px solid #e2e8f0;margin-top:.35rem;padding-top:.35rem}.sidebar.theme-modern .sidebar-submenu{padding-left:1.5rem}.sidebar.theme-modern .sidebar-submenu a{color:#64748b;font-size:.8rem;opacity:1;padding-left:1rem;height:34px}.sidebar.theme-modern .sidebar-submenu a:hover{color:#334155;background:#f8fafc}.sidebar.theme-modern .sidebar-submenu a.active{color:#7c3aed;background:#f5f3ff;font-weight:600}.sidebar.theme-modern .sidebar-section-label{color:#94a3b8;border-top-color:#e2e8f0}@media (max-width: 768px),(max-height: 500px) and (orientation: landscape){.app-layout{flex-direction:column;height:auto;min-height:100vh;min-height:100dvh;overflow:visible}.mobile-header{display:flex;position:sticky;top:0;z-index:100}.top-bar{display:none}.sidebar{display:none;position:fixed;top:0;left:0;bottom:0;width:280px;z-index:200}.sidebar.open{display:flex}.sidebar.theme-modern{width:280px}.top-bar-company{display:none}.sidebar-overlay.open{display:block;z-index:150}.main-area{width:100%;overflow:visible;flex:1}.main-content{overflow:visible}.main-content-inner{padding:1rem}.mobile-header .profile-dropdown{position:fixed;top:52px;right:.5rem;left:auto}}@media (max-width: 480px){.main-content-inner{padding:.75rem}}.portal-layout{min-height:100vh;min-height:100dvh;background:#f8f7ff;display:flex;flex-direction:column}.portal-header{background:#fff;border-bottom:1px solid #e5e1f5;padding:0 1.5rem;height:60px;display:flex;align-items:center;gap:2rem;box-shadow:0 1px 3px #7c3aed0f}.portal-logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:#1e1b4b;font-weight:700;font-size:1.1rem}.portal-logo-icon{font-size:1.3rem}.portal-logo-img{height:32px;width:auto}.portal-logo-text{font-size:1.1rem}.portal-badge{background:#7c3aed;color:#fff;font-size:.65rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.portal-nav{display:flex;gap:.25rem;flex:1}.portal-nav-link{text-decoration:none;color:#6b7280;font-size:.9rem;font-weight:500;padding:.5rem .75rem;border-radius:6px;transition:all .15s}.portal-nav-link:hover{color:#7c3aed;background:#f3f0ff}.portal-nav-link.active{color:#7c3aed;background:#ede9fe}.portal-beta-badge{font-size:.6rem;font-weight:600;color:#a78bfa;margin-left:.1rem}.portal-profile{position:relative}.portal-user-name{font-size:.85rem;color:#4b5563;font-weight:500;margin-left:.25rem}.portal-profile-dropdown{position:absolute;top:100%;right:0;margin-top:.5rem;background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000001f;min-width:200px;z-index:100;overflow:hidden}.portal-dropdown-header{padding:.75rem 1rem}.portal-dropdown-name{font-weight:600;color:#1e1b4b;font-size:.9rem}.portal-dropdown-email{color:#6b7280;font-size:.8rem;margin-top:.15rem}.portal-dropdown-divider{height:1px;background:#e5e7eb}.portal-dropdown-item{display:block;width:100%;text-align:left;padding:.6rem 1rem;font-size:.85rem;color:#4b5563;background:none;border:none;cursor:pointer;font-family:inherit}.portal-dropdown-item:hover{background:#f9fafb;color:#7c3aed}.portal-main{flex:1;padding:1.5rem}.portal-content{max-width:1000px;margin:0 auto}.portal-page-title{font-size:1.5rem;font-weight:700;color:#1e1b4b;margin-bottom:1.5rem}.portal-card{background:#fff;border-radius:10px;border:1px solid #e5e1f5;padding:1.25rem;margin-bottom:1rem;transition:box-shadow .15s}.portal-card:hover{box-shadow:0 2px 8px #7c3aed14}.portal-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.portal-card-title{font-size:1.1rem;font-weight:600;color:#1e1b4b}.portal-card-subtitle{font-size:.8rem;color:#6b7280;margin-top:.15rem}.portal-card-stats{display:flex;gap:1.5rem;flex-wrap:wrap}.portal-stat{display:flex;flex-direction:column}.portal-stat-label{font-size:.7rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.portal-stat-value{font-size:1rem;font-weight:600;color:#1e1b4b}.portal-empty{text-align:center;padding:3rem 1rem;color:#6b7280}.portal-empty-icon{font-size:3rem;margin-bottom:1rem}.portal-empty-title{font-size:1.1rem;font-weight:600;color:#374151;margin-bottom:.5rem}.portal-empty-text{font-size:.9rem;max-width:400px;margin:0 auto}.portal-status{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600}.portal-status-good{background:#d1fae5;color:#065f46}.portal-status-warn{background:#fef3c7;color:#92400e}.portal-status-bad{background:#fee2e2;color:#991b1b}.portal-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;border:none;font-family:inherit;transition:all .15s;text-decoration:none}.portal-btn-primary{background:#7c3aed;color:#fff}.portal-btn-primary:hover{background:#6d28d9}.portal-btn-outline{background:#fff;color:#7c3aed;border:1px solid #7c3aed}.portal-btn-outline:hover{background:#f3f0ff}@media (max-width: 768px){.portal-header{padding:0 1rem;gap:1rem}.portal-logo-text{display:none}.portal-logo-img{height:26px}.portal-user-name{display:none}.portal-main{padding:1rem}.portal-card-stats{gap:1rem}}.sa-layout{display:flex;min-height:100vh;background:#f1f5f9}.sa-sidebar{width:240px;background:linear-gradient(180deg,#1e293b,#0f172a);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sa-sidebar-logo{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.1);flex-wrap:wrap}.sa-logo-icon{font-size:1.5rem}.sa-logo-img{height:36px;width:auto}.sa-logo-badge{background:#6366f1cc;color:#fff;font-size:.6rem;font-weight:700;padding:.15rem .45rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.sa-logo-text{font-size:1.1rem;font-weight:700;letter-spacing:.5px}.sa-sidebar-nav{flex:1;padding:1rem .75rem;display:flex;flex-direction:column;gap:.25rem}.sa-sidebar-nav a{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;color:#94a3b8;text-decoration:none;border-radius:.5rem;font-size:.9rem;transition:all .2s}.sa-sidebar-nav a:hover{background:#ffffff14;color:#fff}.sa-sidebar-nav a.active{background:#6366f133;color:#fff;font-weight:600}.sa-sidebar-footer{padding:1rem;border-top:1px solid rgba(255,255,255,.1)}.sa-back-link{display:block;padding:.6rem 1rem;color:#94a3b8;text-decoration:none;font-size:.85rem;border-radius:.5rem;transition:all .2s}.sa-back-link:hover{color:#fff;background:#ffffff14}.sa-footer-active{color:#fff;background:#6366f133}.sa-main-area{flex:1;margin-left:240px;display:flex;flex-direction:column;min-height:100vh}.sa-top-bar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:50}.sa-top-bar-left{display:flex;align-items:center;gap:1rem}.sa-badge{background:#ef4444;color:#fff;padding:.25rem .75rem;border-radius:1rem;font-size:.7rem;font-weight:700;letter-spacing:1px}.sa-hamburger{display:none;background:none;border:1px solid #e2e8f0;color:#374151;font-size:1.25rem;padding:.3rem .6rem;border-radius:.375rem;cursor:pointer;line-height:1}.sa-sidebar-overlay{display:none}.sa-top-bar-right{display:flex;align-items:center;gap:1rem}.sa-user-info{color:#64748b;font-size:.85rem}.sa-logout-btn{background:none;border:1px solid #e2e8f0;color:#64748b;padding:.4rem .75rem;border-radius:.375rem;cursor:pointer;font-size:.8rem;transition:all .2s}.sa-logout-btn:hover{border-color:#cbd5e1;color:#1e293b}.sa-content{flex:1;padding:1.5rem}.sa-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.sa-stat-card{background:#fff;border-radius:.75rem;padding:1.25rem;border:1px solid #e2e8f0}.sa-stat-label{font-size:.8rem;color:#64748b;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.5px}.sa-stat-value{font-size:1.75rem;font-weight:700;color:#1e293b}.sa-card{background:#fff;border-radius:.75rem;border:1px solid #e2e8f0;margin-bottom:1.5rem}.sa-card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.sa-card-header h2{font-size:1rem;font-weight:600;color:#1e293b;margin:0}.sa-card-body{padding:1.25rem}.sa-table{width:100%;border-collapse:collapse;font-size:.85rem}.sa-table th{text-align:left;padding:.6rem .75rem;color:#64748b;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e2e8f0}.sa-table td{padding:.6rem .75rem;color:#334155;border-bottom:1px solid #f1f5f9}.sa-table tr:hover td{background:#f8fafc}.sa-status-badge{display:inline-block;padding:.15rem .5rem;border-radius:1rem;font-size:.7rem;font-weight:600;text-transform:uppercase}.sa-status-badge.trial{background:#dbeafe;color:#1d4ed8}.sa-status-badge.active{background:#dcfce7;color:#15803d}.sa-status-badge.trial_expired{background:#fee2e2;color:#b91c1c}.sa-status-badge.suspended{background:#fef3c7;color:#92400e}.sa-status-badge.cancelled{background:#f1f5f9;color:#475569}.sa-filters{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.sa-search-input{flex:1;min-width:200px;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:.375rem;font-size:.85rem;outline:none;transition:border-color .2s}.sa-search-input::placeholder{color:#94a3b8;-webkit-text-fill-color:#94a3b8}.sa-search-input:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f11a}.sa-filter-select{padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:.375rem;font-size:.85rem;background:#fff;outline:none;cursor:pointer}.sa-filter-select:focus{border-color:#6366f1}.sa-pagination{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;border-top:1px solid #e2e8f0;font-size:.8rem;color:#64748b}.sa-pagination-btns{display:flex;gap:.5rem}.sa-pagination-btns button{padding:.35rem .75rem;border:1px solid #e2e8f0;border-radius:.375rem;background:#fff;color:#334155;cursor:pointer;font-size:.8rem;transition:all .2s}.sa-pagination-btns button:hover:not(:disabled){border-color:#6366f1;color:#6366f1}.sa-pagination-btns button:disabled{opacity:.4;cursor:not-allowed}.sa-btn{padding:.35rem .65rem;border-radius:.375rem;font-size:.75rem;cursor:pointer;border:1px solid #e2e8f0;background:#fff;color:#334155;transition:all .2s}.sa-btn:hover{border-color:#6366f1;color:#6366f1}.sa-btn.danger{color:#dc2626}.sa-btn.danger:hover{border-color:#dc2626}.sa-btn.success{color:#15803d}.sa-btn.success:hover{border-color:#15803d}.sa-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.sa-breakdown-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem .75rem;background:#f8fafc;border-radius:.5rem;font-size:.85rem}.sa-breakdown-label{color:#64748b}.sa-breakdown-value{font-weight:600;color:#1e293b}.sa-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200}.sa-modal{background:#fff;border-radius:.75rem;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.sa-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.sa-modal-header h3{margin:0;font-size:1rem;color:#1e293b}.sa-modal-close{background:none;border:none;font-size:1.25rem;color:#64748b;cursor:pointer}.sa-modal-body{padding:1.25rem}.sa-form-group{margin-bottom:1rem}.sa-form-group label{display:block;font-size:.8rem;font-weight:600;color:#475569;margin-bottom:.35rem}.sa-form-group input,.sa-form-group select{width:100%;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:.375rem;font-size:.85rem;outline:none}.sa-form-group input::placeholder{color:#94a3b8;-webkit-text-fill-color:#94a3b8}.sa-form-group input:focus,.sa-form-group select:focus{border-color:#6366f1}.sa-modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;border-top:1px solid #e2e8f0}.sa-modal-footer button{padding:.5rem 1rem;border-radius:.375rem;font-size:.85rem;cursor:pointer;transition:all .2s}.sa-modal-footer .sa-btn-cancel{background:#fff;border:1px solid #e2e8f0;color:#64748b}.sa-modal-footer .sa-btn-save{background:#6366f1;border:1px solid #6366f1;color:#fff}.sa-modal-footer .sa-btn-save:hover{background:#4f46e5}.sa-loading{text-align:center;padding:3rem;color:#64748b}.sa-type-badge{display:inline-block;padding:.15rem .5rem;border-radius:.25rem;font-size:.7rem;font-weight:600}.sa-type-badge.pool_store{background:#ede9fe;color:#6d28d9}.sa-type-badge.service{background:#e0f2fe;color:#0369a1}.sa-type-badge.homeowner{background:#fef3c7;color:#92400e}.sa-type-badge.portal{background:#f1f5f9;color:#475569}.sa-tabs{display:flex;gap:0;border-bottom:2px solid #e2e8f0;margin-bottom:1.5rem}.sa-tab-btn{padding:.6rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;color:#64748b;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.sa-tab-btn.active{color:#6366f1;border-bottom-color:#6366f1}.sa-tab-btn:hover:not(.active){color:#334155}.sa-form-hint{font-size:.75rem;color:#94a3b8;margin-top:.25rem}.sa-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.sa-checkbox-group{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.sa-checkbox-group label{display:flex!important;align-items:center;gap:.35rem;font-size:.8rem!important;font-weight:500!important;color:#475569!important;cursor:pointer;padding:.25rem .5rem;border:1px solid #e2e8f0;border-radius:.375rem;transition:all .2s}.sa-checkbox-group label:hover{border-color:#6366f1}.sa-checkbox-group input[type=checkbox]{width:auto!important;margin:0}.sa-checkbox-group input[type=checkbox]:checked+span{color:#6366f1}.sa-btn.primary{background:#6366f1;border-color:#6366f1;color:#fff}.sa-btn.primary:hover{background:#4f46e5;border-color:#4f46e5}@media (max-width: 768px){.sa-sidebar{width:240px;transform:translate(-100%);transition:transform .25s ease}.sa-sidebar.open{transform:translate(0)}.sa-sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:99}.sa-main-area{margin-left:0}.sa-hamburger{display:block}.sa-top-bar{padding:.6rem 1rem}.sa-user-info{display:none}.sa-content{padding:1rem}.sa-stats{grid-template-columns:repeat(2,1fr)}.sa-filters{flex-direction:column}.sa-search-input{min-width:auto;width:100%}.sa-filter-select{width:100%}.sa-table thead{display:none}.sa-table tbody{display:flex;flex-direction:column;gap:.5rem;padding:.5rem}.sa-table tr{display:flex;flex-wrap:wrap;gap:.35rem .75rem;padding:.75rem;border:1px solid #e2e8f0;border-radius:.5rem;background:#fff;align-items:center}.sa-table td{padding:0;border:none;font-size:.8rem}.sa-table td:first-child{width:100%;margin-bottom:.15rem}.sa-table td:nth-child(5),.sa-table td:nth-child(6),.sa-table td:nth-child(7),.sa-table td:nth-child(8){display:none}.sa-table td:last-child .sa-btn{font-size:.7rem;padding:.25rem .5rem}.sa-pagination{flex-direction:column;gap:.5rem;text-align:center}.sa-modal{width:95%;max-width:100%!important;max-height:90vh;margin:.5rem}.sa-inline-edit-row{display:block!important;padding:.5rem!important;border:1px solid #e2e8f0;border-radius:.5rem}.sa-inline-edit-form{flex-direction:column!important;align-items:stretch!important}.sa-inline-edit-form>div{flex:1 1 auto!important}.sa-inline-edit-actions{width:100%}.sa-inline-edit-actions button{flex:1}.sa-add-user-form{flex-direction:column!important;align-items:stretch!important}.sa-add-user-form>div{flex:1 1 auto!important}.sa-password-display,.sa-add-pw-display{font-size:.9rem!important}.sa-modal-footer{flex-wrap:wrap}}@media (max-width: 480px){.sa-content{padding:.75rem}.sa-stats{grid-template-columns:1fr 1fr;gap:.5rem}.sa-stat-card{padding:.75rem}.sa-stat-value{font-size:1.35rem}.sa-stat-label{font-size:.7rem}.sa-modal-header,.sa-modal-body,.sa-modal-footer{padding:.75rem 1rem}.sa-modal-footer button{font-size:.8rem;padding:.4rem .75rem}.sa-table tr{padding:.6rem;gap:.25rem .5rem}.sa-table td{font-size:.75rem}}.sa-commission-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.sa-commission-row{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;background:#f8fafc;border-radius:.5rem;gap:.5rem}.sa-commission-plan{display:flex;align-items:center;gap:.5rem;min-width:0}.sa-commission-plan-name{font-size:.8rem;font-weight:600;color:#1e293b;white-space:nowrap}.sa-commission-value{font-size:1rem;font-weight:700;color:#6366f1;white-space:nowrap}.sa-commission-input-wrap{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.sa-commission-input{width:65px!important;padding:.35rem .5rem!important;border:1px solid #e2e8f0!important;border-radius:.375rem!important;font-size:.85rem!important;text-align:right;color:#1e293b}.sa-commission-input:focus{border-color:#6366f1!important;box-shadow:0 0 0 2px #6366f11a;outline:none}.sa-commission-pct{font-size:.8rem;font-weight:600;color:#64748b}@media (max-width: 768px){.sa-commission-grid{grid-template-columns:1fr}}.sa-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:sa-spin .6s linear infinite}@keyframes sa-spin{to{transform:rotate(360deg)}}.notif-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:notif-fade-in .2s ease-out}.notif-modal{background:#fff;border-radius:1rem;padding:2rem 2rem 1.5rem;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 60px #00000040;animation:notif-scale-in .25s ease-out}.notif-modal-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.notif-modal-icon svg{width:28px;height:28px}.notif-icon-error{background:#fef2f2;color:#dc2626}.notif-icon-warning{background:#fffbeb;color:#d97706}.notif-icon-success{background:#f0fdf4;color:#16a34a}.notif-icon-info{background:#eff6ff;color:#2563eb}.notif-modal-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;margin-bottom:.5rem}.notif-modal-message{font-size:1rem;line-height:1.5;color:#1f2937;margin-bottom:1.5rem;word-break:break-word}.notif-modal-dismiss{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 2rem;background:#7c3aed;color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s;width:100%;max-width:200px}.notif-modal-dismiss:hover{background:#6d28d9}.notif-snackbar-container{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:480px;padding:0 1rem;pointer-events:none}.notif-snackbar{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;border-radius:.625rem;box-shadow:0 8px 24px #00000026;pointer-events:auto;animation:notif-slide-up .3s ease-out}.notif-snackbar-icon{flex-shrink:0;width:20px;height:20px}.notif-snackbar-icon svg{width:20px;height:20px}.notif-snackbar-message{flex:1;font-size:.875rem;font-weight:500;line-height:1.4}.notif-snackbar-close{flex-shrink:0;background:none;border:none;font-size:1.25rem;line-height:1;cursor:pointer;padding:.125rem .25rem;border-radius:.25rem;opacity:.6;transition:opacity .15s}.notif-snackbar-close:hover{opacity:1}.notif-snackbar-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.notif-snackbar-success .notif-snackbar-close{color:#166534}.notif-snackbar-warning{background:#fffbeb;border:1px solid #fcd34d;color:#78350f}.notif-snackbar-warning .notif-snackbar-close{color:#78350f}.notif-snackbar-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.notif-snackbar-error .notif-snackbar-close{color:#991b1b}.notif-snackbar-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.notif-snackbar-info .notif-snackbar-close{color:#1e40af}@keyframes notif-fade-in{0%{opacity:0}to{opacity:1}}@keyframes notif-scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes notif-slide-up{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.notif-backdrop{padding:1rem;align-items:center}.notif-modal{padding:1.5rem 1.25rem 1.25rem;border-radius:.875rem;max-width:100%}.notif-modal-icon{width:40px;height:40px;margin-bottom:.5rem}.notif-modal-icon svg{width:24px;height:24px}.notif-modal-message{font-size:.9375rem;margin-bottom:1.25rem}.notif-modal-dismiss{width:100%;max-width:none;padding:.75rem}.notif-snackbar-container{bottom:1rem;left:0;right:0;transform:none;max-width:100%;padding:0 .75rem}.notif-snackbar{border-radius:.5rem;padding:.625rem .75rem}.notif-snackbar-message{font-size:.8125rem}}@media (max-width: 380px){.notif-modal{padding:1.25rem 1rem 1rem}.notif-modal-message{font-size:.875rem}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#111827;background-color:#f9fafb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;-webkit-text-size-adjust:100%;text-size-adjust:100%}@media (orientation: landscape) and (max-height: 500px){html{font-size:14px}}@media (orientation: portrait){html{font-size:16px}}#root{width:100%}
