:root{--bg:#0f1419;--panel:#1a212b;--panel-2:#232c38;--border:#2e3947;--text:#e7edf4;--muted:#93a1b3;--accent:#5b9dff;--operational:#3dd68c;--under_construction:#f5a524;--announced:#5b9dff;--planned:#a78bfa;--low:#f26d6d}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0}body{font:14px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.app{height:100vh;display:flex}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex:none;width:390px;display:flex;overflow:hidden}.sidebar header{border-bottom:1px solid var(--border);padding:14px 16px 10px}.sidebar header h1{margin:0 0 2px;font-size:16px}.sidebar header p{color:var(--muted);margin:0;font-size:12px}.controls{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 16px;display:flex}.tiers{gap:6px;display:flex}.tiers button{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:1px;padding:7px 4px;display:flex}.tiers button.active{background:var(--accent);border-color:var(--accent);color:#06101f}.tiers button .count{font-size:15px;font-weight:700}.tiers button .label{opacity:.85;font-size:11px}.search{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;width:100%;padding:7px 10px}.statuses{flex-wrap:wrap;gap:6px 12px;display:flex}.statuses label{color:var(--muted);align-items:center;gap:5px;font-size:12.5px;display:flex}.statuses input{accent-color:var(--accent)}.dot{border-radius:50%;width:9px;height:9px;display:inline-block}.list{flex:1;overflow-y:auto}.list-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:var(--panel);justify-content:space-between;padding:6px 16px;font-size:11px;display:flex;position:sticky;top:0}.list-head button{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:0 0;border:none;padding:0;font-size:11px}.row{text-align:left;border:none;border-bottom:1px solid var(--border);background:0 0;grid-template-columns:1fr auto;gap:2px 10px;width:100%;padding:8px 16px;display:grid}.row:hover,.row.selected{background:var(--panel-2)}.row .name{font-weight:600}.row .where{color:var(--muted);grid-column:1;font-size:12px}.row .mw{font-variant-numeric:tabular-nums;font-weight:600}.row .status-tag{text-align:right;font-size:11px}.sidebar footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:10px 16px 10px 70px;display:flex}.sidebar footer button{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:6px 10px}.map-wrap{flex:1;position:relative}.map-wrap .leaflet-container{background:#0b1016;width:100%;height:100%}.legend{z-index:500;border:1px solid var(--border);background:#0f1419eb;border-radius:10px;padding:10px 12px;font-size:12px;position:absolute;bottom:18px;left:12px}.legend h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 6px;font-size:11px}.legend div{align-items:center;gap:6px;margin:3px 0;display:flex}.legend .sizes{color:var(--muted);align-items:center;gap:10px;margin-top:8px;display:flex}.legend .sizes span{align-items:center;gap:4px;display:flex}.details{z-index:500;background:var(--panel);border:1px solid var(--border);border-radius:12px;width:360px;max-height:calc(100% - 24px);padding:14px 16px;position:absolute;top:12px;right:12px;overflow-y:auto;box-shadow:0 8px 30px #0006}.details h2{margin:0 8px 2px 0;font-size:17px}.details .sub{color:var(--muted);margin-bottom:10px}.details .head{align-items:flex-start;display:flex}.details .close{color:var(--muted);background:0 0;border:none;margin-left:auto;font-size:18px}.details dl{grid-template-columns:110px 1fr;gap:4px 8px;margin:0 0 10px;display:grid}.details dt{color:var(--muted)}.details dd{margin:0}.badge{border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.operational{color:var(--operational);background:#143d2b}.badge.under_construction{color:var(--under_construction);background:#3d2e10}.badge.announced{color:var(--announced);background:#12243d}.badge.planned{color:var(--planned);background:#2a2140}.conf-low{color:var(--low);font-weight:600}.details .notes{color:var(--text);margin:6px 0 10px}.details ul{margin:0 0 12px;padding-left:18px}.details a{color:var(--accent)}.danger{color:#ffb4b4;background:#3d1616;border:1px solid #6e2a2a;border-radius:8px;padding:6px 10px}.restore{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-size:12px}.reason{color:var(--muted);font-size:12px}
