*{box-sizing:border-box}html,body{margin:0;height:100%;font:14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:#0e1726;color:#e8eef6}
#topbar{padding:10px 16px;border-bottom:1px solid #27374f}#topbar b span{color:#e0a93b}.muted{color:#93a4bd}
#layout{display:grid;grid-template-columns:360px 1fr;height:calc(100vh - 45px)}
#panel{overflow:auto;border-right:1px solid #27374f;padding:12px}
#map{height:100%}
@media(max-width:820px){#layout{grid-template-columns:1fr;height:auto}#map{height:62vh}}
/* panel controls */
#panel label{display:block;font-size:12px;color:#93a4bd;margin:8px 0}
#panel input,#panel select{width:100%;margin-top:3px;background:#0f1a2b;border:1px solid #27374f;color:#e8eef6;border-radius:7px;padding:8px;font:inherit}
#panel h3{font-size:13px;margin:14px 0 6px}
.out{background:#0f1a2b;border:1px solid #27374f;border-radius:8px;padding:10px;font-size:13px}
.out b{color:#e0a93b;font-size:16px}
.bmstatus{font-size:12px;color:#e0723b;margin:4px 0 0;min-height:1em}
/* always-visible result overlay on the map (fixes mobile: panel is off-screen while drawing) */
.mapresult{background:#0c1421ee;border:1px solid #2f4a6a;border-radius:8px;padding:8px 12px;text-align:right;box-shadow:0 2px 10px #0007;backdrop-filter:blur(4px)}
.mapresult b{color:#e0a93b;font-size:18px;display:block;line-height:1.1}
.mapresult span{color:#93a4bd;font-size:11px}
/* address / coordinate search box (on-map control) */
.mapsearch{position:relative;background:#0c1421ee;border:1px solid #2f4a6a;border-radius:8px;padding:4px;display:flex;gap:4px;align-items:center;box-shadow:0 2px 10px #0007;backdrop-filter:blur(4px)}
.mapsearch input{background:#0f1a2b;border:1px solid #27374f;color:#e8eef6;border-radius:6px;padding:6px 8px;font:13px inherit;width:200px;max-width:46vw}
.mapsearch button{background:#1c6feb;color:#fff;border:0;border-radius:6px;padding:6px 10px;cursor:pointer;font-size:15px;line-height:1}
.mapsearch #geomsg:empty{display:none}
.mapsearch #geomsg{position:absolute;top:100%;left:0;margin-top:4px;background:#0c1421f2;border:1px solid #2f4a6a;border-radius:6px;padding:3px 7px;font-size:11px;color:#cbd6e6;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* S2 yield + finance KPIs */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}
.kpi{background:#0f1a2b;border:1px solid #27374f;border-radius:8px;padding:8px;text-align:center}
.kpi b{display:block;color:#e0a93b;font-size:15px}.kpi span{font-size:10px;color:#93a4bd}
button.primary{width:100%;background:#1c6feb;color:#fff;border:0;border-radius:8px;padding:9px;font:inherit;cursor:pointer}
button.primary:disabled{opacity:.6}
.disclaimer{font-size:11px;color:#cbb36a;background:#1f1a0d;border:1px solid #4a3d1a;border-radius:8px;padding:8px;margin-top:10px}
.bom{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}
.bom span{background:#0f1a2b;border:1px solid #27374f;border-radius:6px;padding:2px 6px;font-size:11px;color:#cbd6e6}
.bom i{color:#93a4bd;font-style:normal;margin-right:3px}
#panel input[readonly]{opacity:.7;cursor:not-allowed}
label.chk{display:flex;align-items:center;gap:6px;font-size:12px;color:#93a4bd;margin:6px 0}
label.chk input{width:auto;margin:0}
#panel button:not(.primary){width:100%;background:#27374f;color:#e8eef6;border:1px solid #3a4d68;border-radius:8px;padding:8px;font:inherit;cursor:pointer;margin-top:6px}
#panel button.primary{margin-top:6px}
