* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; font: 14px/1.4 system-ui, sans-serif; }
#map { position: absolute; inset: 0; }

#topbar {
  position: absolute; top: 12px; left: 12px; z-index: 5;
  background: #fff; padding: 8px 12px; border-radius: 6px;
  box-shadow: 0 1px 4px rgba(0,0,0,.3); display: flex; gap: 10px; align-items: center;
}
#topbar #status { color: #666; }
#topbar button { font-size: 12px; }

#panel {
  position: absolute; top: 0; right: 0; z-index: 5; height: 100%;
  width: 340px; background: #fff; box-shadow: -2px 0 8px rgba(0,0,0,.25);
  padding: 16px; overflow-y: auto;
}
#panel h2 { margin: 4px 0 12px; font-size: 16px; }
#panel-close {
  float: right; border: 0; background: none; font-size: 22px;
  cursor: pointer; line-height: 1; color: #888;
}
#panel-body dl { margin: 0; }
#panel-body dt { color: #888; font-size: 12px; margin-top: 10px; }
#panel-body dd { margin: 2px 0 0; word-break: break-all; }
#panel-body .badge {
  display: inline-block; background: #2563eb; color: #fff;
  border-radius: 4px; padding: 2px 8px; font-size: 12px; margin-top: 12px;
}
#panel-body .muted { color: #888; margin-top: 12px; }

#login {
  position: absolute; inset: 0; z-index: 10;
  background: #1e293b; display: flex; align-items: center; justify-content: center;
}
#login form {
  background: #fff; padding: 28px; border-radius: 8px; width: 320px;
  display: flex; flex-direction: column; gap: 10px;
}
#login h2 { margin: 0; }
#login p { margin: 0; color: #555; }
#login input, #login button { padding: 9px 10px; font-size: 14px; }
#login button { background: #2563eb; color: #fff; border: 0; border-radius: 4px; cursor: pointer; }
.error { color: #dc2626; }
