:root{--ink:#10221c;--muted:#60716b;--paper:#f3f7f4;--green:#16784a;--red:#d83232;--yellow:#f1b91f;--line:#d9e4de}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}header{height:76px;padding:12px 24px;background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}h1{font-size:25px;line-height:1.05;margin:3px 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-size:11px;font-weight:800}.login-link,.back{color:var(--green);font-weight:700;text-decoration:none}.demo{padding:7px 18px;background:#fff2bb;text-align:center;font-size:13px;font-weight:700}.public-layout{height:calc(100vh - 117px);position:relative}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 38px #193b2b18}.controls{position:absolute;z-index:500;left:16px;top:16px;width:340px;max-height:calc(100% - 32px);padding:16px;overflow:auto}label{display:block;color:var(--muted);font-size:12px;font-weight:700}input,select,button{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;font:inherit;color:var(--ink)}label input{margin-top:5px}.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.filters .check{grid-column:1/-1;display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}.stat{padding:9px 5px;text-align:center;background:var(--paper);border-radius:10px}.stat b{display:block;font-size:19px}.stat small{font-size:10px;color:var(--muted)}.legend>div{display:flex;gap:9px;margin:9px 0;align-items:flex-start}.legend span{display:flex;flex-direction:column}.legend small{color:var(--muted)}.dot{width:14px;height:14px;border-radius:50%;margin-top:3px;flex:0 0 auto}.red{background:var(--red)}.yellow{background:var(--yellow)}.green{background:var(--green)}#map{height:100%;width:100%;background:#dfe9e4}.building-card{position:absolute;right:16px;top:16px;z-index:500;width:320px;padding:18px;background:#fff;border-radius:16px;box-shadow:0 15px 50px #10221c33}.building-card h2{font-size:18px;margin:4px 0 12px}.building-card dl{display:grid;grid-template-columns:1fr auto;gap:6px;margin:0}.building-card dt{color:var(--muted)}.building-card dd{margin:0;font-weight:700}.hidden{display:none}footer{height:41px;background:#fff;border-top:1px solid var(--line);padding:10px 18px;display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}footer a{color:inherit}.auth{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 20%,#cfe8d9,transparent 38%),var(--paper)}.auth-card{width:min(430px,100%);padding:28px}.auth-card p{color:var(--muted)}.auth-card label{margin:14px 0}.auth-card button,button{background:var(--green);color:#fff;border:0;font-weight:800;cursor:pointer}.error{padding:10px;background:#fee0e0;color:#8c1919;border-radius:9px}.ghost{width:auto;background:#edf4ef;color:var(--green)}.dashboard{padding:18px;max-width:1500px;margin:auto}.dashboard nav{display:flex;gap:8px;margin-bottom:12px}.dashboard nav button{width:auto;background:#e5eee8;color:var(--ink)}.dashboard nav button.active{background:var(--green);color:#fff}.dash-content{padding:16px;overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:9px;border-bottom:1px solid var(--line);vertical-align:top}.table th{font-size:11px;text-transform:uppercase;color:var(--muted)}.table button{width:auto;padding:6px 9px}.badge{padding:3px 7px;border-radius:99px;color:#fff;font-size:11px;font-weight:800}.badge.YELLOW{color:#4e3a00}.leaflet-control-attribution{display:none!important}@media(max-width:760px){header{height:64px;padding:9px 12px}header h1{font-size:20px}.login-link{font-size:12px}.public-layout{height:calc(100vh - 137px)}.controls{left:8px;right:8px;top:8px;width:auto;max-height:215px}.building-card{left:8px;right:8px;top:auto;bottom:8px;width:auto;max-height:45%;overflow:auto}.legend{display:none}footer{height:58px;display:block;padding:7px 10px}.dashboard{padding:8px}.dashboard nav{overflow:auto}.table{min-width:800px}.dash-content{padding:8px}}
