/* Calculator UX additions. Pricing and route business logic remain in the core bundles. */
body.home-landing .transport-mobile-quick-nav { display: none; }

body.home-landing .mobile-route-swap-btn {
    width: 100%;
    min-height: 44px;
    margin: 0 0 10px;
    padding: 9px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid #cfdeed;
    border-radius: 13px;
    background: #f8fbff;
    color: #285e98;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}
body.home-landing .mobile-route-swap-btn[hidden] { display: none; }
body.home-landing .mobile-route-swap-btn:disabled { opacity: .48; cursor: default; }

/* Desktop address controls: two independent shells inside the original icon footprint. */
@media (min-width: 769px) {
    body.home-landing .mann-address-tools-stack {
        width: 32px;
        min-width: 32px;
        height: 44px;
        display: grid;
        grid-template-rows: 25px 17px;
        gap: 2px;
        align-items: stretch;
        justify-items: stretch;
        align-self: center;
        flex: 0 0 32px;
        overflow: visible;
    }
    body.home-landing .mann-address-tools-stack .input-box-icon.mann-address-map-shell {
        width: 32px;
        min-width: 32px;
        height: 25px;
        min-height: 25px;
        margin: 0;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        align-self: stretch;
        border-radius: 8px;
        overflow: hidden;
        transform: none;
    }
    body.home-landing .mann-address-map-shell > i {
        margin: 0;
        font-size: .78rem;
        line-height: 1;
        transform: none;
    }
    body.home-landing .mann-address-self-btn {
        width: 32px;
        min-width: 32px;
        height: 17px;
        min-height: 17px;
        margin: 0;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 1px solid rgba(37, 108, 241, .28);
        border-radius: 6px;
        background: #fff;
        color: #246cf1;
        box-shadow: 0 2px 6px rgba(37, 108, 241, .08);
        font: inherit;
        font-size: 9px;
        line-height: 1;
        font-weight: 900;
        cursor: pointer;
        transition: background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
    }
    body.home-landing .mann-address-self-btn:hover,
    body.home-landing .mann-address-self-btn:focus-visible {
        border-color: rgba(37, 108, 241, .55);
        background: #eef5ff;
        color: #174fa9;
        box-shadow: 0 3px 9px rgba(37, 108, 241, .14);
        outline: 0;
    }
    body.home-landing .mann-address-self-btn:disabled { opacity: .48; cursor: wait; box-shadow: none; }
}

/* Current location is inside the map itself on mobile. */
body.home-landing .mobile-route-map-modal__locate {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 72px;
    min-height: 42px;
    padding: 8px 12px;
    border: 1px solid rgba(37, 99, 235, .24);
    border-radius: 14px;
    background: rgba(255,255,255,.97);
    color: #1d4ed8;
    box-shadow: 0 10px 24px rgba(15,23,42,.14);
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}
body.home-landing .mobile-route-map-modal__locate:disabled { opacity: .62; cursor: wait; }

.mann-location-confirm {
    position: fixed;
    inset: 0;
    z-index: 12120;
    display: grid;
    place-items: center;
    padding: 18px;
    background: rgba(8, 24, 42, .34);
    backdrop-filter: blur(5px);
    opacity: 0;
    transition: opacity .18s ease;
}
.mann-location-confirm.is-visible { opacity: 1; }
.mann-location-confirm__dialog {
    width: min(430px, 100%);
    padding: 22px;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    border: 1px solid rgba(37, 108, 241, .16);
    border-radius: 20px;
    background: rgba(255, 255, 255, .99);
    color: #123a68;
    box-shadow: 0 24px 70px rgba(8, 38, 68, .24);
    transform: translateY(8px) scale(.985);
    transition: transform .18s ease;
}
.mann-location-confirm.is-visible .mann-location-confirm__dialog { transform: translateY(0) scale(1); }
.mann-location-confirm__icon {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    background: linear-gradient(135deg, #e9f3ff 0%, #dbeafe 100%);
    color: #246cf1;
    font-size: 18px;
}
.mann-location-confirm__copy h3 { margin: 1px 0 7px; font-size: 17px; line-height: 1.2; font-weight: 900; }
.mann-location-confirm__copy p { margin: 0; color: #60758c; font-size: 13px; line-height: 1.45; font-weight: 650; }
.mann-location-confirm__actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1.15fr; gap: 9px; margin-top: 4px; }
.mann-location-confirm__actions button {
    min-height: 44px;
    border-radius: 13px;
    font: inherit;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}
.mann-location-confirm__cancel { border: 1px solid #d6e1ed; background: #f7f9fc; color: #50677f; }
.mann-location-confirm__accept { border: 1px solid #246cf1; background: linear-gradient(135deg, #2f7bf1 0%, #2056c8 100%); color: #fff; display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-shadow: 0 8px 20px rgba(37, 108, 241, .2); }
body.home-landing[data-client-type="business"] .mann-location-confirm__accept { border-color: #e3b915; background: linear-gradient(180deg, #ffe36f 0%, #f2c51d 100%); color: #082f57; box-shadow: 0 8px 20px rgba(242, 197, 29, .22); }

.mann-ux-toast {
    position: fixed;
    z-index: 12050;
    right: 18px;
    bottom: 18px;
    width: min(390px, calc(100vw - 28px));
    min-height: 54px;
    padding: 12px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(37, 108, 241, .18);
    border-radius: 15px;
    background: rgba(255, 255, 255, .98);
    color: #173b63;
    box-shadow: 0 18px 42px rgba(16, 48, 83, .18);
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .2s ease, transform .2s ease;
    font-family: Inter, Arial, sans-serif;
}
.mann-ux-toast.is-visible { opacity: 1; transform: translateY(0); }
.mann-ux-toast__icon { color: #1c75dc; }
.mann-ux-toast--error .mann-ux-toast__icon { color: #d84e4e; }
.mann-ux-toast__text { font-size: 12px; font-weight: 700; line-height: 1.4; }

@media (max-width: 768px) {
    .mann-location-confirm { padding: 14px; }
    .mann-location-confirm__dialog { padding: 18px; grid-template-columns: 42px minmax(0,1fr); gap: 12px; border-radius: 18px; }
    .mann-location-confirm__icon { width: 42px; height: 42px; border-radius: 13px; }
    .mann-location-confirm__copy h3 { font-size: 15px; }
    .mann-location-confirm__copy p { font-size: 12px; }
}

@media (max-width: 768px) {
    body.home-landing .transport-mobile-nav-panel,
    body.home-landing .transport-mobile-menu,
    body.home-landing .transport-mobile-overlay { display: none; }

    body.home-landing .transport-mobile-quick-nav {
        display: block;
        padding: 10px 12px 9px;
        border-bottom: 1px solid #e0e8f2;
        background: rgba(255, 255, 255, .98);
    }
    body.home-landing .transport-mobile-quick-nav__sections {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 6px;
        padding: 4px;
        border: 1px solid #d6e1ee;
        border-radius: 14px;
        background: #f2f6fa;
    }
    body.home-landing .transport-mobile-section-tab {
        min-height: 42px;
        border: 0;
        border-radius: 11px;
        background: transparent;
        color: #51677f;
        font: inherit;
        font-size: 12px;
        font-weight: 800;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        cursor: pointer;
    }
    body.home-landing .transport-mobile-section-tab.is-active {
        background: linear-gradient(135deg, #2f7bf1 0%, #2056c8 100%);
        color: #fff;
        box-shadow: 0 6px 16px rgba(37, 108, 241, .23);
    }
    body.home-landing .transport-mobile-quick-nav__categories {
        display: flex;
        gap: 7px;
        overflow-x: auto;
        padding: 9px 1px 2px;
        scrollbar-width: none;
        overscroll-behavior-x: contain;
    }
    body.home-landing .transport-mobile-quick-nav__categories::-webkit-scrollbar { display: none; }
    body.home-landing .transport-mobile-category-chip {
        flex: 0 0 auto;
        min-height: 34px;
        padding: 7px 11px;
        border: 1px solid #d4e0ec;
        border-radius: 999px;
        background: #fff;
        color: #526a83;
        font: inherit;
        font-size: 11px;
        font-weight: 800;
        white-space: nowrap;
        cursor: pointer;
    }
    body.home-landing .transport-mobile-category-chip.is-active {
        border-color: #2d70dd;
        background: #edf5ff;
        color: #1f61c2;
    }
    body.home-landing .transport-mobile-category-chip[hidden] { display: none; }

    body.home-landing .mobile-route-map-modal__actions {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    body.home-landing .mobile-route-map-modal__locate { align-self: flex-end; }
    body.home-landing .mobile-route-map-modal__save { width: 100%; }

    .mann-ux-toast {
        right: 12px;
        bottom: calc(12px + env(safe-area-inset-bottom));
        width: calc(100vw - 24px);
    }
}

body.home-landing[data-client-type="business"] .transport-mobile-section-tab.is-active {
    background: linear-gradient(180deg, #ffe36f 0%, #f2c51d 100%);
    color: #082f57;
    box-shadow: 0 6px 16px rgba(242, 197, 29, .24);
}
body.home-landing[data-client-type="business"] .transport-mobile-category-chip.is-active {
    border-color: rgba(242, 197, 29, .82);
    background: #fff9df;
    color: #0b3b64;
}
