@import url(https://fonts.googleapis.com/css2?family=Teko:wght@300;400;500;600;700&family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--skywave-green:#00b29c;--neon-teal:#02cc80;--obsidian-sky:#303a39;--card-bg:#fffffff2;--panel-shadow:0 20px 40px #0000001a;--light-gray:#e2e8f0;--medium-gray:#718096;--dark-gray:#4a5568}.dot-counter-container{background:linear-gradient(135deg,#303a39,#1a1f1e);background:linear-gradient(135deg,var(--obsidian-sky) 0,#1a1f1e 100%);box-sizing:border-box;color:#2d3748;font-family:Open Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-family:Open Sans,sans-serif;margin:0 auto;min-height:100vh;padding:2rem;width:100%}.dot-counter-content{align-items:center;display:flex;flex-direction:column;margin:0 auto;max-width:100%;padding:2rem 1rem;width:100%}.dot-counter-header{margin-bottom:2rem;text-align:center}.dot-counter-title{color:#fff;font-family:Teko,sans-serif;font-size:2.5rem;font-weight:500;letter-spacing:.03em;margin-bottom:1rem;text-shadow:0 2px 4px #0000004d}.dot-counter-description{color:#fff;font-size:1rem;margin:0 auto;max-width:800px;opacity:.8}.dot-counter-controls{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-bottom:2rem}.dot-counter-file-input{display:none}.dot-counter-button{align-items:center;border:none;border-radius:20px;box-shadow:0 2px 8px #0003;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.dot-counter-button.disabled{background-color:#475569!important;cursor:not-allowed}.dot-counter-button span{margin-left:.5rem}.upload-button{background:linear-gradient(135deg,#00b29c,#02cc80);background:linear-gradient(135deg,var(--skywave-green),var(--neon-teal))}.upload-button:hover{background:linear-gradient(135deg,#02cc80,#00b29c);background:linear-gradient(135deg,var(--neon-teal),var(--skywave-green))}.reprocess-button{background:linear-gradient(135deg,#00b29c,#02cc80);background:linear-gradient(135deg,var(--skywave-green),var(--neon-teal))}.reprocess-button:hover{background:linear-gradient(135deg,#02cc80,#00b29c);background:linear-gradient(135deg,var(--neon-teal),var(--skywave-green))}.settings-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3}.settings-button:hover{background:#ffffff4d}.reset-button{background:#f44336cc}.reset-button:hover{background:#f44336}.dot-counter-button.area-restriction-button{background:linear-gradient(135deg,#00b29c,#02cc80)!important;background:linear-gradient(135deg,var(--skywave-green),var(--neon-teal))!important}.dot-counter-button.area-restriction-button:hover{background:linear-gradient(135deg,#02cc80,#00b29c)!important;background:linear-gradient(135deg,var(--neon-teal),var(--skywave-green))!important}.dot-counter-settings-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;background:var(--card-bg);border:1px solid #fff3;border-radius:20px;box-shadow:0 20px 40px #0000001a;box-shadow:var(--panel-shadow);box-sizing:border-box;margin:0 auto 2rem;max-width:1800px;padding:2rem;width:100%}.settings-title{color:#4a5568;color:var(--dark-gray);font-size:1.8rem;font-weight:600;gap:10px;letter-spacing:.02em;margin-bottom:1.25rem}.settings-controls{grid-gap:1.5rem;align-items:end;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding-bottom:.5rem}.settings-control{margin-bottom:.5rem;min-width:200px}.settings-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.settings-range{appearance:none;background:#e2e8f0;background:var(--light-gray);border-radius:3px;height:6px;margin-bottom:.25rem;min-width:150px;outline:none;width:100%}.settings-range::-webkit-slider-thumb{appearance:none;background:linear-gradient(135deg,#00b29c,#02cc80);background:linear-gradient(135deg,var(--skywave-green),var(--neon-teal));border-radius:50%;box-shadow:0 2px 8px #00b29c4d;cursor:pointer;height:20px;width:20px}.settings-range::-moz-range-thumb{background:linear-gradient(135deg,#00b29c,#02cc80);background:linear-gradient(135deg,var(--skywave-green),var(--neon-teal));border:none;border-radius:50%;box-shadow:0 2px 8px #00b29c4d;cursor:pointer;height:20px;width:20px}.settings-value{color:#94a3b8;font-size:.875rem}.settings-checkbox{align-items:center;display:flex;gap:.5rem}.settings-checkbox-input{border-radius:.25rem;height:1rem;width:1rem}.settings-checkbox-label{font-size:.875rem}.dot-counter-results{grid-gap:2.5rem;box-sizing:border-box;display:grid;gap:2.5rem;grid-template-columns:1fr;margin:0 auto;max-width:1800px;padding:0;width:100%}@media (min-width:1024px){.dot-counter-results{grid-template-columns:1fr 1fr;margin-left:0;margin-right:0;max-width:1800px;width:100%}.image-display,.results-panel{margin:0;width:100%}.dot-counter-content{align-items:center;display:flex;flex-direction:column}.dot-counter-results,.dot-counter-settings-panel{max-width:1800px}}.image-display,.results-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;background:var(--card-bg);border:1px solid #fff3;border-radius:20px;box-shadow:0 20px 40px #0000001a;box-shadow:var(--panel-shadow);box-sizing:border-box;min-height:500px;padding:2rem}.image-display{position:relative}.image-display-checkbox{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #ffffff4d;border-radius:.5rem;bottom:1rem;box-shadow:0 2px 8px #0000001a;display:flex;gap:.5rem;padding:.5rem .75rem;position:absolute;right:1rem}.section-title{align-items:center;color:#303a39;display:flex;font-family:Teko,sans-serif;font-size:35.2px;font-weight:500;gap:12px;letter-spacing:.03em;margin-bottom:1rem;margin-top:0}.section-title:before{background:linear-gradient(135deg,#00b29c,#02cc80);background:linear-gradient(135deg,var(--skywave-green),var(--neon-teal));border-radius:2px;content:"";height:24px;width:4px}.settings-title{align-items:center;color:#303a39;display:flex;font-family:Teko,sans-serif;font-size:35.2px;font-weight:500;gap:12px;letter-spacing:.03em;margin-bottom:1rem;margin-top:0}.settings-title:before{background:linear-gradient(135deg,#00b29c,#02cc80);background:linear-gradient(135deg,var(--skywave-green),var(--neon-teal));border-radius:2px;content:"";height:24px;width:4px}.canvas-container{position:relative}.result-canvas{border:1px solid #334155;border-radius:.25rem;height:auto;max-width:100%}.processing-overlay{align-items:center;background-color:#00000080;border-radius:.25rem;display:flex;inset:0;justify-content:center;position:absolute}.processing-indicator{text-align:center}.spinner{animation:spin 1s linear infinite;border:2px solid;border-color:#fff #fff #0000;border-radius:50%;height:3rem;margin:0 auto 1rem;width:3rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.results-content{display:flex;flex-direction:column;gap:1rem}.results-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr;margin-bottom:10px}.result-stat{background:linear-gradient(145deg,#334155,#3a4a5f);border:1px solid #ffffff1a;border-radius:1rem;box-shadow:0 4px 12px #0003;padding:1.5rem;text-align:center}.valid-dots .stat-value{color:#02cc80;color:var(--neon-teal)}.total-components .stat-value,.valid-dots .stat-value{font-family:Teko,sans-serif;font-size:2.5rem;font-weight:500;line-height:1.1}.total-components .stat-value{color:#60a5fa}.stat-label{color:#e2e8f0;font-size:1rem;margin-top:.5rem}.result-details{background:linear-gradient(145deg,#334155,#3a4a5f);border:1px solid #ffffff1a;border-radius:1rem;box-shadow:0 4px 12px #0003;display:flex;flex-direction:column;font-size:.9rem;gap:.4rem;margin:0 0 1rem;padding:1rem}.robust-stats-details{background:#1e293b80;border-radius:.75rem;font-size:1rem;gap:.8rem;margin:1.5rem 0;padding:1rem}.detail-row{display:flex;justify-content:space-between;padding:.2rem 0}.detail-label{color:#02cc80;color:var(--neon-teal);font-weight:500}.detail-value{color:#fff;font-weight:400}.component-stats{margin-top:1rem}.stats-title{font-size:1rem;font-weight:500;margin-bottom:.5rem}.stats-details{color:#94a3b8;display:flex;flex-direction:column;font-size:.75rem;gap:.25rem}.robust-stats-details{display:flex;flex-direction:column;font-size:.9rem;gap:.4rem;margin-top:.5rem}.robust-stats-details .detail-row{align-items:center;display:flex;justify-content:space-between;padding:.2rem 0}.robust-stats-details .detail-label{color:#02cc80;color:var(--neon-teal);font-weight:500}.robust-stats-details .detail-value{color:#fff;font-weight:400}.error-message{align-items:center;background-color:#dc26264d;border-radius:.25rem;color:#fca5a5;display:flex;gap:.5rem;padding:1rem}.error-icon{flex-shrink:0}.robust-results-container,.robust-results-integrated{background:linear-gradient(145deg,#334155,#3a4a5f);border:1px solid #ffffff1a;border-radius:1rem;box-shadow:0 4px 12px #0003;margin-top:10px;padding:1rem}.robust-results-integrated{margin-top:1.5rem}.robust-estimate,.robust-results-integrated{background:linear-gradient(145deg,#334155,#3a4a5f);border:1px solid #ffffff1a;border-radius:1rem;box-shadow:0 4px 12px #0003;padding:1.5rem}.robust-estimate{text-align:center}.stat-item{background-color:#334155;border-radius:.5rem;padding:1rem}.estimate-value{color:#02cc80;color:var(--neon-teal);font-family:Teko,sans-serif;font-size:2.5rem;font-weight:500;line-height:1.1;margin-bottom:.25rem;text-align:center}.estimate-label{color:#94a3b8;font-size:.875rem;font-weight:500;letter-spacing:.5px;margin-bottom:1rem;text-transform:uppercase}.result-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}.action-buttons{display:flex;justify-content:center;margin-top:1.5rem}.action-button{align-items:center;background-color:#8b5cf6;border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.75rem 1.25rem;transition:background-color .3s}.action-button:hover{background-color:#7c3aed}.action-button:disabled{background-color:#6b7280;cursor:not-allowed}.robust-analysis-btn{background:linear-gradient(90deg,#8b5cf6,#6366f1)}.robust.dot-counter-settings-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;background:var(--card-bg);border:1px solid #fff3;border-radius:20px;box-shadow:0 20px 40px #0000001a;box-shadow:var(--panel-shadow);margin-bottom:2rem;padding:1.5rem;position:relative}.robust-results-container{background-color:#334155;border-radius:.5rem;padding:1rem}.robust-stat-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.robust-stat-item.primary{margin-bottom:1.5rem;text-align:center}.robust-stat-label{color:#94a3b8;font-size:.875rem}.robust-stat-value{color:#02cc80;color:var(--neon-teal);font-weight:600}.panel-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.close-button{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:1.5rem;line-height:1}.close-button:hover{color:#e2e8f0}.loading-message{align-items:center;display:flex;flex-direction:column;gap:1rem;padding:2rem 0}.loading-message p{color:#94a3b8;margin-top:1rem}.small-text{font-size:.75rem;opacity:.7}.slider-container{appearance:none;height:20px;margin:1rem 0;position:relative;width:100%}.progress-label{color:#94a3b8;font-size:.75rem;margin-bottom:.25rem}.stats-title{color:#02cc80;color:var(--neon-teal);display:inline-block;font-family:Teko,sans-serif;font-size:1.25rem;margin-bottom:1rem;padding-left:.75rem;position:relative}.image-display-controls{display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem}.area-restriction-controls{background:linear-gradient(145deg,#1e293b,#334155);border:1px solid #3b82f633;border-radius:1rem;padding:1.5rem}.control-section-title{color:#02cc80;color:var(--neon-teal);font-family:Teko,sans-serif;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.drawing-instructions{background:#3b82f61a;border:1px solid #3b82f64d;border-radius:.5rem;margin-bottom:1rem;padding:.75rem}.drawing-instructions p{color:#3b82f6;font-size:.9rem;font-weight:500;margin:0}.area-restriction-buttons{display:flex;flex-wrap:wrap;gap:.75rem}.area-restriction-button{align-items:center;background:linear-gradient(145deg,#3b82f6,#2563eb);border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.6rem 1.2rem;transition:all .2s ease}.area-restriction-button:hover:not(:disabled){background:linear-gradient(145deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.area-restriction-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.area-restriction-button.finish{background:linear-gradient(145deg,#10b981,#059669)}.area-restriction-button.finish:hover:not(:disabled){background:linear-gradient(145deg,#059669,#047857);box-shadow:0 4px 12px #10b9814d}.area-restriction-button.modify{background:linear-gradient(145deg,#f59e0b,#d97706)}.area-restriction-button.modify:hover:not(:disabled){background:linear-gradient(145deg,#d97706,#b45309);box-shadow:0 4px 12px #f59e0b4d}.area-restriction-button.clear{background:linear-gradient(145deg,#ef4444,#dc2626)}.area-restriction-button.clear:hover:not(:disabled){background:linear-gradient(145deg,#dc2626,#b91c1c);box-shadow:0 4px 12px #ef44444d}.restriction-status{background:#10b9811a;border:1px solid #10b9814d;border-radius:.5rem;margin-top:1rem;padding:.75rem}.restriction-status p{color:#10b981;font-size:.9rem;font-weight:500;margin:0}.result-canvas{transition:cursor .2s ease}.result-canvas[style*=crosshair]{cursor:crosshair!important}.stats-title:before{background:linear-gradient(180deg,#00b29c,#02cc80);background:linear-gradient(to bottom,var(--skywave-green),var(--neon-teal));border-radius:2px;content:"";height:100%;left:0;position:absolute;width:4px}.progress-bar{background-color:#e2e8f0;background-color:var(--light-gray);border-radius:3px;height:6px;overflow:hidden}.progress-bar>div{background:linear-gradient(90deg,#00b29c,#02cc80);background:linear-gradient(90deg,var(--skywave-green) 0,var(--neon-teal) 100%);border-radius:3px;height:100%;transition:width .3s ease}.result-card.primary{background:linear-gradient(135deg,#00b29c,#02cc80);background:linear-gradient(135deg,var(--skywave-green),var(--neon-teal));border-radius:20px;box-shadow:0 20px 40px #0000001a;box-shadow:var(--panel-shadow);color:#fff;margin-bottom:1.5rem;padding:2rem;text-align:center}.stat-item .stat-label{color:#94a3b8;font-size:.875rem;margin-bottom:.5rem}.stat-item .stat-value{font-size:1.25rem;font-weight:600}.confidence-bar{background-color:#475569;border-radius:.25rem;height:.5rem;margin-top:.5rem;overflow:hidden}.confidence-level{background:linear-gradient(90deg,#4ade80,#22c55e);border-radius:.25rem;height:100%}.analysis-note{align-items:flex-start;background-color:#334155;border-radius:.5rem;color:#94a3b8;display:flex;font-size:.875rem;gap:.75rem;margin-top:1rem;padding:1rem}.analysis-note svg{flex-shrink:0;margin-top:.125rem}.progress-container{background-color:#ffffff1a;border-radius:.5rem;margin-bottom:1rem;overflow:hidden;width:100%}.progress-bar{background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:.5rem;height:.75rem;transition:width .3s ease}.progress-label{align-items:center;color:#e2e8f0;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.5rem}.progress-label strong{color:#f8fafc}.calculation-status{align-items:center;animation:pulse 2s infinite;color:#e2e8f0;display:flex;font-size:.875rem;gap:.5rem;margin-bottom:1rem}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.cancel-button{background-color:#ef4444;border:none;border-radius:.25rem;color:#fff;cursor:pointer;font-size:.75rem;padding:.25rem .5rem;transition:background-color .2s}.cancel-button:hover{background-color:#dc2626}.confidence-bar.large{height:.75rem;margin-top:.75rem}.robust-stats-details .detail-label[title]{border-bottom:1px dotted var(--neon-teal);cursor:help;position:relative}.robust-stats-details .detail-label[title]:hover{color:#4ade80}.robust-analysis-loading{margin-top:10px}.loading-message{background:linear-gradient(145deg,#334155,#3a4a5f);border:1px solid #ffffff1a;border-radius:1rem;box-shadow:0 4px 12px #0003;color:#fff;padding:1.5rem;text-align:center}.loading-message p{color:#fff;font-size:1.1rem;margin:.5rem 0}.loading-message .small-text{color:#e2e8f0;font-size:.9rem;opacity:.8}.robust-estimate .section-title{color:#fff}.Login_loginContainer__GxM8Q{align-items:center;background-color:#303a39;color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:2rem 1rem}.Login_loginBox__nH5Z4{background-color:#1e2423;border:1px solid #02cc80;border-radius:8px;box-shadow:0 4px 12px #0000004d;margin-bottom:2rem;max-width:400px;padding:2rem;width:100%}.Login_loginBox__nH5Z4 h2{color:#02cc80;font-family:Teko,sans-serif;font-size:2rem;margin-bottom:1.5rem;text-align:center}.Login_formGroup__oORqm{margin-bottom:1.5rem}.Login_formGroup__oORqm label{color:#fff;display:block;font-weight:500;margin-bottom:.5rem}.Login_formGroup__oORqm input{background-color:#2c3534;border:1px solid #444;border-radius:4px;color:#fff;font-size:1rem;padding:.75rem;width:100%}.Login_formGroup__oORqm input:focus{border-color:#02cc80;box-shadow:0 0 0 2px #02cc8033;outline:none}.Login_formGroup__oORqm small{color:#888;display:block;margin-top:5px}.Login_loginButton__lzo6G{background-color:#02cc80;border:none;border-radius:4px;color:#303a39;cursor:pointer;font-size:1rem;font-weight:700;margin-top:1rem;padding:.75rem;transition:background-color .2s;width:100%}.Login_loginButton__lzo6G:hover{background-color:#01b873}.Login_loginButton__lzo6G:disabled{background-color:#444;color:#777;cursor:not-allowed}.Login_error__9xc3b{background-color:#ff6b6b1a;border:1px solid #ff6b6b4d;border-radius:4px;color:#ff6b6b;margin-bottom:1rem;padding:.5rem;text-align:center}.Login_securityInfo__UMiSn{background-color:#02cc801a;border:1px solid #02cc804d;border-radius:8px;margin-top:2rem;max-width:400px;padding:1rem;width:100%}.Login_securityInfo__UMiSn h3{color:#02cc80;font-size:1.2rem;margin-bottom:1rem}.Login_securityInfo__UMiSn ul{margin:0;padding-left:1.5rem}.Login_securityInfo__UMiSn li{color:#ddd;font-size:.9rem;margin-bottom:.5rem}.Login_spinner__YM1Ev{animation:Login_spin__S8-MS 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:1rem;margin-right:.5rem;width:1rem}@keyframes Login_spin__S8-MS{to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.81644d87.css.map*/