*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
header{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;background:#0a3d62;color:#fff}
header h1{font-size:1.05rem;margin:0}
header nav a{color:#cde7ff;margin-left:1rem;text-decoration:none}
#toolbar{display:flex;gap:.6rem;align-items:center;padding:.5rem 1rem;background:#f3f6fa;border-bottom:1px solid #e0e8f4}
#toolbar input[type=search]{flex:1;max-width:520px;padding:.5rem;border:1px solid #cfe0f5;border-radius:.4rem}
#toolbar button{padding:.5rem .75rem;border:1px solid #cfe0f5;border-radius:.4rem;background:#fff;cursor:pointer}
#toolbar .toggle{display:flex;align-items:center;gap:.35rem;color:#0a3d62;font-size:.92rem}
#count{margin-left:auto;color:#555;font-size:.9rem}
#map{height:calc(100dvh - 142px);min-height:420px}
footer{padding:.6rem 1rem;border-top:1px solid #e0e0e0;font-size:.85rem;color:#555}
.leaflet-container{background:#eef3f9}
.leaflet-popup-content h3{margin:.2rem 0 .4rem 0;font-size:1.1rem}
.leaflet-popup-content .short{margin:.2rem 0 .4rem 0;color:#333}
.leaflet-popup-content .details{padding-left:1.2rem;margin:.3rem 0}
.leaflet-popup-content .images{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.4rem}
.leaflet-popup-content .images img{width:110px;height:80px;object-fit:cover;border:1px solid #ccc;border-radius:.25rem}
#panel{position:fixed;top:60px;right:12px;width:min(420px,94vw);max-height:70vh;overflow:auto;background:#fff;border:1px solid #cfe0f5;border-radius:.5rem;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:.75rem;z-index:1000}
#panel[hidden]{display:none}
#closePanel{position:absolute;right:.25rem;top:.25rem;border:none;background:transparent;font-size:1.4rem;cursor:pointer}
.badge{display:inline-block;background:#0a7f00;color:#fff;border-radius:.8rem;padding:.05rem .45rem;margin-right:.35rem;font-weight:700}
.order{font-variant-numeric:tabular-nums}
.legend{position:absolute;left:12px;bottom:14px;background:#fff;border:1px solid #cfe0f5;border-radius:.4rem;padding:.3rem .5rem;box-shadow:0 2px 8px rgba(0,0,0,.08);font-size:.9rem}
.legend .row{display:flex;align-items:center;gap:.4rem;margin:.15rem 0}
.legend .dot{width:14px;height:14px;border-radius:50%}
.legend .green{background:#0a7f00}
.legend .blue{background:#2a69ac}
.legend .red{background:#b12727}
.ticon{background:#0a7f00;color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;box-shadow:0 1px 3px rgba(0,0,0,.35);border:2px solid #fff}
.ticon-wrap{}