*{margin:0;padding:0;box-sizing:border-box}
body{font-family:system-ui,sans-serif;
  background:#1a1a2e;color:#eee;overflow:hidden}
#canvas{display:block;width:100vw;height:100vh}
#top-bar{position:fixed;top:0;left:0;right:0;
  height:48px;background:rgba(16,16,40,0.9);
  display:flex;align-items:center;padding:0 16px;
  z-index:10;gap:16px;border-bottom:1px solid #333}
#top-bar h1{font-size:16px;white-space:nowrap}
#chips{display:flex;gap:8px;font-size:12px}
.chip{background:#2a2a4a;padding:4px 10px;
  border-radius:12px;white-space:nowrap}
#sidebar{position:fixed;top:48px;left:0;width:220px;
  bottom:0;background:rgba(16,16,40,0.92);
  padding:16px;overflow-y:auto;z-index:10;
  border-right:1px solid #333}
#sidebar h3{font-size:13px;margin:12px 0 6px;
  color:#aaa;text-transform:uppercase}
#sidebar select{width:100%;padding:6px;
  background:#2a2a4a;color:#eee;border:1px solid #444;
  border-radius:4px;font-size:14px}
#sidebar label{font-size:13px;cursor:pointer}
.radio-group label{display:block;margin:3px 0}
#legend{margin-top:16px}
#legend canvas{width:100%;height:20px;border-radius:3px}
.legend-labels{display:flex;justify-content:space-between;
  font-size:11px;color:#888;margin-top:2px}
#tooltip{position:fixed;pointer-events:none;
  background:rgba(0,0,0,0.85);padding:8px 12px;
  border-radius:6px;font-size:13px;z-index:20;
  border:1px solid #555;max-width:250px}
#info-panel{position:fixed;top:48px;right:0;
  width:300px;bottom:0;background:rgba(16,16,40,0.95);
  padding:16px;overflow-y:auto;z-index:10;
  border-left:1px solid #333}
#info-panel h2{font-size:15px;margin-bottom:8px}
#info-panel .land{color:#888;font-size:12px}
.bar-row{display:flex;align-items:center;
  margin:3px 0;font-size:12px}
.bar-label{width:80px;text-align:right;
  padding-right:8px;color:#ccc}
.bar-bg{flex:1;height:14px;background:#222;
  border-radius:3px;overflow:hidden}
.bar-fill{height:100%;border-radius:3px}
.bar-val{width:45px;padding-left:6px;color:#aaa}
.hidden{display:none}
