*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:system-ui,sans-serif}
body{display:flex;flex-direction:column}
header{background:#fff;color:#111;padding:8px 12px;display:flex;gap:8px;justify-content:space-between;align-items:center;border-bottom:2px solid #111}
.qei{display:flex;align-items:center;gap:5px;color:#111;font-size:12px;text-decoration:none;font-weight:600}.qei img{height:26px}
.demo{font-size:13px}#demoBanner{background:#7c3aed;color:#fff;text-align:center;font-weight:700;padding:4px}
#map{flex:1;min-height:300px}
#legend{position:absolute;top:60px;right:8px;z-index:500;background:#fffe;padding:6px 8px;border-radius:8px;font-size:12px;max-width:190px}
#legend small{display:block;color:#555}.sw{display:inline-block;width:12px;height:12px;margin:0 3px 0 6px;vertical-align:middle;border-radius:2px}
.sw.out{background:#dc2626}.sw.issues{background:#f59e0b}.sw.restored{background:#16a34a}
#reportBtn{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);z-index:600;font-size:18px;padding:14px 28px;border:0;border-radius:999px;background:#facc15;font-weight:700;box-shadow:0 4px 12px #0005}
footer{font-size:11px;background:#f3f4f6;padding:8px 12px;color:#333}
dialog{width:min(480px,94vw);border:0;border-radius:12px;max-height:90vh}
.opt{display:block;padding:10px;border:1px solid #ddd;border-radius:8px;margin:6px 0;font-size:16px}
fieldset label{display:block;margin:4px 0}.safety{background:#fee2e2;border:1px solid #dc2626;padding:8px;border-radius:6px;margin-top:8px}
#addr{width:100%;padding:8px;margin-top:6px}.small{font-size:12px;color:#555}.row{display:flex;gap:8px;justify-content:flex-end}
.row button,#gps{padding:8px 14px}#msg{font-weight:600}
.ask{margin:8px 0}.askbtn{display:inline-block;background:#111;color:#fff;padding:8px 14px;border-radius:999px;text-decoration:none;font-weight:600;font-size:14px}footer .ask{margin:0 0 6px}footer .askbtn{font-size:12px;padding:5px 10px}
.safety ul{margin:4px 0 0;padding-left:18px}
#note{background:#fef3c7;color:#78350f;text-align:center;font-size:12px;padding:3px}
#legend{top:auto;bottom:220px;right:8px}#reportBtn{bottom:150px}
#updateBar{background:#1e3a8a;color:#fff;padding:8px 10px;font-size:14px}#updateBar .ubtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}#updateBar button{padding:7px 10px;border:0;border-radius:6px;font-weight:600}#updateDismiss{margin-left:auto;background:transparent!important;color:#fff}#updateMsg{display:block;margin-top:4px}#remind{border-top:1px solid #ddd;padding-top:8px}
#counter{background:#fff;border-bottom:1px solid #ddd;padding:6px 10px;font-size:13px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}#counter .muted{color:#666}#counter .sw{margin-left:0}.inview{margin-left:auto;font-size:12px}
.sharebtn,.fbbtn{display:inline-block;border:0;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600;text-decoration:none;cursor:pointer}.sharebtn{background:#facc15;color:#111}.fbbtn{background:#1877f2;color:#fff}.social{margin-bottom:6px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
#reportBtn{bottom:205px}#legend{bottom:270px}
.libtn{display:inline-block;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600;text-decoration:none;background:#0a66c2;color:#fff}
#counter .cbtns .lbl{display:none}#counter .cbtns::after{content:""}#counter .cbtns .fbbtn::before,#counter .cbtns .libtn::before{content:"Follow: "}#counter .cbtns .libtn::before{content:""}

#tabs{display:flex;background:#111827}#tabs .tab{flex:1;border:0;background:transparent;color:#cbd5e1;padding:9px 4px;font-size:14px;font-weight:600;border-bottom:3px solid transparent}
#tabs .tab.active{color:#facc15;border-bottom-color:#facc15}
body.helpmode #counter,body.helpmode #updateBar,body.helpmode #map,body.helpmode #legend,body.helpmode #reportBtn{display:none!important}
#helpView{flex:1;overflow:auto;background:#f9fafb}.hhead{padding:8px 12px}.hhead h2{margin:4px 0}
.hdisc{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:6px 8px;font-size:13px;margin:6px 0}
.hloc{display:flex;gap:6px}.hloc input{flex:1;padding:7px;min-width:0}.hloc button,#suggestBtn{padding:7px 10px}
#chips{display:flex;gap:6px;overflow-x:auto;padding:8px 0}.chip{white-space:nowrap;border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:5px 10px;font-size:13px}
.chip.on{background:#111827;color:#fff;border-color:#111827}.hrow{display:flex;justify-content:space-between;align-items:center;font-size:13px}
#suggestBtn{background:#16a34a;color:#fff;border:0;border-radius:8px;font-weight:600}
#helpMap{height:220px;margin:0 12px;border-radius:8px}
#helpList{padding:8px 12px 16px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px;margin-bottom:10px}
.card h3{margin:0 0 4px;font-size:16px}.card .cats{font-size:12px;margin:3px 0}.card .cats span{background:#eef2ff;border-radius:6px;padding:1px 6px;margin-right:4px;display:inline-block;margin-bottom:2px}
.card .meta{font-size:13px;color:#374151;margin:2px 0}.card .dist{float:right;font-weight:700;color:#111827}.card .demotag{background:#7c3aed;color:#fff;border-radius:4px;padding:0 5px;font-size:11px;margin-left:6px}
.card .acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center;font-size:13px}.card .acts a,.card .acts button{font-size:12px;padding:5px 8px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;text-decoration:none;color:#111}
.card .stale{color:#b45309}.empty{color:#555;text-align:center;padding:20px}
#sform label{display:block;font-size:13px;margin:6px 0}#sform input,#sform textarea{width:100%;padding:7px;margin-top:2px}.catgrid{display:grid;grid-template-columns:1fr 1fr;font-size:13px}
.catgrid label{margin:2px 0!important}.catgrid input{width:auto!important}
