#map {
    width: 100%;
    height: 100vh;
    position: relative;
}

.station-marker {
    background: #fff;
    border-radius: 50%;
    border: 3px solid gray;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

    .station-marker.open {
        border-color: green;
    }

    .station-marker.closed {
        border-color: red;
    }

#gasStationsPanel {
    position: fixed;
    top: 0;
    right: 0;
    width: 350px;
    height: 100vh;
    background: #fff;
    box-shadow: -2px 0 8px rgba(0,0,0,.2);
    transform: translateX(100%);
    transition: transform .3s;
    z-index: 9999;
    overflow-y: auto;
}

    #gasStationsPanel.open {
        transform: translateX(0);
    }

    #gasStationsPanel::-webkit-scrollbar {
        width: 14px;
    }

    #gasStationsPanel::-webkit-scrollbar-track {
        background: #f1f1f1;
        border-radius: 8px;
    }

    #gasStationsPanel::-webkit-scrollbar-thumb {
        background: #fe6d04;
        border-radius: 8px;
        border: 3px solid #f1f1f1;
    }

        #gasStationsPanel::-webkit-scrollbar-thumb:hover {
            background: #e45d00;
        }

.floating-btn {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 50;
    background: #fe6d04;
    color: #fff;
    border: none;
    border-radius: 999px;
    padding: .9rem 1.4rem;
    box-shadow: 0 6px 18px rgba(0,0,0,.2);
    font-weight: 700;
    cursor: pointer;
}

/* Dock flotante */
#uiDock {
    position: absolute;
    right: 14px;
    bottom: 50%;
    z-index: 1100;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dock-btn {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    cursor: pointer;
    background: rgba(255,255,255,.92);
    border: 1px solid #e5e7eb;
    box-shadow: 0 6px 18px rgba(0,0,0,.08);
    backdrop-filter: saturate(120%) blur(4px);
    display: grid;
    place-items: center;
    font-size: 20px;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

    .dock-btn:hover {
        transform: translateY(-1px);
        box-shadow: 0 10px 24px rgba(0,0,0,.12);
    }

    .dock-btn.active {
        outline: 2px solid var(--guillo, #fe6d04);
    }

#routeForm {
    transition: transform .28s ease, opacity .28s ease;
    will-change: transform, opacity;
}

    #routeForm.is-collapsed {
        transform: translateY(-120%);
        opacity: 0;
        pointer-events: none;
    }

/* Cualquier UI del radar marcada con data-rain-ui */
[data-rain-ui] {
    transition: opacity .22s ease, transform .22s ease;
}

    [data-rain-ui].is-hidden {
        opacity: 0;
        transform: translateY(12px);
        pointer-events: none;
    }

/* Prompt de proximidad */
#wsProximityPrompt {
    position: absolute;
    left: 50%;
    bottom: 30px;
    transform: translateX(-50%);
    z-index: 1200;
    display: none;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,.12);
    padding: 10px 12px;
    font-size: 14px;
    color: #111827;
}

    #wsProximityPrompt .title {
        font-weight: 700;
    }

    #wsProximityPrompt .name {
        color: #4b5563;
    }

    #wsProximityPrompt .actions {
        display: flex;
        gap: 8px;
        margin-left: auto;
    }

    #wsProximityPrompt .btn {
        padding: 6px 10px;
        border-radius: 8px;
        cursor: pointer;
        border: 1px solid #e5e7eb;
        background: #fff;
    }

        #wsProximityPrompt .btn.primary {
            background: var(--guillo,#fe6d04);
            color: #fff;
            border-color: #fe6d04;
        }

    #wsProximityPrompt .close {
        border: none;
        background: transparent;
        font-size: 18px;
        line-height: 1;
        cursor: pointer;
        color: #6b7280;
    }

#routeForm .input-with-action {
    position: relative;
}

    #routeForm .input-with-action input {
        padding-right: 40px;
    }

#routeForm .icon-btn {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    color: #111827;
    display: grid;
    place-items: center;
    cursor: pointer;
}

    #routeForm .icon-btn:disabled {
        opacity: .6;
        cursor: default;
    }


#btnAvoidWeigh {
    position: absolute;
    right: 12px;
    bottom: 150px;
    z-index: 3000;
    background: #111827;
    color: #fff;
    border: none;
    border-radius: 12px;
    padding: 10px 12px;
    font-weight: 700;
    display: none;
    box-shadow: 0 6px 16px rgba(0,0,0,.25);
}

    #btnAvoidWeigh[disabled] {
        opacity: .6;
        cursor: not-allowed
    }

    #btnAvoidWeigh .ic {
        margin-right: 6px;
    }
/* Spinner para botones del dock */
#uiDock .dock-btn.is-loading {
    position: relative;
    pointer-events: none;
}

    #uiDock .dock-btn.is-loading .ic,
    #uiDock .dock-btn.is-loading i {
        opacity: 0;
    }

    #uiDock .dock-btn.is-loading::after {
        content: "";
        width: 18px;
        height: 18px;
        border: 2px solid currentColor;
        border-top-color: transparent;
        border-right-color: transparent;
        border-radius: 50%;
        animation: guillo-spin .8s linear infinite;
        position: absolute;
        inset: 0;
        margin: auto;
    }

@keyframes guillo-spin {
    to {
        transform: rotate(360deg);
    }
}
@media(max-width:575px){
    #routeForm {
        top: 107px !important;
        width:48% !important;
    }
    .radar_layter_div {
        top: 107px !important;
        width: 50% !important;
    }
    #map {
        height: calc(100vh - 130px);
    }
    .pb-3 {
        padding-bottom: 0 !important;
    }
    body {
        margin-bottom: 0px !important;
    }
}
@media(max-width:510px) {
    #wsProximityPrompt {
        left: 10%;
        transform: translateX(-5%);
    }
}