*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--green-900:#0d2b1a;--green-800:#1a4a2e;--green-700:#256638;--green-500:#3a9e5f;--green-300:#7ecb9b;--green-100:#d4f0e0;--amber:#f5a623;--red:#e05c5c;--bg:#0f1f14;--surface:#162b1e;--border:#1e3d28;--text:#e8f5ee;--muted:#7aab8a;--radius:12px}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,system-ui,sans-serif}.app{max-width:1100px;margin:0 auto;padding:2rem 1rem}.app-header{text-align:center;margin-bottom:2.5rem}.logo{justify-content:center;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.logo-icon{font-size:1.8rem}.logo-text{color:var(--green-300);letter-spacing:-.5px;font-size:1.8rem;font-weight:700}.tagline{color:var(--muted);font-size:.95rem}.panels{grid-template-columns:1fr 1fr;align-items:start;gap:1.25rem;display:grid}.weather-column{flex-direction:column;gap:1.25rem;display:flex}@media (width<=720px){.panels{grid-template-columns:1fr}}.location-section{margin-bottom:1.5rem}.coord-form{flex-wrap:wrap;gap:.5rem;display:flex}.coord-form input{background:var(--surface);border:1px solid var(--border);min-width:160px;color:var(--text);border-radius:var(--radius);flex:1;padding:.65rem 1rem;font-size:.9rem}.coord-form input:focus{border-color:var(--green-500);outline:none}.coord-form button,.auto-btn{background:var(--green-700);color:var(--text);border-radius:var(--radius);cursor:pointer;border:none;padding:.65rem 1.25rem;font-size:.9rem;transition:background .2s}.coord-form button:hover,.auto-btn:hover{background:var(--green-500)}.coord-form button:disabled,.auto-btn:disabled{opacity:.5;cursor:not-allowed}.auto-btn{border:1px solid var(--border);background:0 0;margin-top:.5rem}.error{color:var(--red);margin-top:.5rem;font-size:.85rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.card-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.card-header h2{font-size:1rem;font-weight:600}.location-tag{color:var(--muted);font-size:.75rem}.current-weather{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.weather-icon-lg{font-size:3.5rem;line-height:1}.temperature{color:var(--green-300);font-size:2.5rem;font-weight:700}.feels-like{color:var(--muted);margin-top:.2rem;font-size:.8rem;display:block}.weather-stats{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.stat{background:var(--bg);text-align:center;border-radius:8px;padding:.6rem}.stat-label{color:var(--muted);margin-bottom:.2rem;font-size:.7rem;display:block}.stat-value{color:var(--green-300);font-size:.95rem;font-weight:600}.ai-summary{background:var(--bg);border-left:3px solid var(--green-500);border-radius:8px;margin-top:1rem;padding:.75rem}.ai-badge{color:var(--green-500);letter-spacing:.5px;margin-bottom:.4rem;font-size:.7rem;font-weight:600;display:inline-block}.ai-summary p{color:var(--muted);font-size:.85rem;line-height:1.5}.forecast-strip h3{margin-bottom:.75rem;font-size:.9rem;font-weight:600}.forecast-days{gap:.4rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.forecast-day{background:var(--bg);border-radius:8px;flex-direction:column;flex:none;align-items:center;gap:.25rem;min-width:72px;padding:.6rem .75rem;display:flex}.day-label{color:var(--muted);font-size:.7rem}.weather-icon-md{font-size:1.6rem;line-height:1}.day-precip{color:#74b3e8;font-size:.7rem}.day-range{font-size:.75rem;font-weight:600}.badge-pro{background:var(--green-800);color:var(--green-300);border-radius:20px;padding:.2rem .5rem;font-size:.65rem;font-weight:600}.panel-description{color:var(--muted);margin-bottom:1rem;font-size:.82rem;line-height:1.5}.upload-area{margin-bottom:.75rem}.upload-placeholder{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;color:var(--muted);flex-direction:column;gap:.4rem;padding:2rem;font-size:.85rem;transition:border-color .2s;display:flex}.upload-placeholder:hover{border-color:var(--green-500)}.upload-placeholder span:first-child{font-size:2rem}.upload-hint{color:var(--border);font-size:.72rem}.image-preview{object-fit:cover;border-radius:8px;width:100%;max-height:200px}.analyze-btn{background:var(--green-700);width:100%;color:var(--text);border-radius:var(--radius);cursor:pointer;border:none;margin-bottom:1rem;padding:.75rem;font-size:.9rem;font-weight:600;transition:background .2s}.analyze-btn:hover{background:var(--green-500)}.analyze-btn:disabled{opacity:.5;cursor:not-allowed}.tree-results{margin-top:.5rem}.tree-stats{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem;display:grid}.tree-stat{background:var(--bg);text-align:center;border-radius:8px;padding:.75rem}.tree-stat-value{color:var(--green-300);font-size:1.4rem;font-weight:700;display:block}.tree-stat-label{color:var(--muted);font-size:.7rem}.health-breakdown{margin-bottom:1rem}.health-breakdown h4{color:var(--muted);margin-bottom:.5rem;font-size:.82rem}.health-item{border-radius:6px;justify-content:space-between;margin-bottom:.3rem;padding:.4rem .6rem;font-size:.82rem;display:flex}.health-item.healthy{color:var(--green-300);background:#3a9e5f26}.health-item.needs-care{color:var(--amber);background:#f5a62326}.health-item.needs-replacement{color:var(--red);background:#e05c5c26}.recommendations h4{color:var(--muted);margin-bottom:.5rem;font-size:.82rem}.recommendations ul{flex-direction:column;gap:.4rem;list-style:none;display:flex}.recommendations li{background:var(--bg);border-left:2px solid var(--green-500);border-radius:6px;padding:.5rem .6rem;font-size:.82rem;line-height:1.4}.overlay-image{margin-top:1rem}.overlay-image h4{color:var(--muted);margin-bottom:.5rem;font-size:.82rem}.overlay-image img{border-radius:8px;width:100%}.insight-banner{background:linear-gradient(135deg, var(--green-900), var(--surface));border:1px solid var(--green-700);border-radius:var(--radius);margin-bottom:1.25rem;padding:1rem 1.25rem}.insight-header{color:var(--green-300);letter-spacing:.5px;align-items:center;gap:.4rem;margin-bottom:.6rem;font-size:.8rem;font-weight:700;display:flex}.insight-list{flex-direction:column;gap:.4rem;list-style:none;display:flex}.insight-list li{color:var(--text);font-size:.85rem;line-height:1.5}.upload-area{border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;margin-bottom:.75rem;transition:border-color .2s,background .2s}.upload-area:hover,.upload-area.dragging{border-color:var(--green-500);background:#3a9e5f0d}.upload-area.has-preview{cursor:default;border-style:solid}.upload-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;height:70vh;padding:2.5rem 1rem;display:flex}.upload-icon{color:var(--green-500);margin-bottom:.25rem}.upload-label{color:var(--text);font-size:.9rem;font-weight:500}.upload-sub{color:var(--muted);font-size:.8rem}.upload-hint{color:var(--border);margin-top:.15rem;font-size:.72rem}.preview-wrapper{position:relative}.image-preview{border-radius:calc(var(--radius) - 2px);object-fit:cover;width:100%;max-height:220px;display:block}.clear-btn{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:background .2s;display:flex;position:absolute;top:.5rem;right:.5rem}.clear-btn:hover{background:var(--red)}.analyze-btn{justify-content:center;align-items:center;gap:.4rem;display:flex}
