html,body{height:100%;margin:0}#map{height:100vh;width:100%}.panel{position:absolute;z-index:1000;top:10px;right:10px;left:auto;max-width:420px;background:#fff;border-radius:12px;box-shadow:0 4px 18px #0000001f;padding:10px;display:grid;gap:8px}.row{display:flex;gap:8px;align-items:center}.row input[type=text]{flex:1;padding:10px 12px;border-radius:10px;border:1px solid #dadada;font-size:14px}.row button{padding:10px 14px;border-radius:10px;border:0;cursor:pointer;font-weight:600}.btn-primary{background:#007acc;color:#fff}.btn-secondary{background:#e9eef5;color:#1b2838}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.status{font-size:13px;color:#666}#results{max-height:220px;overflow:auto;border:1px solid #eee;border-radius:10px;display:none}.result-item{padding:8px 10px;cursor:pointer;border-bottom:1px solid #f4f4f4;font-size:14px}.result-item:hover{background:#f7faff}.result-empty{padding:8px 10px;color:#666;font-size:13px}.badge{font-size:12px;background:#eef6ff;padding:2px 6px;border-radius:6px;margin-left:6px}.selection-meta{font-size:13px;color:#444;display:flex;gap:8px;align-items:center}.ol-popup{position:absolute;background:#fff;padding:10px 12px;border-radius:10px;border:1px solid #ccc;bottom:12px;left:-50px;min-width:260px;box-shadow:0 2px 12px #00000026}.ol-popup:after,.ol-popup:before{top:100%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.ol-popup:after{border-top-color:#fff;border-width:10px;left:48px;margin-left:-10px}.ol-popup:before{border-top-color:#ccc;border-width:11px;left:48px;margin-left:-11px}.ol-popup .close{position:absolute;top:6px;right:8px;text-decoration:none;color:#999;font-weight:700}.ol-popup table{width:100%;border-collapse:collapse;font-size:13px}.ol-popup td{padding:3px 0;vertical-align:top}.ol-popup td.key{color:#666;width:40%}.ol-popup td.val{color:#222}.can-pick{cursor:pointer}.ol-zoom,.ol-home{position:absolute;top:10px;left:10px;display:grid;gap:6px}.ol-home{top:88px}.ol-control button{width:36px;height:36px;line-height:36px;padding:0;background:#fff;color:#1b2838;font-weight:700;font-size:16px;border:1px solid #d9e1ea;border-radius:10px;box-shadow:0 2px 12px #0000001f;cursor:pointer}.ol-control button:hover{background:#f5f9ff}.ol-control button:focus{outline:none}
