:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{width:100%;overflow-x:hidden}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;width:100%;overflow-x:hidden}#root{width:100%;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.app{width:100%;max-width:100%;margin:0;padding:12px 24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#000;min-height:100vh;box-sizing:border-box}.app-header{text-align:left;margin-bottom:20px;padding:20px;background:linear-gradient(135deg,#409,#a78cfa);color:#f8f8f9;border-radius:12px}.app-header h1{margin:0 0 6px;font-size:2.5rem;font-weight:600}.app-header p{margin:2px 0;font-size:1.1rem;opacity:.9}.app-footer{text-align:center;margin-top:30px;padding:12px;background:linear-gradient(135deg,#409,#a78cfa);color:#f8f8f9;border-radius:12px}.app-footer p{margin:0;font-size:.74rem;opacity:.9}.header-button-container{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.app-main{width:100%}.submit-btn{width:100%;padding:14px 24px;background:linear-gradient(135deg,#409,#a78cfa);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.submit-btn:hover{transform:translateY(-2px);box-shadow:0 6px 12px #667eea4d}.submit-btn:active{transform:translateY(0)}.form-buttons{display:flex;gap:12px;align-items:center;flex-wrap:wrap}@media (max-width: 768px){.form-buttons{flex-direction:column}.form-buttons button{width:100%}}.clear-btn{padding:14px 24px;background:#6b7280;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s ease,transform .2s ease;opacity:.7}.clear-btn:hover{background:#4b5563;opacity:1;transform:translateY(-1px)}.clear-btn:active{transform:translateY(0)}.obtain-previous-btn{padding:14px 24px;background:linear-gradient(135deg,#059669,#10b981);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s ease,transform .2s ease;position:relative;display:flex;align-items:center;justify-content:center;gap:8px}.obtain-previous-btn:hover:not(:disabled){background:linear-gradient(135deg,#047857,#059669);transform:translateY(-1px)}.obtain-previous-btn:active:not(:disabled){transform:translateY(0)}.obtain-previous-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.obtain-previous-btn.loading .button-content{opacity:0}.obtain-previous-btn .button-spinner{position:absolute;display:none}.obtain-previous-btn.loading .button-spinner{display:flex;align-items:center;justify-content:center}.previous-estimates-section{margin-top:2rem;padding:1.5rem;background:#f8f9fa;border-radius:8px;border:1px solid #dee2e6}.previous-estimates-section h3{margin:0 0 1rem;color:#212529;font-size:1.25rem;font-weight:600}.previous-estimates-section .json-response-container{min-height:60px}.previous-estimates-section .loading-state{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;color:#6c757d}.previous-estimates-section .loading-state .spinner-circle{width:24px;height:24px;border:2px solid #f0f0f0;border-top:2px solid #059669;border-radius:50%;animation:spin 1s linear infinite}.previous-estimates-section .error-state{padding:1rem;text-align:center}.previous-estimates-section .json-display pre{margin:0;max-height:400px;overflow-y:auto}.previous-estimates-section .no-data-message{padding:2rem;text-align:center;color:#6c757d;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;font-family:inherit}.previous-estimates-section .no-data-message p:first-child{margin:0 0 .5rem;font-size:1rem;font-weight:500}.previous-estimates-section .no-data-message p:last-child{margin:0;font-size:.875rem}.form-buttons .submit-btn{flex:2}.form-buttons .obtain-previous-btn{flex:1}.form-buttons .clear-btn{flex:0 0 auto}.api-response{background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 6px #0000001a;min-height:200px}.api-response h3{margin:0 0 20px;color:#2c3e50;font-size:1.5rem}.loading-spinner{text-align:center;padding:40px;color:#7f8c8d;font-style:italic}.submit-btn:disabled{opacity:.7;cursor:not-allowed;pointer-events:none}.api-response.loading{text-align:center}.api-response.loading h3{margin-bottom:30px}.error-message{padding:20px;background:#fee;border:1px solid #fcc;border-radius:8px;color:#c33}.api-response.empty p{text-align:center;color:#7f8c8d;font-style:italic;padding:40px 0}.stations-list{display:flex;flex-direction:column;gap:20px}.station-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:20px;transition:transform .2s ease,box-shadow .2s ease}.station-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.station-card h4{margin:0 0 15px;color:#2c3e50;font-size:1.2rem}.station-details{display:flex;flex-direction:column;gap:8px}.detail-row .label{font-weight:500;color:#7f8c8d}.detail-row .value{color:#2c3e50;font-weight:600}.detail-row .value.filepack{font-family:Courier New,monospace;font-size:.9em;background:#e9ecef;padding:4px 8px;border-radius:4px}.tab-container{width:100%;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden}.tab-nav{display:flex;background:#f8f9fa;border-bottom:2px solid #e9ecef;flex-wrap:wrap}.tab-button{flex:1;padding:16px 24px;border:none;background:transparent;color:#6c757d;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s ease;border-bottom:3px solid transparent;min-width:120px;text-align:center}.tab-button:hover{background:#e9ecef;color:#495057}.tab-button.active{background:#fff;color:#24125e;border-bottom-color:#24125e}.tab-content{position:relative}.tab-panel{display:none;padding:30px}.tab-panel.active{display:block}.endpoint-tab{min-height:600px;width:100%}.endpoint-content{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start;width:100%}@media (min-width: 1200px){.endpoint-content{gap:40px}.endpoint-tab{padding:0 20px}}@media (max-width: 768px){.app{padding:8px 12px}.tab-nav{flex-direction:column}.tab-button{flex:none;padding:12px 16px;font-size:14px;min-width:auto;width:100%;border-bottom:1px solid #e9ecef;border-right:none}.tab-button.active{border-bottom:1px solid #24125E;border-left:3px solid #24125E}.endpoint-content{grid-template-columns:1fr;gap:20px}.app-header{flex-direction:column;align-items:flex-start!important;gap:1rem!important}.header-button-container{width:100%;justify-content:flex-start}}@media (max-width: 640px){.header-button-container{gap:8px}.about-button .about-text,.contact-button .contact-text,.user-account-button .account-text{display:none}.about-button,.contact-button,.user-account-button{min-width:auto;padding:6px 8px}}@media (max-width: 480px){.app{padding:4px 8px}.tab-button{font-size:13px;padding:10px 12px}.app-header h1{font-size:2rem}.app-header p{font-size:1rem}.header-button-container{flex-direction:column;align-items:flex-start;gap:8px;width:100%}.about-button,.contact-button,.user-account-button,.logout-button{display:flex;align-items:center;width:auto;min-width:120px}}.placeholder-form{background:#f8f9fa;padding:30px;border-radius:12px;box-shadow:0 4px 6px #0000001a}.placeholder-description{color:#6c757d;font-style:italic;margin-bottom:25px;line-height:1.5}.placeholder-form-content .submit-btn:disabled{background:#6c757d;cursor:not-allowed;opacity:.7}.placeholder-form-content .submit-btn:disabled:hover{transform:none;box-shadow:none}.placeholder-response{background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 6px #0000001a;min-height:200px}.placeholder-response h3{margin:0 0 20px;color:#2c3e50;font-size:1.5rem}.placeholder-content p{color:#7f8c8d;font-style:italic;margin-bottom:20px}.placeholder-json{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:20px;overflow-x:auto}.placeholder-json pre{margin:0;color:#495057;font-family:Courier New,monospace;font-size:14px;line-height:1.5}.weather-station-form{background:#f8f9fa;padding:30px;border-radius:12px;box-shadow:0 4px 6px #0000001a}.weather-station-form h2{margin:0 0 25px;color:#2c3e50;font-size:1.5rem}.weather-station-form p{margin:0 0 25px;color:#6c757d;font-size:.95rem}.epc-match-form{background:#f8f9fa;padding:30px;border-radius:12px;box-shadow:0 4px 6px #0000001a}.epc-match-form h2{margin:0 0 10px;color:#2c3e50;font-size:1.5rem}.epc-match-form p{margin:0 0 25px;color:#6c757d;font-size:.95rem}.form-group{margin-bottom:20px;width:90%}.form-group label{display:flex;flex-direction:column;font-weight:500;color:#34495e;gap:8px}.form-group input{padding:12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:16px;transition:border-color .3s ease}.form-group input:focus{outline:none;border-color:#3bd4ae}.form-group select{padding:16px 50px 16px 20px;border:2px solid #e1e8ed;border-radius:8px;font-size:18px;font-weight:500;background-color:#fff;color:#34495e;transition:all .3s ease;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 16px center;background-size:20px;min-height:50px;width:100%;box-sizing:border-box}.form-group select:focus{outline:none;border-color:#3bd4ae;box-shadow:0 0 0 3px #3bd4ae1a;transform:translateY(-1px)}.form-group select:hover{border-color:#c1c8cd;transform:translateY(-1px)}.form-group select option{padding:12px 16px;font-size:16px;font-weight:400;color:#34495e;background-color:#fff;line-height:1.4}.form-group select[id=house-type],.form-group select[id=construction-period],.form-group select[id=floor-area]{font-size:20px;font-weight:600;padding:18px 60px 18px 24px;min-height:56px;border-width:3px;background-size:24px;background-position:right 18px center}.form-group select[id=house-type]:focus,.form-group select[id=construction-period]:focus,.form-group select[id=floor-area]:focus{border-color:#3bd4ae;box-shadow:0 0 0 4px #3bd4ae26;transform:translateY(-2px)}.form-group select.has-value{border-color:#3bd4ae;background-color:#f8fffe;font-weight:700;color:#2d5016}.form-group select option:checked{background-color:#3bd4ae;color:#fff;font-weight:600}.form-info{margin:15px 0}.form-info p{margin:0;font-style:italic;color:#6c757d;font-size:.85rem}.json-container{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;overflow:hidden}.json-display{margin:0;padding:20px;color:#495057;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.6;background:#f8f9fa;white-space:pre-wrap;word-wrap:break-word;overflow-x:auto;max-height:600px;overflow-y:auto}.json-display{color:#24292e}.json-display .string{color:#032f62}.json-display .number{color:#005cc5}.json-display .boolean{color:#d73a49}.json-display .null{color:#6f42c1}.google-places-input{position:relative;width:100%}.google-places-input input{width:100%;padding:12px 16px;border:2px solid #e9ecef;border-radius:8px;font-size:16px;font-family:inherit;transition:border-color .3s ease,box-shadow .3s ease;background:#fff;color:#2c3e50;font-weight:600}.google-places-input input:focus{outline:none;border-color:#409;box-shadow:0 0 0 3px #4400991a}.google-places-input input::placeholder{color:#6c757d;font-weight:400}.places-loading{position:absolute;top:100%;left:0;right:0;background:#f8f9fa;padding:8px 12px;border:1px solid #e9ecef;border-top:none;border-radius:0 0 8px 8px;font-size:12px;color:#6c757d}.address-suggestions{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e9ecef;border-top:none;border-radius:0 0 8px 8px;max-height:200px;overflow-y:auto;margin:0;padding:0;list-style:none;z-index:1000;box-shadow:0 4px 12px #00000026}.address-suggestions li{padding:12px 16px;cursor:pointer;border-bottom:1px solid #f1f3f4;transition:background-color .2s ease}.address-suggestions li:last-child{border-bottom:none}.address-suggestions li:hover,.address-suggestions li.selected{background-color:#f8f9fa}.address-suggestions li .main-text{font-weight:600;font-size:14px;color:#2c3e50;margin-bottom:2px}.address-suggestions li .secondary-text{font-size:12px;color:#6c757d}.suggestions-loading{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e9ecef;border-top:none;border-radius:0 0 8px 8px;padding:12px 16px;font-size:12px;color:#6c757d;z-index:1000}.form-help{display:block;margin-top:4px;font-size:12px;color:#6c757d;font-style:italic}.form-group input[type=text]{width:100%;padding:12px 16px;border:2px solid #e9ecef;border-radius:8px;font-size:16px;font-family:inherit;transition:border-color .3s ease,box-shadow .3s ease;background:#fff;color:#2c3e50;font-weight:600}.form-group input[type=text]:focus{outline:none;border-color:#409;box-shadow:0 0 0 3px #4400991a}.form-group input[type=text]::placeholder{color:#6c757d;font-weight:400}.numeric-input{width:100%;padding:12px 16px;border:2px solid #e9ecef;border-radius:8px;font-size:16px;font-family:inherit;transition:border-color .3s ease,box-shadow .3s ease;background:#fff;color:#2c3e50;font-weight:600}.numeric-input:focus{outline:none;border-color:#409;box-shadow:0 0 0 3px #4400991a}.numeric-input.default-value{background:linear-gradient(135deg,#e8d5ff,#f0e8ff);border-color:#96c}.numeric-input::placeholder{color:#6c757d;font-weight:400}.login-tab{display:flex;justify-content:center;align-items:flex-start;min-height:500px;padding:30px 20px}.login-main-content{display:flex;flex-direction:column;gap:30px;align-items:center;max-width:100%;width:100%}.login-diagram-section{width:100%;display:flex;justify-content:center;align-items:center}.login-diagram{max-width:100%;width:100%;height:auto}.login-container{background:#f8f9fa;padding:25px 30px;border-radius:12px;box-shadow:0 4px 12px #0000001a;width:100%;max-width:800px;text-align:center}.login-header{margin-bottom:25px}.login-header h2{color:#24125e;margin-bottom:8px;font-size:1.6rem}.login-header p{color:#6c757d;margin-bottom:0;font-size:.9rem}@media (max-width: 768px){.login-tab{padding:15px 10px}.login-main-content{gap:20px}.login-container{max-width:none;padding:20px 15px}.login-form-row{flex-direction:column;gap:15px}.login-button-group{min-width:auto}.login-header h2{font-size:1.4rem}}.login-form{display:flex;flex-direction:column;gap:15px}.login-form-row{display:flex;gap:20px;align-items:end}.login-form .form-group{text-align:left;flex:1}.login-button-group{flex:0 0 auto;min-width:120px}.login-form .form-group label{display:block;margin-bottom:8px;color:#495057;font-weight:500}.login-form .form-group input{width:100%;padding:12px 16px;border:2px solid #e9ecef;border-radius:8px;font-size:16px;transition:border-color .3s ease,box-shadow .3s ease;box-sizing:border-box}.login-form .form-group input:focus{outline:none;border-color:#409;box-shadow:0 0 0 3px #4400991a}.login-form .form-group input:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}.login-button{width:100%;padding:12px 20px;background:linear-gradient(135deg,#409,#a78cfa);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #4400994d}.login-button:disabled{background:#6c757d;cursor:not-allowed;transform:none;box-shadow:none}.login-error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;padding:12px 16px;border-radius:6px;font-size:14px;margin-bottom:16px;text-align:center}.api-status{padding:12px 16px;border-radius:6px;font-size:14px;margin-bottom:16px;text-align:center}.api-status.loading{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.api-status.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.api-status p{margin:4px 0}.login-success{display:flex;justify-content:center;align-items:center;min-height:500px;padding:40px}.success-container{background:#f8f9fa;padding:40px;border-radius:12px;box-shadow:0 4px 12px #0000001a;width:100%;max-width:500px;text-align:center}.success-icon{width:60px;height:60px;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;margin:0 auto 20px}.success-container h2{color:#24125e;margin-bottom:12px;font-size:1.8rem}.success-container p{color:#6c757d;margin-bottom:25px;font-size:1rem}.uuid-display{background:#e9ecef;padding:20px;border-radius:8px;margin-bottom:30px;border-left:4px solid #440099}.uuid-display strong{display:block;color:#495057;margin-bottom:8px;font-size:14px}.uuid-display code{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;color:#409;background:#fff;padding:8px 12px;border-radius:4px;display:block;word-break:break-all}.continue-button{width:100%;padding:14px 24px;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.continue-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #28a7454d}.tab-button.disabled{color:#adb5bd;cursor:not-allowed;background:#f8f9fa}.tab-button.disabled:hover,.tab-button.disabled.active{background:#f8f9fa;color:#adb5bd;border-bottom-color:transparent}.logout-button{background:none!important;border:none!important;color:#a8a8a8!important;text-decoration:underline!important;cursor:pointer!important;font-size:.9em!important;padding:0!important;transition:color .2s ease!important}.logout-button:hover{color:#fff!important;text-decoration:underline!important}.logout-button:active{color:#d0d0d0!important}.epc-data-display{background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin-top:20px}.epc-data-display h3{margin:0 0 25px;color:#2c3e50;font-size:1.5rem;border-bottom:2px solid #440099;padding-bottom:10px}.epc-data-display h4{margin:20px 0 15px;color:#34495e;font-size:1.1rem;font-weight:600}.epc-status-section{margin-bottom:25px;padding:20px;background:#f8f9fa;border-radius:8px;border-left:4px solid #440099}.status-item{display:flex;align-items:center;gap:10px}.status-label{font-weight:600;color:#2c3e50}.status-indicator{display:flex;align-items:center;gap:5px;font-weight:600;font-size:1.1rem}.status-indicator.available{color:#27ae60}.status-indicator.not-available{color:#e74c3c}.status-indicator.active{color:#27ae60}.status-indicator.inactive{color:#f39c12}.status-text{font-size:.9rem}.epc-section{margin-bottom:25px;padding:20px;background:#fdfdfd;border-radius:8px;border:1px solid #e9ecef}.enum-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.enum-option{padding:8px 15px;background:#f1f3f4;border:2px solid #e9ecef;border-radius:20px;font-size:.85rem;font-weight:500;color:#6c757d;transition:all .2s ease;cursor:default}.enum-option[style*="cursor: pointer"]:hover:not(.selected){background:#e9ecef;border-color:#dee2e6;color:#495057;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.enum-option.selected{background:linear-gradient(135deg,#409,#a78cfa);border-color:#409;color:#fff;font-weight:600;transform:translateY(-1px);box-shadow:0 3px 6px #4400994d}.enum-option.prefilled{background:#e3f2fd;border-color:#90caf9;color:#1976d2;font-weight:500}.enum-option.prefilled.selected{background:linear-gradient(135deg,#1976d2,#64b5f6);border-color:#1976d2;color:#fff;font-weight:600;transform:translateY(-1px);box-shadow:0 3px 6px #1976d24d}.enum-option.default-value{background:#f3e5f5;border-color:#ce93d8;color:#7b1fa2;font-weight:500}.enum-option.default-value.selected{background:linear-gradient(135deg,#7b1fa2,#ba68c8);border-color:#7b1fa2;color:#fff;font-weight:600;transform:translateY(-1px);box-shadow:0 3px 6px #7b1fa24d}.simple-value{padding:12px 16px;background:#e8f4fd;border-radius:6px;color:#2c3e50;font-weight:600;font-size:1rem;border-left:4px solid #3498db}.property-details{display:flex;flex-direction:column;gap:12px}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;background:#f8f9fa;border-radius:6px;border-left:3px solid #440099}.detail-label{font-weight:600;color:#6c757d;min-width:100px}.detail-value{color:#2c3e50;font-weight:500;text-align:right;flex:1}.insulation-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.insulation-item{padding:10px 16px;background:linear-gradient(135deg,#e8f5e8,#d4edda);border:2px solid #c3e6cb;border-radius:25px;color:#155724;font-weight:600;font-size:.9rem;box-shadow:0 2px 4px #0000001a}.insulation-item.other{background:linear-gradient(135deg,#e8f4fd,#d1ecf1);border:2px solid #b3d9e6;color:#0c5460}@media (max-width: 768px){.epc-status-section{flex-direction:column;gap:15px}.detail-item{flex-direction:column;align-items:flex-start;gap:5px}.detail-value{text-align:left}.enum-options{gap:6px}.enum-option{font-size:.8rem;padding:6px 12px}}.epc-actions{margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}.action-buttons{display:flex;gap:12px;justify-content:center}.action-button{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:120px}.action-button.primary{background:linear-gradient(135deg,#409,#a78cfa);color:#fff}.action-button.primary:hover{transform:translateY(-2px);box-shadow:0 6px 12px #4400994d}.action-button.secondary{background:#6b7280;color:#fff}.action-button.secondary:hover{background:#4b5563;transform:translateY(-1px)}.action-button:active{transform:translateY(0)}.no-epc-explanation{margin-top:16px;padding:16px;background:#f8fafc}.no-epc-explanation p{margin:0;color:#4a5568;line-height:1.6;font-size:14px}.user-account-tab{padding:20px;max-width:1000px;margin:0 auto}.account-header{margin-bottom:30px;text-align:center}.account-header h2{margin:0 0 8px;color:#333}.account-subtitle{margin:0;color:#666;font-size:.9em}.account-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px}@media (max-width: 768px){.account-info-grid{grid-template-columns:1fr}}.account-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:20px}.account-card h3{margin:0 0 15px;color:#333;font-size:1.1em}.account-details{display:flex;flex-direction:column;gap:12px}.detail-row{display:flex;justify-content:space-between;align-items:center}.detail-label{font-weight:500;color:#555}.detail-value{color:#333}.detail-value code{background:#e9ecef;padding:2px 6px;border-radius:4px;font-size:.85em}.credit-stats{display:flex;justify-content:space-between;gap:15px}.credit-item{text-align:center;flex:1}.credit-value{font-size:2em;font-weight:700;margin-bottom:5px}.credit-value.available{color:#28a745}.credit-value.used{color:#dc3545}.credit-value.total{color:#007bff}.credit-label{font-size:.85em;color:#666}.recent-activity{margin-bottom:30px}.recent-activity h3{margin:0 0 20px;color:#333}.activity-table{border:1px solid #e9ecef;border-radius:8px;overflow:hidden}.activity-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-header,.table-row{display:grid;grid-template-columns:1fr 1fr 100px 100px;gap:15px;padding:12px 15px;align-items:center;min-width:600px}.table-header{background:#f8f9fa;font-weight:600;color:#333;border-bottom:1px solid #e9ecef}.col-timestamp,.col-endpoint,.col-credits,.col-status{color:#333}.table-row{border-bottom:1px solid #f0f0f0;color:#333;background:#fff}.table-row:last-child{border-bottom:none}.table-row:hover{background:#f8f9fa}.mobile-row-item{display:none}@media (max-width: 640px){.activity-table-wrapper{overflow-x:visible}.table-header{display:none}.table-row{display:block;min-width:unset;padding:16px;margin-bottom:12px;border:1px solid #e9ecef;border-radius:8px;background:#fff}.table-row:last-child{border-bottom:1px solid #e9ecef;margin-bottom:0}.table-row:hover{background:#f8f9fa}.mobile-row-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:4px 0}.mobile-row-item:last-child{margin-bottom:0}.mobile-label{font-weight:600;color:#666;font-size:.9em}.mobile-value{color:#333;text-align:right}.col-timestamp,.col-endpoint,.col-credits,.col-status{display:none}}@media (min-width: 641px) and (max-width: 768px){.activity-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-header,.table-row{min-width:550px;grid-template-columns:1.2fr 1fr 90px 90px}}.account-footer{margin-top:20px;padding-top:20px;border-top:1px solid #e9ecef}.disclaimer{color:#6c757d;font-size:.85em;text-align:center;margin:0}.checkbox-group{margin-bottom:16px}.checkbox-group label{display:flex;align-items:center;gap:8px;font-weight:500;cursor:pointer;color:#333}.checkbox-group input[type=checkbox]{width:18px;height:18px;accent-color:#440099;cursor:pointer}.capacity-success-section .heating-requirement-section{margin:20px 0;padding:20px;background:linear-gradient(135deg,#d4edda,#c3e6cb);border-radius:8px;border:1px solid #c3e6cb}.floor-area-section{margin:20px 0;padding:20px;background:linear-gradient(135deg,#e8f4fd,#d1ecf1);border-radius:8px;border:1px solid #bee5eb}.energy-use-section{margin:20px 0;padding:20px;background:linear-gradient(135deg,#fff3cd,#ffeaa7);border-radius:8px;border:1px solid #ffeaa7}.energy-use-section .no-data-message{margin-top:8px;padding:12px;background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;font-style:italic}.capacity-value{display:flex;align-items:baseline;gap:8px;margin-top:12px}.capacity-value .value{font-size:2.5rem;font-weight:700;color:#155724}.capacity-value .unit{font-size:1.2rem;font-weight:600;color:#155724}.capacity-error-section,.capacity-no-data-section{margin:20px 0}.error-message,.no-data-message{margin-top:16px;padding:16px;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24}.info-message{margin-top:16px;padding:16px;background:#d1ecf1;border:1px solid #bee5eb;border-radius:8px;color:#0c5460}.capacity-info{margin-top:16px}.info-item{display:flex;gap:8px;margin-bottom:8px}.info-label{font-weight:600;min-width:120px;color:#155724}.info-text{color:#155724}.boolean-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.boolean-option{padding:8px 15px;background:#f1f3f4;border:2px solid #e9ecef;border-radius:20px;font-size:.85rem;font-weight:500;color:#6c757d;transition:all .2s ease;cursor:pointer;-webkit-user-select:none;user-select:none}.boolean-option:hover{background:#e9ecef;border-color:#dee2e6;color:#495057;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.boolean-option.selected{background:linear-gradient(135deg,#28a745,#20c997);border-color:#28a745;color:#fff;font-weight:600;transform:translateY(-1px);box-shadow:0 3px 6px #28a7454d}.boolean-option.false{background:linear-gradient(135deg,#6c757d,#adb5bd);border-color:#6c757d;color:#fff;font-weight:600;transform:translateY(-1px);box-shadow:0 3px 6px #6c757d4d}.current-selections{margin:15px 0;padding:12px;background:#f8f9fa;border-radius:6px;border-left:4px solid #440099}.current-selections p{margin:0;font-size:12px;color:#666;line-height:1.4}.user-account-button{background:#a78cfa!important;border:2px solid #8B5CF6!important;color:#fff!important;border-radius:16px!important;height:32px!important;cursor:pointer!important;font-size:14px!important;font-weight:500!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;padding:0 12px!important;transition:all .15s ease!important;white-space:nowrap!important}.user-account-button .account-icon{font-size:16px!important;line-height:1!important}.user-account-button .account-text{font-size:13px!important;font-weight:600!important;line-height:1!important}.user-account-button:hover{background:#8b5cf6!important;border-color:#7c3aed!important;transform:translateY(-1px)!important;box-shadow:0 4px 12px #8b5cf64d!important}.user-account-button:active{transform:scale(.95)!important}.user-account-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.user-account-content{background:#fff;border-radius:12px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 30px #0000004d;animation:slideInScale .3s ease-out}@keyframes slideInScale{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.user-account-header{display:flex;justify-content:space-between;align-items:center;padding:24px 30px 0;border-bottom:1px solid #e2e8f0;margin-bottom:0}.user-account-header h2{margin:0;color:#1a202c;font-size:1.5rem;font-weight:600}.close-button{background:none!important;border:none!important;color:#718096!important;font-size:24px!important;cursor:pointer!important;padding:4px!important;border-radius:50%!important;width:32px!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:all .2s ease!important}.close-button:hover{background:#f7fafc!important;color:#2d3748!important}.close-button:active{background:#edf2f7!important}.contact-tab{padding:24px;max-width:500px;margin:0 auto}.contact-container{background:#fff;padding:32px}.contact-message{padding:20px;margin-bottom:32px;border-left:4px solid #007bff}.contact-message p{margin:0;font-size:1.1em;color:#555;line-height:1.6;text-align:left}.contact-info{text-align:left;margin-top:8px}.contact-info p{margin:0;font-size:1.1em;color:#555;line-height:1.6}.contact-info strong{color:#333;font-weight:600}.contact-info code{background:#f8f9fa;padding:4px 8px;border-radius:4px;border:1px solid #e9ecef;font-family:Courier New,monospace;color:#666;font-size:.95em}.contact-button{background:#9b59b6!important;border:2px solid #8E44AD!important;color:#fff!important;border-radius:16px!important;height:32px!important;cursor:pointer!important;font-size:14px!important;font-weight:500!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;padding:0 12px!important;transition:all .15s ease!important;white-space:nowrap!important}.contact-button .contact-icon{font-size:16px!important;line-height:1!important}.contact-button .contact-text{font-size:13px!important;font-weight:600!important;line-height:1!important}.contact-button:hover{background:#8e44ad!important;border-color:#7d3c98!important;transform:translateY(-1px)!important;box-shadow:0 4px 12px #8e44ad4d!important}.contact-button:active{transform:scale(.95)!important}.contact-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.contact-content{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.contact-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0;border-bottom:1px solid #e2e8f0;margin-bottom:20px}.contact-header h2{margin:0;color:#2d3748;font-size:1.5rem;font-weight:600}.about-button{background:#3498db!important;border:2px solid #2980B9!important;color:#fff!important;border-radius:16px!important;height:32px!important;cursor:pointer!important;font-size:14px!important;font-weight:500!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;padding:0 12px!important;transition:all .15s ease!important;white-space:nowrap!important}.about-button .about-icon{font-size:16px!important;line-height:1!important}.about-button .about-text{font-size:13px!important;font-weight:600!important;line-height:1!important}.about-button:hover{background:#2980b9!important;border-color:#21618c!important;transform:translateY(-1px)!important;box-shadow:0 4px 12px #3498db4d!important}.about-button:active{transform:scale(.95)!important}.about-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.about-overlay .about-content{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.about-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0;border-bottom:1px solid #e2e8f0;margin-bottom:20px}.about-header h2{margin:0;color:#2d3748;font-size:1.5rem;font-weight:600}.about-tab{padding:24px;max-width:100%;margin:0 auto}.about-diagram{display:flex;flex-direction:column;gap:20px;padding:0;margin-bottom:40px;width:100%}.service-step{display:flex;align-items:flex-start;gap:20px;margin-bottom:20px}.step-image{flex-shrink:0}.step-description{flex:1;padding:16px 20px;margin-top:8px;margin-left:12px;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:2px solid #cbd5e1;border-radius:16px;position:relative;box-shadow:0 4px 12px #0000001a;transition:all .3s ease}.step-description:before{content:"";position:absolute;left:-12px;top:24px;width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:12px solid #cbd5e1}.step-description:after{content:"";position:absolute;left:-10px;top:25px;width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-right:10px solid #f8fafc}.step-description:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000026;border-color:#a78cfa;background:linear-gradient(135deg,#faf5ff,#f3e8ff)}.step-description:hover:before{border-right-color:#a78cfa}.step-description:hover:after{border-right-color:#faf5ff}.step-description p{margin:0;color:#1e293b;font-size:1rem;line-height:1.6;font-weight:500}.about-tab .about-content{display:block}.about-text{margin:0 auto;max-width:800px;padding:32px 10px}.sequence-diagram{width:98%;height:auto;border-radius:8px;transition:transform .3s ease,box-shadow .3s ease}.sequence-diagram:hover{transform:scale(1.06)}.about-section{margin-bottom:32px;padding:24px 32px;border-radius:12px;border:none;box-shadow:none;transition:none}.about-section:hover{transform:none;box-shadow:none}.about-section:last-child{margin-bottom:0}.about-section h3{color:#24125e;font-size:1.4rem;font-weight:700;margin:0 0 16px;display:block}.about-section p{color:#495057;line-height:1.7;margin:0;font-size:1.1rem;font-weight:400}.about-section ul{margin:12px 0;padding-left:0;list-style:none}.about-section li strong{color:#2d3748;font-weight:600}@media (max-width: 768px){.about-tab{padding:16px}.about-diagram{padding:16px;margin-bottom:32px}.sequence-diagram{width:96%}.about-text{padding:24px 20px}.about-section{padding:20px 24px;margin-bottom:20px}.about-section h3{font-size:1.2rem}.about-section p{font-size:1rem}}.estimate-table{width:100%;border-collapse:collapse;font-size:.75rem;border:1px solid #dee2e6;line-height:1.2}.estimate-table-input-row{background-color:#f8f9fa;color:#495057}.estimate-table-output-row{background-color:#e8f5e8;color:#000;font-weight:600}.estimate-table-cell{padding:.12rem .5rem;border:1px solid #dee2e6}.estimate-table-header-cell{font-weight:500;text-align:right}.estimate-table-output-header-cell{font-weight:600;font-style:italic;text-align:right}.estimate-table-output-value-cell{font-weight:600}.estimate-table-change-indicator-cell{text-align:center;width:25px}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.loading-spinner-container.small{gap:4px}.loading-spinner-container.large{gap:12px}.spinner{position:relative}.spinner-circle{border:2px solid #f0f0f0;border-top:2px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}.loading-spinner-container.small .spinner-circle{width:16px;height:16px;border-width:2px}.loading-spinner-container.medium .spinner-circle{width:24px;height:24px;border-width:3px}.loading-spinner-container.large .spinner-circle{width:32px;height:32px;border-width:4px}.spinner-text{font-size:.9rem;color:#666;font-weight:500}.loading-spinner-container.small .spinner-text{font-size:.8rem}.loading-spinner-container.large .spinner-text{font-size:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.submit-btn.loading{opacity:.7;cursor:not-allowed;position:relative}.submit-btn.loading .button-content{opacity:.7}.submit-btn.loading .button-spinner{display:inline-flex!important;margin-right:8px}.button-spinner{display:none;align-items:center;justify-content:center}.button-spinner .spinner-circle{width:16px;height:16px;border:2px solid currentColor;border-top:2px solid transparent;border-radius:50%;animation:spin 1s linear infinite}
