svg{border:1px solid black}.line{stroke:#00f;stroke-width:2;pointer-events:none}.selected-dot{stroke:orange;stroke-width:3}.dest-rect{fill:none;stroke:none;stroke-width:2;cursor:none}.loader-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;background-color:#ffffffe6;border-radius:12px}.spinner{border:6px solid #f3f3f3;border-top:6px solid #3498db;border-radius:50%;width:50px;height:50px;animation:spin 1.2s linear infinite;margin-bottom:15px}.loading-map-text{color:#555;font-size:1.1em;font-weight:500}.route{fill:none;stroke:#00ff08;stroke-width:2;stroke-linecap:round}.dashed{stroke-dasharray:5 4;animation:dashmove 1.5s linear infinite}@keyframes dashmove{to{stroke-dashoffset:-25}}.dot{animation:pulse 1.5s infinite;transform-origin:center}@keyframes pulse{0%{r:5;opacity:1}50%{r:10;opacity:.6}to{r:5;opacity:1}}.dotstart{fill:#ff2424;pointer-events:none}.dotend{fill:#2ecc40;pointer-events:none}@keyframes pulse{0%,to{r:6;opacity:.8}50%{r:10;opacity:.4}}.popup-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;display:none;justify-content:center;align-items:center;background:#0006;z-index:1000}.popup{background:#fff;width:90%;max-width:450px;max-height:90vh;border-radius:10px;box-shadow:0 10px 30px #0000004d;display:flex;flex-direction:column;overflow-y:visible!important;opacity:0;transform:scale(.95);transition:opacity .3s ease,transform .3s ease}.popup.popup-show{opacity:1;transform:scale(1)}.popup-header{position:sticky;top:0;background:#fff;z-index:2;padding:12px 16px;font-weight:700;font-size:18px;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;align-items:center}.popup-header span{color:#ef8d04}.popup-close{cursor:pointer;font-size:20px;border:none;background:none;color:#888}.popup-content{padding:16px;overflow-y:auto;flex:1}.popup img{width:100%;border-radius:6px;margin:5px 0}.popup .table-container{max-height:200px;overflow-y:auto;border:1px solid #ccc;border-radius:6px;margin-top:10px}.popup table{width:100%;border-collapse:collapse}.popup table th,.popup table td{border:1px solid #ccc;padding:6px;font-size:14px}.popup table th{background-color:#ef8d04;color:#fff;text-align:left;position:sticky;top:0;z-index:2}.popup-footer{padding:12px 16px;border-top:1px solid #eee;background:#fff;text-align:center}.popup-footer p{font-size:14px;color:#f80;font-style:italic;margin-bottom:8px}.popup-footer .find-btn{background-color:#f80;color:#fff;border:none;padding:8px 16px;font-size:14px;border-radius:5px;cursor:pointer}.popup-footer .find-btn:hover{background-color:#e63a00}#button_layout{position:absolute;top:10px;left:24px;z-index:50;display:flex;gap:5px}.control-btn{background-color:#ffffffec;border:1px solid #bdbdbded;padding:5px;cursor:pointer;display:flex;align-items:center;justify-content:center}.control-btn:hover{background-color:#f0f0f0}.rounded-l{border-top-left-radius:6px;border-bottom-left-radius:6px}.rounded-r{border-top-right-radius:6px;border-bottom-right-radius:6px}.float{padding:0;position:fixed;width:44px;height:44px;bottom:80px;right:40px;background-color:#fff;color:#000;border-radius:50px;text-align:center;box-shadow:5px 5px 5px #494949}
