:root{--ink:#0f2a3d;--blue:#0077b6;--soft:#eaf6fb;--line:#d8e3e8;--bg:#f7fafb;--danger:#d64045;--ok:#168a5b}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}header{height:72px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1000}.brand{display:flex;gap:10px;align-items:center}.brand strong{font-size:20px;display:block}.brand span{font-size:12px;color:#5f7381;display:block}.drop{font-size:30px}.primary{background:var(--blue);color:white;border:0;border-radius:10px;padding:12px 18px;font-weight:700;cursor:pointer}.hero{padding:34px 4vw 20px;display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.hero h1{font-size:clamp(30px,5vw,52px);line-height:1.02;margin:0 0 14px}.hero p{font-size:17px;color:#506675;max-width:780px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stats div{background:white;border:1px solid var(--line);border-radius:16px;padding:18px}.stats b{font-size:28px;display:block}.stats span{font-size:13px;color:#667b88}.toolbar{padding:0 4vw 16px;display:flex;gap:10px;flex-wrap:wrap}.toolbar select,.toolbar input,.toolbar button,label input,label select,label textarea{border:1px solid #cbd9df;border-radius:9px;background:white;padding:10px;font:inherit}.toolbar input{min-width:260px;flex:1}.toolbar button{cursor:pointer}main{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);height:68vh;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}#map{height:100%;min-height:500px}aside{background:white;overflow:auto;border-left:1px solid var(--line)}.asideHead{padding:16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.asideHead h2{margin:0;font-size:18px}.cards{padding:12px;display:grid;gap:10px}.card{border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;display:grid;grid-template-columns:88px 1fr;gap:12px}.thumb{width:88px;height:76px;border-radius:10px;background:var(--soft);object-fit:cover}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;background:#eef3f5}.badge.active{background:#feecec;color:#a82025}.badge.resolved{background:#e9f8f1;color:#0d6c46}.card h3{margin:5px 0;font-size:15px}.card p{margin:0;color:#677a86;font-size:12px}footer{padding:22px 4vw;color:#6a7d89;font-size:12px}dialog{border:0;border-radius:18px;max-width:760px;width:min(92vw,760px);box-shadow:0 24px 80px #0018;padding:24px}dialog::backdrop{background:#0019}.x{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:28px;cursor:pointer}form label{display:grid;gap:6px;font-size:13px;font-weight:700;margin:11px 0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.muted{color:#6a7d89}.wide{width:100%;margin-top:12px}.locationBox{border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:12px}.locationBox span{display:block;color:#6d7e89;font-size:12px;margin:4px 0 10px}#pickerMap{height:250px;border-radius:10px;margin-bottom:10px}.detailPhoto{width:100%;max-height:320px;object-fit:cover;border-radius:12px}.detailActions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.detailActions button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;font-weight:700;cursor:pointer}.timeline{border-left:2px solid var(--line);padding-left:14px}.timeline div{margin:10px 0}.leaflet-popup-content-wrapper{border-radius:12px}@media(max-width:850px){.hero{grid-template-columns:1fr}.stats{grid-template-columns:repeat(4,1fr)}main{grid-template-columns:1fr;height:auto}#map{height:58vh;min-height:420px}aside{max-height:50vh;border-left:0;border-top:1px solid var(--line)}}@media(max-width:600px){header{padding:0 14px}.brand span{display:none}.hero{padding:24px 14px 14px}.stats{grid-template-columns:repeat(2,1fr)}.toolbar{padding:0 14px 14px}.toolbar>*{width:100%}.grid2{grid-template-columns:1fr}.card{grid-template-columns:72px 1fr}.thumb{width:72px;height:68px}}
