*{box-sizing:border-box}body{margin:0;font:14px system-ui;background:#f1f5f9;color:#0f172a}header{height:64px;background:#0f172a;color:#fff;display:flex;align-items:center;gap:10px;padding:10px 16px}header b{font-size:18px;margin-right:auto}header input{width:240px}header a{color:#fff}.upload,button{padding:9px 11px;border:0;border-radius:9px;background:#e2e8f0;cursor:pointer}.upload{background:#10b981;color:#052e16;font-weight:bold}main{height:calc(100vh - 64px);display:grid;grid-template-columns:310px 1fr 360px}aside,section{background:#fff;padding:12px;overflow:auto}#map{height:100%}nav{display:flex;gap:5px}nav button{flex:1}nav .active{background:#2563eb;color:#fff}#sum{padding:12px;color:#64748b}.card{border:1px solid #ddd;border-radius:12px;padding:11px;margin:8px 0;cursor:pointer}.card.on{background:#eff6ff;border-color:#2563eb}.meta{color:#64748b;font-size:12px;margin-top:5px}input,textarea,select{width:100%;padding:9px;border:1px solid #cbd5e1;border-radius:8px}.field{display:block;margin:10px 0}.field small{display:block}.metrics{display:flex;gap:5px}.metrics div{flex:1;background:#f1f5f9;padding:9px;text-align:center;border-radius:9px}.block{border-top:1px solid #ddd;margin-top:14px;padding-top:12px}.star{font-size:20px;background:none;padding:2px;color:#bbb}.star.on{color:#f59e0b}.haz{background:#fffbeb;padding:7px;margin:5px 0}.photo img{width:100%;border-radius:8px}.danger{background:#fee2e2;color:#991b1b}dialog{border:0;border-radius:15px;width:min(600px,90%)}.login{display:grid;place-items:center;height:100vh;background:#0f172a}.loginbox{background:#fff;padding:28px;border-radius:18px;width:min(390px,90vw)}.loginbox label{display:block;margin:12px 0}.loginbox button{width:100%;background:#10b981;font-weight:bold}.error{background:#fee2e2;color:#991b1b;padding:10px;border-radius:8px}@media(max-width:900px){main{grid-template-columns:240px 1fr}section{position:fixed;right:0;top:64px;bottom:0;width:360px;z-index:500;box-shadow:-4px 0 15px #0003}}@media(max-width:650px){aside{display:none}main{grid-template-columns:1fr}section{width:92%}}
