@import url(https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=DM+Sans:wght@300;400;500;600&display=swap);.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);cursor:default;display:flex;flex-direction:column;gap:6px;padding:16px 18px;transition:border-color .2s,transform .2s}.stat-card:hover{transform:translateY(-2px)}.stat-card--danger{border-left:3px solid var(--danger)}.stat-card--warning{border-left:3px solid var(--warning)}.stat-card--accent{border-left:3px solid var(--accent)}.stat-top{align-items:center;display:flex;justify-content:space-between}.stat-icon{font-size:18px}.stat-value{font-size:22px;font-weight:700;line-height:1}.stat-value--danger{color:var(--danger)}.stat-value--warning{color:var(--warning)}.stat-value--accent{color:var(--accent)}.stat-label{color:var(--text);font-size:12px;font-weight:500;margin-top:4px}.stat-sub{font-size:11px}.map-viewer{display:flex;flex:1 1;flex-direction:column}.map-img-wrap{background:#0a0f1a;flex:1 1;min-height:360px;overflow:hidden;position:relative}.map-img{display:block;height:100%;object-fit:contain;width:100%}.map-placeholder{align-items:center;display:flex;height:100%;justify-content:center;min-height:360px;width:100%}.placeholder-inner{align-items:center;display:flex;flex-direction:column;gap:10px;padding:32px;text-align:center}.placeholder-icon{font-size:40px;opacity:.4}.placeholder-title{color:var(--muted);font-size:14px;font-weight:600}.placeholder-sub{color:var(--muted);font-size:12px;max-width:260px}.placeholder-cmd{background:var(--bg);color:var(--accent);font-family:var(--mono);font-size:11px;margin-top:8px;padding:8px 16px}.map-legend,.placeholder-cmd{border:1px solid var(--border);border-radius:6px}.map-legend{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080c14e0;bottom:12px;min-width:160px;padding:10px 12px;position:absolute;right:12px}.legend-title{color:var(--muted);font-size:10px;letter-spacing:1px;margin-bottom:8px}.legend-row{align-items:center;display:flex;gap:8px;margin-bottom:5px}.legend-swatch{border:1px solid #ffffff1a;border-radius:2px;flex-shrink:0;height:14px;width:14px}.legend-label{color:var(--text);font-size:10px}.map-info-bar{display:flex;flex-direction:column;gap:2px;padding:10px 20px}.map-info-label{color:var(--text);font-size:12px;font-weight:600}.map-info-desc{font-size:11px}.heat-zone-chart{display:flex;flex-direction:column;gap:16px;padding-top:8px}.donut-wrap{margin:0 auto;position:relative;width:160px}.donut-center{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.donut-label{color:var(--muted);font-size:10px;letter-spacing:1.5px}.zone-legend{display:flex;flex-direction:column;gap:6px}.zone-row{align-items:center;display:flex;gap:8px}.zone-swatch{border-radius:2px;flex-shrink:0;height:10px;width:10px}.zone-name{color:var(--text);flex:1 1;font-size:11px}.zone-pct{color:var(--muted);font-size:11px}.chart-loading{color:var(--muted);font-size:12px;padding:20px 0}.chart-empty{align-items:flex-start;gap:10px;padding:12px 0}.chart-empty,.corr-panel{display:flex;flex-direction:column}.corr-panel{gap:16px}.corr-badges{display:flex;flex-wrap:wrap;gap:10px}.corr-badge{background:var(--bg);border:1px solid var(--border);border-radius:6px;display:flex;flex-direction:column;gap:4px;min-width:130px;padding:10px 14px}.corr-badge--wide{flex:1 1;min-width:200px}.badge-label{color:var(--muted);font-size:9px;letter-spacing:1.5px}.badge-value{font-size:14px;font-weight:600}.chart-title{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.4px;margin-bottom:10px;text-transform:uppercase}.lulc-table{overflow-x:auto}.lulc-table table{border-collapse:collapse;font-size:12px;width:100%}.lulc-table th{border-bottom:1px solid var(--border);color:var(--muted);font-size:10px;letter-spacing:.8px;padding:6px 10px;text-align:left;text-transform:uppercase}.lulc-table td{border-bottom:1px solid #ffffff0a;padding:7px 10px}.lulc-table tr:hover td{background:#ffffff05}.deficit-callout{align-items:flex-start;background:#ffab0014;border:1px solid #ffab0040;border-radius:6px;display:flex;gap:12px;padding:12px 14px}.deficit-icon{flex-shrink:0;font-size:22px}.corr-empty{display:flex;flex-direction:column;gap:10px;padding:8px 0}.recs-panel{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.rec-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .15s,border-color .15s}.rec-card:hover{border-color:#2a3a52;transform:translateY(-2px)}.rec-priority{color:#fff;font-size:10px;font-weight:700;letter-spacing:1px;padding:4px 12px;text-transform:uppercase}.rec-body{display:flex;flex-direction:column;gap:6px;padding:14px}.rec-zone{color:var(--text);font-size:13px;font-weight:600}.rec-heat{font-size:11px}.rec-action{color:var(--text);font-size:12px;line-height:1.5;margin-top:4px}.rec-cooling{align-items:center;display:flex;font-size:11px;gap:5px;margin-top:4px}.cooling-icon{font-size:13px}.cooling-val{font-weight:600}.model-metrics{display:flex;flex-direction:column;gap:12px}.model-badge{align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px}.model-name{color:var(--accent);font-size:11px}.model-tag{background:var(--panel);border-radius:10px;color:var(--muted);font-size:10px;padding:2px 8px}.metric-row{display:flex;flex-direction:column;gap:5px}.metric-label{color:var(--muted);font-size:11px}.metric-bar-wrap{align-items:center;display:flex;gap:10px}.metric-bar-track{background:var(--bg);border-radius:3px;flex:1 1;height:6px;overflow:hidden}.metric-bar-fill{border-radius:3px;height:100%;transition:width .8s ease}.metric-val{font-size:12px;font-weight:600;min-width:40px;text-align:right}.metric-divider{background:var(--border);height:1px;margin:2px 0}.features-list{display:flex;flex-direction:column;gap:5px}.features-title{font-size:10px;margin-bottom:2px}.feature-tag{background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:4px 10px}.feature-tag,.target-note{font-size:11px}.metrics-empty{display:flex;flex-direction:column;gap:10px;padding:4px 0}.cmd-hint{background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--accent);font-family:var(--mono);font-size:11px;padding:5px 10px;width:fit-content}.pixel-predictor{gap:14px}.input-group,.pixel-predictor{display:flex;flex-direction:column}.input-group{gap:5px}.input-label{color:var(--muted);display:flex;font-size:11px;font-weight:600;justify-content:space-between;letter-spacing:.5px;text-transform:uppercase}.input-range{font-size:10px}.slider{-webkit-appearance:none;background:var(--border);border-radius:2px;cursor:pointer;height:4px;outline:none;width:100%}.slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border-radius:50%;box-shadow:0 0 8px #00d4aa80;cursor:pointer;height:14px;width:14px}.slider-val{align-self:flex-end;color:var(--accent);font-size:13px;font-weight:700}.select{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-family:var(--sans);font-size:12px;outline:none;padding:8px 12px}.select:focus{border-color:var(--accent)}.predict-btn{background:#00d4aa1f;border:1px solid var(--accent);border-radius:6px;color:var(--accent);cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.3px;padding:10px;transition:all .15s}.predict-btn:hover:not(:disabled){background:#00d4aa38}.predict-btn:disabled{cursor:not-allowed;opacity:.5}.pred-error{background:#ffab0014;border:1px solid #ffab0033;border-radius:6px;color:var(--warning);font-size:11px;padding:8px 12px}.pred-result{background:var(--bg);border:1px solid var(--border);border-left-width:3px;border-radius:8px;display:flex;flex-direction:column;gap:12px;padding:14px}.result-top{align-items:center;display:flex;gap:12px}.result-emoji{font-size:28px}.result-label{font-size:16px;font-weight:700}.result-zone{font-size:11px;margin-top:2px}.prob-bars{display:flex;flex-direction:column;gap:5px}.prob-row{align-items:center;display:flex;gap:8px}.prob-cls{font-size:11px;text-align:right;width:12px}.prob-track{background:var(--border);border-radius:3px;flex:1 1;height:5px;overflow:hidden}.prob-fill{border-radius:3px;height:100%;opacity:.8;transition:width .5s ease}.prob-val{color:var(--muted);font-size:10px;width:28px}.dashboard{display:flex;flex-direction:column;min-height:100vh;padding:0 0 40px}.dash-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;padding:20px 32px;position:sticky;top:0;z-index:100}.dash-header,.header-left{align-items:center;display:flex}.header-left{gap:16px}.logo-mark{align-items:center;display:flex;gap:14px}.logo-icon{font-size:28px}.project-title{color:var(--text);font-size:18px;font-weight:600;letter-spacing:-.3px}.project-sub{color:var(--muted);font-size:11px;margin-top:2px}.header-right{align-items:center;display:flex;gap:12px}.api-badge,.data-badge{align-items:center;border-radius:20px;display:flex;font-size:11px;gap:6px;letter-spacing:.5px;padding:5px 12px}.api-badge{background:var(--panel);border:1px solid var(--border)}.data-badge{background:#00d4aa1a;border:1px solid #00d4aa4d;color:var(--accent)}.status-dot{border-radius:50%;height:7px;width:7px}.status-dot.online{background:var(--accent);box-shadow:0 0 6px var(--accent)}.status-dot.offline{background:var(--danger);box-shadow:0 0 6px var(--danger)}.stat-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(5,1fr);padding:20px 32px 0}.main-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 360px;padding:16px 32px 0}.map-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.panel-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 20px 12px}.panel-title{color:var(--text);font-size:13px;font-weight:600;letter-spacing:.3px}.map-tabs{display:flex;gap:4px}.map-tab{background:#0000;border:1px solid var(--border);border-radius:6px;color:var(--muted);cursor:pointer;font-family:var(--sans);font-size:12px;padding:5px 12px;transition:all .15s}.map-tab.active,.map-tab:hover{border-color:var(--accent);color:var(--accent)}.map-tab.active{background:#00d4aa1f}.map-caption{border-top:1px solid var(--border);font-size:11px;padding:8px 20px}.side-panels{display:flex;flex-direction:column;gap:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.analysis-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 360px;padding:16px 32px 0}.recs-section{padding:16px 32px 0}.dash-footer{border-top:1px solid var(--border);color:var(--muted);font-size:11px;margin-top:32px;padding:16px 32px;text-align:center}@media (max-width:1100px){.stat-row{grid-template-columns:repeat(3,1fr)}.analysis-row,.main-row{grid-template-columns:1fr}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#080c14;--surface:#0f1520;--panel:#141c2a;--border:#1e2d42;--accent:#00d4aa;--accent2:#3d9bff;--danger:#ff4d4d;--warning:#ffab00;--text:#e2e8f0;--muted:#64748b;--mono:"Space Mono",monospace;--sans:"DM Sans",sans-serif;--radius:8px;--shadow:0 4px 24px #0006}body{background:#080c14;background:var(--bg);color:#e2e8f0;color:var(--text);font-family:DM Sans,sans-serif;font-family:var(--sans);font-size:14px;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0f1520;background:var(--surface)}::-webkit-scrollbar-thumb{background:#1e2d42;background:var(--border);border-radius:3px}.app{min-height:100vh}.mono{font-family:Space Mono,monospace;font-family:var(--mono)}.accent{color:#00d4aa;color:var(--accent)}.danger{color:#ff4d4d;color:var(--danger)}.warning{color:#ffab00;color:var(--warning)}.muted{color:#64748b;color:var(--muted);font-size:12px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease forwards}
/*# sourceMappingURL=main.25db9b7a.css.map*/