html,body{margin:0;height:100%;font:16px system-ui,sans-serif;background:#111;color:#eee}
#map{position:absolute;inset:0}
#panel{position:absolute;top:10px;left:10px;width:330px;max-height:calc(100% - 20px);overflow:auto;background:rgba(20,20,24,.92);border-radius:12px;padding:14px;box-sizing:border-box;z-index:5}
h1{margin:0 0 6px;font-size:22px} h1 small{font-size:12px;color:#aaa} h2{font-size:16px;margin:8px 0}
label{display:block;margin:6px 0;font-size:13px;color:#bbb} input{display:block;width:100%;box-sizing:border-box;padding:9px;font-size:16px;border-radius:8px;border:1px solid #444;background:#222;color:#eee}
input[type=color]{height:40px;padding:2px}
button{padding:10px 14px;font-size:15px;border-radius:8px;border:0;background:#2b7cff;color:#fff;margin:4px 4px 0 0;cursor:pointer}
button.danger{background:#c33} hr{border:0;border-top:1px solid #333;margin:12px 0}
.warn{background:#4a3a00;color:#ffd75a;padding:6px 8px;border-radius:6px;font-size:13px}
.err{color:#ff7070}.muted{color:#999;font-size:12px}.foot{margin-top:10px}
#cars{list-style:none;padding:0;margin:8px 0} #cars li{display:flex;align-items:center;gap:8px;padding:4px 0}
#cars .dot{width:12px;height:12px;border-radius:50%} #cars .stale{opacity:.45}
#qr{background:#fff;padding:8px;border-radius:8px;width:max-content;margin:8px 0}
.car{width:34px;height:34px;transition:opacity .4s}.car.stale{filter:grayscale(1);opacity:.55}
.car .lbl{position:absolute;top:34px;left:50%;transform:translateX(-50%);white-space:nowrap;font:600 12px system-ui;background:rgba(0,0,0,.7);color:#fff;padding:1px 5px;border-radius:4px}
@media (max-width:600px){#panel{width:calc(100% - 20px);max-height:45%}}
