:root{--bg:#f6f7f9;--pn:#fff;--tx:#1b2430;--mu:#5b6675;--bd:#d6dbe3;--map:#e9edf2;--poly:#ffffff;--polyb:#b9c2cf;--road:#9aa6b6;--ac:#1f5fbf;--warn:#fff4d6;--warnt:#5a4300;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#10151c;--pn:#18202a;--tx:#e6ebf2;--mu:#9aa6b6;--bd:#2a3442;--map:#0e1218;--poly:#151b24;--polyb:#2f3a49;--road:#4b586a;--ac:#6ea8ff;--warn:#3a3014;--warnt:#f3d98a}}
:root[data-theme="dark"]{--bg:#10151c;--pn:#18202a;--tx:#e6ebf2;--mu:#9aa6b6;--bd:#2a3442;--map:#0e1218;--poly:#151b24;--polyb:#2f3a49;--road:#4b586a;--ac:#6ea8ff;--warn:#3a3014;--warnt:#f3d98a}
html,body{height:100%;margin:0;background:var(--bg);color:var(--tx);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
#app{display:flex;height:100%}
#side{width:350px;max-width:100%;overflow:auto;background:var(--pn);border-right:1px solid var(--bd);padding:12px}
#map{flex:1;background:var(--map);min-height:300px}
h1{font-size:16px;margin:0 0 8px}
.warn{background:var(--warn);color:var(--warnt);padding:8px 10px;border-radius:8px;font-size:12.5px;margin-bottom:10px}
label{display:block;font-size:12px;color:var(--mu);margin:8px 0 3px}
select,input[type=search]{width:100%;box-sizing:border-box;padding:7px 8px;border:1px solid var(--bd);border-radius:8px;background:var(--bg);color:var(--tx);font:inherit}
.chk{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px}.chk label{display:inline-flex;gap:4px;align-items:center;margin:0;color:var(--tx)}
#st{margin:10px 0;font-size:13px}#st b{color:var(--ac)}
#res{list-style:none;padding:0;margin:6px 0;max-height:240px;overflow:auto}
#res li{padding:6px 8px;border:1px solid var(--bd);border-radius:8px;margin-bottom:5px;cursor:pointer;font-size:13px}
#res li small{display:block;color:var(--mu)}
details{margin-top:8px;font-size:13px}summary{cursor:pointer;color:var(--ac)}
#un{max-height:160px;overflow:auto;color:var(--mu);margin:6px 0 0;padding-left:18px}
.lg span{display:inline-flex;align-items:center;gap:5px;margin-right:12px;font-size:12px}.lg i{width:11px;height:11px;border-radius:50%;display:inline-block}
.src{font-size:11.5px;color:var(--mu);margin-top:12px}
@media (max-width:800px){#app{flex-direction:column-reverse}#side{width:auto;max-height:52%;border-right:0;border-top:1px solid var(--bd)}}