:root{--ink:#10222f;--bg:#eef1f3;--line:#d3dae0;--ac:#0b7a75;font:14px/1.4 "Segoe UI Variable","Segoe UI",system-ui,sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}
#login{max-width:420px;margin:15vh auto;padding:0 20px}#lmsg{color:#b3261e}
#app{display:grid;grid-template-columns:390px 1fr;height:100vh}
#map{height:100%;min-height:0}
aside{display:flex;flex-direction:column;background:var(--bg);border-right:1px solid var(--line);min-height:0}
header{background:var(--ink);color:#fff;padding:10px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
header span{font-size:12px;opacity:.75}#st{margin-left:auto}header .btn{padding:2px 8px;font-size:12px}
nav{display:flex;border-bottom:1px solid var(--line)}
nav button{flex:1;border:0;background:none;padding:9px 2px;font-size:13px;cursor:pointer;font:inherit;border-bottom:3px solid transparent}
nav .on{border-color:var(--ac);font-weight:600}
#panel{overflow:auto;padding:4px 14px 20px;flex:1}
h3{margin:18px 0 6px;font-size:13px}
label{display:block;font-size:12px;margin:7px 0 2px}
input,select,textarea,button{font:inherit}
input,select,textarea{width:100%;padding:5px 7px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink)}
input[type=color]{padding:1px;height:30px}
:focus-visible{outline:2px solid var(--ac);outline-offset:1px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}
.btn{padding:6px 10px;border:1px solid var(--ink);background:#fff;border-radius:4px;cursor:pointer;color:var(--ink)}
.btn:disabled{opacity:.4;cursor:default}.btn.p{background:var(--ac);border-color:var(--ac);color:#fff}.btn.on{outline:2px solid var(--ac)}
.item{display:flex;gap:8px;align-items:center;padding:5px 6px;border-radius:4px;cursor:pointer}.item:hover,.item.on{background:#fff}
.dot,.pin{width:22px;height:22px;border-radius:50%;color:#fff;font:600 11px/19px "Segoe UI",sans-serif;text-align:center;border:2px solid #fff;box-shadow:0 0 0 1px #0007;flex:none}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
td,th{padding:3px 4px;text-align:left;border-bottom:1px solid var(--line);font-weight:400}
th{font-size:12px;color:#51616d}td.n,th.n{text-align:right}td input{padding:3px 4px}
.bar{height:6px;background:var(--line);border-radius:3px}.bar i{display:block;height:100%;border-radius:3px}
.warn{background:#fff3cd;border-left:4px solid #c88a00;padding:6px 8px;margin:8px 0}
fieldset{border:0;padding:0;margin:0;min-width:0}
@media(max-width:800px){#app{grid-template-columns:1fr;grid-template-rows:50vh 50vh}#map{order:-1}}
