:root{--ink:#1e2a23;--paper:#faf7f0;--accent:#2f6f4f;--line:#d9d2c4;--muted:#6b7a70}*{box-sizing:border-box}body{margin:0;font-family:Georgia,Times New Roman,serif;color:var(--ink);background:var(--paper);line-height:1.5}a{color:var(--accent)}main{max-width:720px;margin:0 auto;padding:2rem 1.25rem 4rem}h1,h2{font-weight:400}nav.village-nav{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line);align-items:baseline}nav.village-nav .spacer{flex:1 1}nav.village-nav .who{color:var(--muted);font-size:.9rem}table{border-collapse:collapse;width:100%}td,th{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:400;font-size:.9rem}button{font:inherit;padding:.4rem 1rem;border:1px solid var(--ink);background:transparent;border-radius:4px;cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:var(--paper)}.card{border:1px solid var(--line);border-radius:8px;padding:1rem 1.25rem;margin:1rem 0;background:#fffdf8}.muted{color:var(--muted);font-size:.9rem}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.8rem;border:1px solid var(--line)}.badge.on{background:#e5f0e9;border-color:var(--accent);color:var(--accent)}.badge.off{background:#f3efe6;color:var(--muted)}form.inline{display:inline}.pair-code{font-family:monospace;font-size:2rem;letter-spacing:.3em}