:root{--fg:#1c2430;--mut:#6b7686;--line:#d5dbe3;--bg:#f6f8fa;--hdr:26px;--pw:240px}
*{box-sizing:border-box}html,body{margin:0;height:100%;font:11px/1.35 ui-rounded,"SF Pro Rounded","Nunito","Varela Round",system-ui,sans-serif;color:var(--fg);background:var(--bg);overflow:hidden}
header{position:fixed;top:0;left:0;right:0;height:var(--hdr);display:flex;align-items:center;gap:6px;padding:0 10px;border-bottom:1px solid var(--line);background:#fff;z-index:3;white-space:nowrap;overflow:hidden}
.sep{color:var(--mut)}.status{margin-left:auto;padding:1px 7px;border-radius:9px;border:1px solid var(--line);overflow:hidden;text-overflow:ellipsis;max-width:60vw}
.status.wait{background:#fff7e6;border-color:#f0c36d}.status.ok{background:#eaf7ee;border-color:#8fd19e}.status.err{background:#fdecec;border-color:#e59a9a}
.msg{position:fixed;top:calc(var(--hdr) + 6px);left:50px;right:calc(var(--pw) + 10px);z-index:4;padding:4px 8px;border-radius:8px;border:1px solid var(--line);background:#fff;overflow-wrap:anywhere}
.msg.err{border-color:#e59a9a;background:#fdecec}.msg.warn{border-color:#f0c36d;background:#fff7e6}
#map{position:fixed;top:var(--hdr);left:0;right:var(--pw);bottom:0;background:#eef1f4}
#panel{position:fixed;top:var(--hdr);right:0;width:var(--pw);bottom:0;border-left:1px solid var(--line);background:#fff;padding:6px 8px;overflow:auto;z-index:2}
summary{font-weight:600;cursor:pointer;padding:2px 0}
.h{font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:9.5px;color:var(--mut);margin:8px 0 3px}
.row{display:flex;align-items:center;gap:6px;padding:3px 0;min-height:22px}.row input{margin:0;width:14px;height:14px}
.row.gated .lbl{color:var(--mut)}.sw{flex:0 0 18px;height:0;border-top:1px solid}.sw.txt{border-top:0;height:8px;background:repeating-linear-gradient(90deg,#5a2f7a 0 3px,transparent 3px 5px)}
.lbl{flex:1;min-width:0;overflow-wrap:anywhere}.gate{white-space:nowrap}
.muted{color:var(--mut)}.mono{font-family:ui-monospace,Menlo,monospace;font-size:10px;overflow-wrap:anywhere}
.note{font-size:10px;margin:0 0 4px 24px}.src{border-top:1px solid var(--line);padding:3px 0;overflow-wrap:anywhere}
button#retry{margin:6px 0;font:inherit;padding:4px 10px;border-radius:8px;border:1px solid #e59a9a;background:#fff;cursor:pointer}
button#retry:focus-visible,summary:focus-visible,.row input:focus-visible{outline:2px solid #2f7fbf;outline-offset:2px}
.plabel{font-size:10px;color:#5a2f7a;background:rgba(255,255,255,.75);padding:0 3px;border-radius:6px;white-space:nowrap;pointer-events:none}.plabel.cdp{font-style:italic;color:#7a6a8a}
.maplibregl-ctrl-attrib{font-size:9px}
@media (max-width:600px){
  :root{--pw:0px}.hide-sm{display:none}
  #map{right:0;bottom:0}
  #panel{top:auto;left:0;right:0;width:auto;bottom:0;max-height:45vh;border-left:0;border-top:1px solid var(--line);padding:4px 10px}
  .msg{left:8px;right:8px}
  .row{min-height:32px}.row input{width:18px;height:18px}
  .maplibregl-ctrl-bottom-right{bottom:calc(2.2em + 4px)}
}
