@import "https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#faf8f4;--surface:#fff;--surface2:#f2efe9;--border:#e4ded5;--primary:#2c6e49;--primary-light:#e8f2ec;--primary-dark:#1e4d33;--warm:#c57b3c;--warm-light:#fdf3ea;--red:#c44b4b;--red-light:#fdf0f0;--text:#2d2a26;--muted:#8c857c;--font-display:"DM Serif Display", serif;--font-body:"DM Sans", sans-serif;--font-serif:"Instrument Serif", serif;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 30px #00000014;--radius:12px;--radius-sm:8px}body{background:var(--bg);color:var(--text);font-family:var(--font-body)}.app{background:var(--bg);min-height:100vh;padding:0 0 80px}.header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;border-bottom:1px solid var(--border);background:#faf8f4eb;align-items:center;gap:16px;padding:20px 40px;display:flex;position:sticky;top:0}.logo{font-family:var(--font-display);color:var(--primary);font-size:24px}.logo-version{font-family:var(--font-body);color:var(--muted);letter-spacing:.5px;vertical-align:middle;margin-left:4px;font-size:11px;font-weight:500}.logo-sub{font-family:var(--font-body);color:var(--muted);letter-spacing:1px;font-size:11px}.ticker{color:var(--muted);gap:20px;margin-left:auto;font-size:11px;display:flex}.ticker-item{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.ticker-val{color:var(--primary);font-size:12px;font-weight:600}.main{max-width:880px;margin:0 auto;padding:48px 40px 0}.headline{font-family:var(--font-display);color:var(--text);margin-bottom:12px;font-size:clamp(36px,6vw,56px);line-height:1.1}.headline span{color:var(--primary)}.subhead{font-family:var(--font-serif);color:var(--muted);max-width:480px;margin-bottom:40px;font-size:18px;font-style:italic;line-height:1.6}.search-row{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);gap:0;margin-bottom:12px;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.search-row:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.search-input{font-family:var(--font-body);color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:16px 20px;font-size:15px}.search-input::placeholder{color:var(--muted)}.params-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.param-field{background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border);flex-direction:column;gap:4px;padding:12px 16px;display:flex}.param-label{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:11px;font-weight:500}.param-input{font-family:var(--font-body);color:var(--text);background:0 0;border:none;outline:none;width:100%;font-size:14px}.analyze-btn{background:var(--primary);color:#fff;font-family:var(--font-body);cursor:pointer;white-space:nowrap;letter-spacing:.3px;border:none;padding:0 32px;font-size:15px;font-weight:600;transition:background .15s,transform .1s}.analyze-btn:hover{background:var(--primary-dark)}.analyze-btn:active{transform:scale(.98)}.analyze-btn:disabled{background:var(--border);color:var(--muted);cursor:not-allowed}.loading-state{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);margin-top:48px;padding:32px}.loading-label{color:var(--primary);align-items:center;gap:12px;margin-bottom:20px;font-size:14px;font-weight:600;display:flex}.dot-anim{gap:4px;display:flex}.dot-anim span{background:var(--primary);border-radius:50%;width:6px;height:6px;animation:1.2s infinite blink}.dot-anim span:nth-child(2){animation-delay:.2s}.dot-anim span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:.2}50%{opacity:1}}.loading-steps{flex-direction:column;gap:8px;display:flex}.loading-step{color:var(--muted);border-left:3px solid var(--border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:8px 16px;font-size:13px;transition:all .3s}.loading-step.active{color:var(--text);border-color:var(--primary);background:var(--primary-light)}.loading-step.done{color:var(--primary);border-color:var(--primary)}.result-grid{margin-top:48px;animation:.5s fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.result-header{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding:28px;display:flex}.property-name{font-family:var(--font-display);color:var(--text);margin-bottom:6px;font-size:22px}.property-meta{color:var(--muted);font-size:13px}.data-source-badge{letter-spacing:.5px;text-transform:uppercase;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:10px;font-weight:600;display:inline-flex}.data-source-badge.live{background:var(--primary-light);color:var(--primary)}.data-source-badge.estimated{background:var(--warm-light);color:var(--warm)}.listing-price-block{text-align:right}.listing-price-label{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:4px;font-size:11px;font-weight:500}.listing-price-input{border:none;border-bottom:2px solid var(--border);font-family:var(--font-display);color:var(--text);text-align:right;background:0 0;outline:none;width:200px;padding-bottom:4px;font-size:36px;transition:border-color .2s}.listing-price-input:focus{border-color:var(--primary)}.listing-price-input::placeholder{color:var(--border);font-size:28px}.listing-price-hint{color:var(--muted);margin-top:6px;font-size:10px}.cost-cards{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;display:grid}.cost-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:22px 20px;transition:box-shadow .2s;position:relative;overflow:hidden}.cost-card:hover{box-shadow:var(--shadow-md)}.cost-card-label{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:600}.cost-card-value{font-family:var(--font-display);color:var(--text);margin-bottom:6px;font-size:28px}.cost-card-note{color:var(--muted);font-size:11px;line-height:1.5}.cost-card-icon{opacity:.7;font-size:24px;position:absolute;top:18px;right:18px}.total-bar{background:var(--primary);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);justify-content:space-between;align-items:center;margin-bottom:24px;padding:28px 32px;display:flex}.total-label{font-family:var(--font-body);letter-spacing:.5px;color:#fffc;font-size:16px;font-weight:600}.total-label span{letter-spacing:.5px;opacity:.7;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:500;display:block}.total-value{font-family:var(--font-display);color:#fff;font-size:52px}.total-annual{text-align:right;color:#ffffffb3;font-size:12px}.analysis-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:24px 28px}.analysis-title{text-transform:uppercase;letter-spacing:.5px;color:var(--primary);margin-bottom:12px;font-size:12px;font-weight:600}.analysis-text{font-family:var(--font-serif);color:#5a554e;font-size:16px;line-height:1.8}.disclaimer{color:var(--muted);border-top:1px solid var(--border);margin-top:24px;padding-top:24px;font-size:11px;line-height:1.7}.error-box{background:var(--red-light);color:var(--red);border-radius:var(--radius);border:1px solid #c44b4b33;margin-top:32px;padding:16px 20px;font-size:14px}.breakdown-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 0;font-size:13px;display:flex}.breakdown-row:last-child{border-bottom:none}.breakdown-name{color:var(--muted)}.confidence-badge{letter-spacing:.5px;text-transform:uppercase;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:10px;font-weight:600;display:inline-flex}.confidence-badge.high{color:var(--primary);background:var(--primary-light)}.confidence-badge.medium{color:var(--warm);background:var(--warm-light)}.confidence-badge.low{color:var(--red);background:var(--red-light)}
