:root { color-scheme: light; --ink: #333; --quiet: #777; --link: #1a3e8c; --rule: #ddd; }

* { box-sizing: border-box; }

body {
  margin: 0 auto;
  padding: 1rem 1rem 4rem;
  max-width: 40rem;
  font: 16px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  color: var(--ink);
  background: #fff;
}

a { color: var(--link); }
a:hover { text-decoration: none; }

header { display: flex; flex-wrap: wrap; gap: 0 1rem; align-items: baseline; padding-bottom: .5rem; }
header h1 { margin: 0; font-size: 1.1rem; font-weight: bold; }
header h1 a { color: var(--ink); text-decoration: none; }
header nav { margin-left: auto; display: flex; gap: 1rem; }
footer nav { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .4rem; }

h2 { margin: 1.25rem 0 .5rem; font-size: 1rem; }
p { margin: .5rem 0; }
.quiet { color: var(--quiet); font-size: .85rem; }
.error { margin: .5rem 0; padding: .4rem .6rem; border-left: 3px solid #a00; }
.note { margin: .5rem 0; padding: .4rem .6rem; border-left: 3px solid #999; }

input[type=text], input[type=search], input[type=number] {
  width: 100%;
  padding: .4rem;
  border: 1px solid #aaa;
  font: inherit;
}
label { display: block; margin: .75rem 0 .15rem; }
label.inline { display: inline-block; margin: 0 1rem 0 0; }
button { padding: .4rem .9rem; border: 1px solid #aaa; background: #f4f4f4; font: inherit; cursor: pointer; }
button:hover { background: #eaeaea; }
form.inline { display: inline; }
form.inline button { border: 0; background: none; padding: 0; color: var(--link); cursor: pointer; }
.actions { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }

ul.rows { margin: 0; padding: 0; list-style: none; }
ul.rows li { padding: .6rem 0; border-top: 1px solid var(--rule); }
ul.rows li:last-child { border-bottom: 1px solid var(--rule); }
.row-title { font-weight: bold; }

#map { width: 100%; height: 55vh; min-height: 15rem; border: 1px solid var(--rule); }

footer { margin-top: 2rem; padding-top: .5rem; border-top: 1px solid var(--rule); }
