* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  display: flex; flex-direction: column;
  font: 14px/1.5 -apple-system, "Hiragino Sans", "Yu Gothic UI", sans-serif;
  color: #222;
}
header { padding: 8px 12px; background: #f5f6f7; border-bottom: 1px solid #ccd; position: relative; z-index: 1000; }
#search { display: flex; gap: 6px; flex-wrap: wrap; }
#q { flex: 1 1 260px; min-width: 0; padding: 6px 8px; font-size: 15px; }
select, button, input { font: inherit; }
button { padding: 6px 12px; cursor: pointer; }
button:disabled { cursor: default; }
.opts { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; margin-top: 6px; }
.opts[hidden] { display: none; } /* display:flex が hidden 属性を上書きしてしまうのを防ぐ */
.opts label { white-space: nowrap; }
.group-label { color: #556; font-size: 13px; }
#relief-controls output { display: inline-block; min-width: 3.5em; color: #445; }
.note { margin: 4px 0 0; font-size: 12px; color: #7a5b00; }
.note[hidden] { display: none; }
#status { margin: 6px 0 0; min-height: 1.5em; color: #445; }
#status.error { color: #b00020; }
#candidates {
  position: absolute; left: 12px; right: 12px; top: 46px; margin: 0; padding: 4px 0; list-style: none;
  background: #fff; border: 1px solid #99a; border-radius: 4px; max-width: 520px; box-shadow: 0 4px 12px #0003;
}
#candidates li { padding: 6px 10px; cursor: pointer; }
#candidates li:hover { background: #e8f0fe; }
#map { flex: 1; min-height: 0; background: #fff; }
#map.picking { cursor: crosshair; }
footer { padding: 4px 12px; font-size: 12px; color: #555; background: #f5f6f7; border-top: 1px solid #ccd; }
.lbl {
  background: none; border: none; box-shadow: none; padding: 0;
  font-size: 11px; color: #123; text-shadow: 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff;
}
.lbl::before { display: none; }
.hide-labels .lbl { display: none; }
.seed-lbl {
  background: none; border: none; box-shadow: none; padding: 0;
  font-size: 12px; font-weight: 700; color: #e65100; text-shadow: 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff;
}
.seed-lbl::before { display: none; }
.legend {
  background: #fffe; padding: 6px 10px; border-radius: 4px; box-shadow: 0 1px 4px #0004;
  font-size: 12px; line-height: 1.6;
}
.legend[hidden] { display: none; }
.legend i { display: inline-block; width: 14px; height: 14px; margin-right: 6px; vertical-align: -2px; border: 1px solid #0003; }
