 :root { --bg:#fafafa; --text:#111; --muted:#555; --border:#ddd; --accent:#1a4d8f; }
* { box-sizing:border-box; }
body { margin:0; font-family:Georgia, serif; background:var(--bg); color:var(--text); line-height:1.5; }
.wrap { max-width:960px; margin:0 auto; padding:1.25rem; }
.site-header { border-bottom:1px solid var(--border); background:#fff; }
.site-header .wrap { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.brand { font-weight:700; text-decoration:none; color:var(--text); }
nav { display:flex; gap:1rem; flex-wrap:wrap; }
nav a { color:var(--accent); text-decoration:none; font-family:-apple-system,sans-serif; font-size:.95rem; }
h1,h2 { font-family:-apple-system,sans-serif; }
.lead { font-size:1.15rem; color:var(--muted); max-width:42rem; }
.actions { display:flex; gap:.75rem; flex-wrap:wrap; margin:1.5rem 0; }
.btn { display:inline-block; padding:.65rem 1rem; border:1px solid var(--text); text-decoration:none; color:var(--text); font-family:-apple-system,sans-serif; }
.btn-primary { background:var(--accent); color:#fff; border-color:var(--accent); }
.notice { border-left:3px solid var(--accent); padding:.75rem 1rem; background:#fff; margin:1rem 0; }
table { width:100%; border-collapse:collapse; font-size:.95rem; }
th,td { border-bottom:1px solid var(--border); padding:.5rem; text-align:left; vertical-align:top; }
input,select,textarea { width:100%; padding:.5rem; border:1px solid var(--border); font:inherit; }
label { display:block; margin:.75rem 0 .25rem; font-family:-apple-system,sans-serif; font-size:.9rem; }
#map { height:70vh; border:1px solid var(--border); background:#eee; }
.site-footer { border-top:1px solid var(--border); color:var(--muted); font-size:.9rem; margin-top:2rem; }
