:root{--g:#2E9D57;--d:#1d5e36}*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;display:flex;flex-direction:column;height:100vh;color:#1b2a20}
header{display:flex;gap:10px;align-items:center;padding:8px 12px;background:var(--g);color:#fff}header img{width:34px;height:34px;background:#fff;border-radius:8px}header div{flex:1}header small{opacity:.85}
button{background:var(--d);color:#fff;border:0;border-radius:8px;padding:8px 12px;font-weight:600}
#map{flex:1}#a2hs{background:#eaf7ef;padding:8px 12px;font-size:14px}
#sheet,#walks{position:fixed;left:0;right:0;bottom:0;max-height:60vh;overflow:auto;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #0003;padding:16px;z-index:1000}
footer{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border-top:1px solid #ddd}footer input{flex:1;min-width:180px;padding:8px;border:1px solid #ccc;border-radius:8px}footer small{width:100%;color:#666}
.tag{display:inline-block;background:#eaf7ef;color:var(--d);border-radius:6px;padding:2px 6px;margin:2px;font-size:13px}.muted{color:#777;font-size:13px}
#bar{position:relative;display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;background:#f6faf7}#q{flex:1 1 100%;padding:8px;border:1px solid #ccc;border-radius:8px}
.chip{padding:4px 8px;font-size:13px;background:#fff;color:#1b2a20;border:1px solid #2E9D57}.chip.off{opacity:.4;text-decoration:line-through}
#hits{position:absolute;top:44px;left:8px;right:8px;background:#fff;z-index:1100;box-shadow:0 2px 8px #0003;border-radius:8px}#hits div{padding:8px;border-bottom:1px solid #eee;cursor:pointer}
#note{font-size:12px;padding:4px 10px;background:#fff8e6;color:#7a5600}
#toast{position:fixed;top:70px;left:50%;transform:translateX(-50%);background:#1d5e36;color:#fff;padding:8px 14px;border-radius:20px;z-index:2000}
#add{position:fixed;left:0;right:0;bottom:0;background:#fff;z-index:1000;padding:12px;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #0003;display:flex;flex-direction:column;gap:6px}#add[hidden]{display:none}#add input,#add select,.vote input{padding:8px;border:1px solid #ccc;border-radius:8px;width:100%}
.x{float:right}.warn{background:#fff8e6;padding:8px;border-radius:8px;font-size:14px}.s-official{background:#e3f5e9}.s-candidate{background:#fff0d6;color:#7a5600}.s-community{background:#e3edff;color:#1f4ea8}.cv{background:#efe5ff;color:#5a2bb0}
.vote button{margin:4px 2px;background:#fff;color:#1b2a20;border:1px solid #2E9D57}button[disabled]{opacity:.5}
