@import url(https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap);@import url(https://fonts.googleapis.com/css2?family=Montserrat+Alternates&display=swap);@import url(https://fonts.googleapis.com/css2?family=Roboto+Slab&family=Roboto&display=swap);.material-scroll-area{overflow-y:auto!important;scrollbar-color:#d1d5db #f3f4f6;scrollbar-width:thin}.material-scroll-area::-webkit-scrollbar{width:8px}.material-scroll-area::-webkit-scrollbar-track{background:#f3f4f6;border-radius:4px}.material-scroll-area::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.material-scroll-area::-webkit-scrollbar-thumb:hover{background:#9ca3af}.material-scroll-area::-webkit-scrollbar{display:block!important}body{background-color:#f5f5f5;font-family:Montserrat,sans-serif}body,html{margin:0;padding:0}@keyframes slideInFromLeft{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes slideOutToLeft{0%{transform:translateX(0)}to{transform:translateX(-100%)}}.slide-in{animation:slideInFromLeft .3s ease-out}.slide-out{animation:slideOutToLeft .3s ease-in}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-enter{animation:fadeInDown .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slideUp .3s ease-out}.navbar-fixed{left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:50}.title-font{font-family:Montserrat Alternates,sans-serif}.font-robotoslab{font-family:Roboto Slab,serif}.residential-solar-projects{background:#fff;break-inside:avoid;page-break-inside:avoid;position:relative}.residential-solar-projects main{height:calc(100% - 40px);overflow:hidden;padding:20px 24px}.residential-installations{background:#fff;break-inside:avoid;page-break-inside:avoid;position:relative}.residential-installations main{height:calc(100% - 40px);overflow:hidden;padding:20px 24px}.text-sonetec-dark-blue{color:#1e40af}.App{min-height:100vh;padding:0}.font-outline{-webkit-text-stroke:1px #fff;color:#0000;font-family:Montserrat,sans-serif;font-size:2.5rem;font-weight:700;line-height:1}.print-button{align-items:center;background:#2563eb;border:none;border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a;color:#fff;cursor:pointer;display:flex;font-weight:700;gap:.5rem;padding:.75rem 1.5rem;position:fixed;right:1rem;top:1rem;transform:scale(1);transition:all .2s;z-index:50}.status-dropdown{font-size:.75rem;line-height:1rem;min-width:120px}.status-dropdown:focus{ring:2px;ring-color:#93c5fd;outline:none}@media print{.fixed.top-4.right-4,.fixed.top-4.right-4.z-50,.status-dropdown,.status-info-icon,.user-role-display,[class*=toast]{display:none!important}}.status-loading{position:relative}.status-loading:after{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:currentcolor;content:"";height:12px;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:12px}@keyframes spin{0%{transform:translateY(-50%) rotate(0deg)}to{transform:translateY(-50%) rotate(1turn)}}.structure-description-field{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:2px solid #e2e8f0;transition:all .3s ease}.structure-description-field:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.structure-description-field:hover{border-color:#94a3b8}.print-button:hover{background:#1d4ed8;transform:scale(1.05)}.print-button svg{height:1.25rem;width:1.25rem}.about-sonetec,.estimate-page,.residential-solar-projects,.solar-power-plant{page-break-after:always}.about-sonetec,.estimate-page,.residential-installations,.residential-solar-projects,.solar-power-plant,.terms-and-conditions{box-shadow:0 4px 20px #00000026;height:297mm;page-break-inside:avoid;width:210mm}.page-break,.page-break-after{border-bottom:2px dashed #e5e7eb;margin-bottom:1rem;padding-bottom:0}.page-break-before{border-top:2px dashed #e5e7eb;margin-top:2rem;padding-top:1rem}.estimate-page,.residential-installations,.terms-and-conditions{margin:0 auto;max-width:210mm;position:relative}.estimate-page.mb-8{border-bottom:1px solid #e5e7eb;margin-bottom:2rem;padding-bottom:2rem}@page{size:A4;margin:0}@media print{body{background-color:#fff;margin:0;padding:0;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}*{box-sizing:border-box}.App{margin:0!important;padding:0}.fixed.bottom-4.right-4,.fixed.top-2.right-2,.fixed.top-4.right-4,.fixed.top-4.right-4.z-50,.mt-20+br,.navbar-fixed,.print-button,.print\:hidden,[class*=toast],br.print\:hidden{display:none!important}.mt-20{margin-top:0!important}.final-estimate-print,.proposal-view-content{display:block!important;gap:0!important}.about-sonetec,.add-on-packages,.back-cover,.estimate-page,.residential-installations,.residential-solar-projects,.solar-power-plant,.terms-and-conditions{box-shadow:none!important;break-inside:avoid!important;display:block!important;height:297mm!important;margin:0!important;overflow:hidden!important;padding-top:0!important;page-break-after:always!important;page-break-inside:avoid!important;position:relative!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;width:210mm!important}.solar-power-plant{overflow:visible!important}.solar-power-plant .backdrop-blur-sm,.solar-power-plant [class*=backdrop-blur]{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background-color:#fff9!important}.back-cover{page-break-after:avoid!important}.estimate-page,.terms-and-conditions{border-bottom:none!important;min-height:297mm!important;padding-bottom:7rem!important}.fullestimate-terms{page-break-after:avoid!important}.estimate-page img[alt*="Background pattern"],.estimate-page img[alt*="dotted pattern"],.final-estimate-print img[alt*="Background pattern"],.final-estimate-print img[alt*="dotted pattern"]{max-width:300px!important;width:300px!important}.estimate-page img[alt*=logo],.final-estimate-print img[alt*=logo]{height:80px!important;max-width:180px!important;object-fit:contain!important;width:180px!important}.terms-and-conditions img[src="/gpay.png"],img[src="/gpay.png"]{height:auto!important;min-width:160px!important;width:160px!important}.about-sonetec{padding:0!important}.about-sonetec main{margin:0!important;padding:24px 32px!important}.about-sonetec .grid{grid-gap:32px!important;display:grid!important;gap:32px!important;grid-template-columns:1fr 1fr!important}.about-sonetec img{height:auto!important;max-width:100%!important}.residential-solar-projects main{height:calc(100% - 40px)!important;margin:0!important;overflow:hidden!important;padding:20px 24px!important}.page-break,.page-break-after{border-bottom:none!important;break-after:page!important;margin-bottom:0!important;padding-bottom:0!important;page-break-after:always!important}.page-break-before{border-top:none!important;break-before:page!important;margin-top:0!important;padding-top:0!important;page-break-before:always!important}.print-mode{display:block!important;margin:0!important;padding:0!important;width:210mm!important}.mobile-proposal-view.print-mode-active .about-sonetec,.mobile-proposal-view.print-mode-active .add-on-packages,.mobile-proposal-view.print-mode-active .back-cover,.mobile-proposal-view.print-mode-active .estimate-page,.mobile-proposal-view.print-mode-active .residential-installations,.mobile-proposal-view.print-mode-active .residential-solar-projects,.mobile-proposal-view.print-mode-active .solar-power-plant,.mobile-proposal-view.print-mode-active .terms-and-conditions{box-shadow:none!important;margin-bottom:0!important;transform:none!important;transform-origin:top left!important}.mobile-proposal-view.print-mode-active .print-mode{overflow:visible!important;padding-top:0!important;width:210mm!important}.print-mode>br{display:none!important}}.back-cover{box-shadow:0 4px 20px #00000026;break-inside:avoid;height:297mm;overflow:hidden;page-break-inside:avoid;width:210mm}.back-cover,.top-logos-bar{background:#fff;position:relative}.top-logos-bar{padding:20px 0;z-index:2}.logos-container{align-items:center;display:flex;justify-content:space-around;margin:0 auto;max-width:90%}.logos-container .logo{height:60px;object-fit:contain;width:auto}.center-logo-container{align-items:center;display:flex;flex:1 1;justify-content:center;margin-top:-100px}.sonetec-logo{height:auto;max-width:500px;object-fit:contain;width:80%}.contact-info{color:#1e3a8a;font-family:Montserrat,sans-serif;font-weight:600;padding:0 40px 50px;text-align:center}.contact-icon img{filter:brightness(0) opacity(.8)}.website{font-size:24px;font-weight:600;letter-spacing:1px;margin-bottom:20px}.contact-details{display:flex;flex-direction:column;gap:12px;margin:0 auto;max-width:600px}.contact-item{align-items:flex-start;display:flex;font-size:16px;font-weight:500;gap:15px}.contact-text{line-height:1.4;text-align:left}@media print{.back-cover{box-shadow:none!important;height:297mm!important;margin:0!important;overflow:hidden!important;page-break-inside:avoid;width:210mm!important}.block-print,.block-print *{display:none!important;opacity:0!important;visibility:hidden!important}.block-print:before{background:#fff!important;border:3px solid #dc2626!important;border-radius:10px!important;color:#dc2626!important;content:"This proposal is not approved for printing. Please contact admin for approval."!important;display:block!important;font-size:24px!important;font-weight:700!important;left:50%!important;max-width:600px!important;opacity:1!important;padding:50px!important;position:fixed!important;text-align:center!important;top:50%!important;transform:translate(-50%,-50%)!important;visibility:visible!important;width:80%!important;z-index:9999!important}}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]:focus{-webkit-user-select:none;user-select:none}.react-pdf__Page{align-items:center;display:flex;flex-direction:column;margin:0 auto}.react-pdf__Page__canvas{border-radius:4px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;height:auto!important;margin:10px 0;max-width:100%}.react-pdf__Page__textContent{border:none!important;box-shadow:none!important;max-width:100%!important}.react-pdf__Page__annotations{border:none!important}.media-viewer-enter{opacity:0;transform:scale(.95)}.media-viewer-enter-active{transition:opacity .2s ease-in,transform .2s ease-in}.media-viewer-enter-active,.media-viewer-exit{opacity:1;transform:scale(1)}.media-viewer-exit-active{opacity:0;transform:scale(.95);transition:opacity .15s ease-out,transform .15s ease-out}@keyframes imageLoadFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.lightbox-image-loaded{animation:imageLoadFadeIn .3s ease-in}.video-progress-bar{transition:height .2s ease}.video-progress-bar:hover{height:8px!important}@keyframes pdfPageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.pdf-page-transition{animation:pdfPageSlideIn .2s ease-out}@media (hover:none) and (pointer:coarse){.touch-feedback:active{opacity:.7;transform:scale(.98);transition:all .1s ease}}.media-viewer-no-select{-webkit-user-select:none;user-select:none}.structure-designer-canvas,.structure-designer-canvas *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.structure-designer-canvas svg text{pointer-events:none}.structure-designer-canvas svg g[style*="cursor: move"],.structure-designer-canvas svg g[style*="cursor: pointer"]{-webkit-user-select:none;user-select:none}@keyframes mediaSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.media-loading-spinner{animation:mediaSpinner 1s linear infinite}.pdf-scroll-container{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}input[type=range].video-volume-slider{-webkit-appearance:none;appearance:none;background:#ffffff4d;border-radius:2px;height:4px;outline:none}input[type=range].video-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;border-radius:50%;cursor:pointer;height:12px;width:12px}input[type=range].video-volume-slider::-moz-range-thumb{background:#fff;border:none;border-radius:50%;cursor:pointer;height:12px;width:12px}@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){.media-viewer-backdrop{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}}.media-viewer-overlay{inset:0;position:fixed;z-index:9999}@media print{.media-lightbox,.media-viewer-overlay,.pdf-viewer,.video-player{display:none!important}}.media-viewer-button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media (prefers-color-scheme:dark){.react-pdf__Page__canvas{filter:brightness(.95)}}@keyframes modalBackdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modalZoomIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-in{animation-fill-mode:both}.fade-in{animation:modalBackdropFadeIn .2s ease-out}.slide-in-from-top-2{animation:modalSlideUp .2s cubic-bezier(.16,1,.3,1)}.slide-in-from-bottom-4{animation:modalSlideUp .3s cubic-bezier(.16,1,.3,1)}.zoom-in-95{animation:modalZoomIn .3s cubic-bezier(.16,1,.3,1)}@keyframes cardFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.card-float{animation:cardFloat 3s ease-in-out infinite}.scrollbar-thin::-webkit-scrollbar{width:6px}.scrollbar-thin::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#94a3b8}.hover-lift{transition:transform .2s ease-out,box-shadow .2s ease-out}.hover-lift:hover{box-shadow:0 10px 25px -5px #00000026;transform:translateY(-2px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .3s cubic-bezier(.16,1,.3,1)}.stagger-item{animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) both}.stagger-item:first-child{animation-delay:.05s}.stagger-item:nth-child(2){animation-delay:.1s}.stagger-item:nth-child(3){animation-delay:.15s}.stagger-item:nth-child(4){animation-delay:.2s}.stagger-item:nth-child(5){animation-delay:.25s}.stagger-item:nth-child(6){animation-delay:.3s}.focus-ring{outline:2px solid #0000;outline-offset:2px}.focus-ring:focus{box-shadow:0 0 0 4px #3b82f61a;outline:2px solid #3b82f6;outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width:768px){.mobile-tap-feedback:active{opacity:.8;transform:scale(.95)}}.transition-smooth{transition:all .3s cubic-bezier(.16,1,.3,1)}@media print{body:has(.id-card-print-area)>:not(.id-card-print-area){visibility:hidden}.id-card-print-area{left:0;position:absolute;top:0;visibility:visible;width:100%}.id-card-back,.id-card-front{color-adjust:exact;height:85.6mm!important;page-break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact;width:53.98mm!important}.id-card-back *,.id-card-front *{color-adjust:exact!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}}body:has(.fixed.inset-0) .global-status-indicator,body:has([class*=backdrop]) .global-status-indicator,body:has([class*=lightbox]) .global-status-indicator,body:has([class*=media-viewer]) .global-status-indicator,body:has([class*=modal-overlay]) .global-status-indicator{display:none!important}.localdb-snapshot-sync-overlay--mobile{align-items:flex-end;background:#0f172a8c;display:flex;inset:0;justify-content:center;padding:0;position:fixed;z-index:9999}.localdb-snapshot-sync-card--mobile{-webkit-overflow-scrolling:touch;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -8px 24px #0f172a2e;max-height:min(85vh,640px);overflow-y:auto;padding:20px 16px calc(20px + env(safe-area-inset-bottom, 0px));width:100%}.localdb-snapshot-sync-card--mobile .localdb-snapshot-sync-list li{min-height:44px}