:root{
  --bg:#f5f7f6; --panel:#fff; --line:#dde5e0; --text:#1c2b23; --muted:#68786e;
  --primary:#1f7a53; --accent:#c8552d; --safe:#2f8f4e; --warn:#c99a1f; --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
.wrap{max-width:820px;margin:0 auto;padding:14px 12px 40px}
h1{font-size:1.15rem;display:flex;align-items:center;gap:8px}
.disc{background:#fff7e6;border:1px solid #ffe0a3;border-radius:10px;padding:9px 12px;font-size:.78rem;color:#6b5100;margin:10px 0}

.filters{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
.chip{font:inherit;font-size:.82rem;font-weight:700;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:999px;padding:7px 12px;cursor:pointer;display:flex;align-items:center;gap:5px}
.chip.on{border-color:var(--primary);background:rgba(31,122,83,.1);color:var(--primary)}

.toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 4px}
.tog{font:inherit;font-size:.8rem;font-weight:700;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;cursor:pointer}
.tog.on{border-color:var(--primary);background:rgba(31,122,83,.1);color:var(--primary)}

.source-note{font-size:.74rem;color:var(--muted);margin:4px 0 10px;line-height:1.5}
.source-note a{color:var(--primary)}

#map{height:60vh;min-height:360px;border-radius:var(--radius);border:1px solid var(--line);z-index:0}
.count-note{font-size:.78rem;color:var(--muted);margin:6px 0 0}

.water-list{margin-top:22px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.water-list h2{font-size:1rem;margin-bottom:4px}
.water-list .hint{font-size:.76rem;color:var(--muted);margin-bottom:8px}
.water-list ul{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}
.water-list li{font-size:.84rem;background:#eef5f0;border-radius:8px;padding:6px 10px}

.pin{width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.pin span{transform:rotate(45deg);font-size:16px;line-height:1}
.pin.shelter{background:var(--primary)}
.pin.evac{background:#2f7db0}
.pin.post{background:var(--accent)}

.pop{min-width:190px}
.pop .cat{font-weight:800;font-size:.92rem;display:flex;align-items:center;gap:5px}
.pop .addr{font-size:.8rem;color:var(--muted);margin:4px 0}
.pop .cmt{font-size:.86rem;margin:4px 0;white-space:pre-wrap;word-break:break-word}
.pop .time{font-size:.72rem;color:var(--muted)}
.pop .tags{margin:6px 0}
.pop .tags .tag{font-size:.7rem;background:#eaf1ff;color:#1f4fa0;padding:2px 8px;border-radius:999px;margin-right:4px;display:inline-block;margin-bottom:4px}
.pop .link{font-size:.78rem;margin-top:6px;display:inline-block}
.pop .acts{display:flex;gap:6px;margin-top:8px}
.pop .acts button{font:inherit;font-size:.76rem;font-weight:700;border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 9px;cursor:pointer;flex:1}
.pop .acts .trust{border-color:var(--safe);color:var(--safe)}
.pop .acts .trust.voted{background:var(--safe);color:#fff}
.pop .acts .report{border-color:var(--accent);color:var(--accent)}
.pop .acts .report.voted{background:var(--accent);color:#fff}

.fab{position:fixed;right:18px;bottom:24px;width:56px;height:56px;border-radius:50%;background:var(--primary);color:#fff;font-size:1.6rem;border:none;box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer;z-index:900;line-height:0}

.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:flex-end;justify-content:center;z-index:1100}
.modal-backdrop[hidden]{display:none}
.modal{background:#fff;border-radius:16px 16px 0 0;padding:18px 18px 24px;width:100%;max-width:480px;max-height:85vh;overflow:auto}
.modal h2{font-size:1.05rem;margin-bottom:6px}
.modal .hint{font-size:.78rem;color:var(--muted);margin-bottom:12px}
.field{margin-bottom:12px}
.field label{font-size:.8rem;font-weight:700;display:block;margin-bottom:5px}
.field select,.field textarea{width:100%;font:inherit;border:1px solid var(--line);border-radius:8px;padding:8px}
.picked{font-size:.84rem;background:#f1f5f2;border-radius:8px;padding:8px 10px;color:var(--muted)}
.picked.set{color:var(--primary);font-weight:700}
.modal-acts{display:flex;gap:10px;margin-top:14px}
.modal-acts button{flex:1;font:inherit;font-weight:700;border-radius:10px;padding:11px;cursor:pointer;border:1px solid var(--line)}
.btn-submit{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-submit:disabled{opacity:.5;cursor:not-allowed}

.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:24px;z-index:1200;background:rgba(28,43,35,.92);color:#fff;font-size:.82rem;font-weight:700;padding:10px 16px;border-radius:10px;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.show{opacity:1}
