/* /solicite-uma-viagem-pelo-app-da-rebbify — bloco inicial visualmente igual ao pedido da home.
   Escopo isolado para não alterar outros componentes ou páginas. */
.rebbify-home-request-clone,
.rebbify-home-request-clone .booking-location-box__form,
.rebbify-home-request-clone .booking-location-box__inner {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.rebbify-home-request-clone .rebbify-request-fields {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
}

/* Partir agora — mesma proporção e hierarquia visual da home. */
.rebbify-home-request-clone .rebbify-booking-time {
    position: relative !important;
    width: min(290px, 100%) !important;
    max-width: 100% !important;
    margin: 0 0 14px !important;
    z-index: 40 !important;
}

.rebbify-home-request-clone .rebbify-booking-time__summary {
    width: 100% !important;
    min-height: 52px !important;
    height: auto !important;
    border: 1px solid var(--rb-border, #e5e7eb) !important;
    background: var(--rb-solid, #fff) !important;
    border-radius: 14px !important;
    padding: 9px 12px !important;
    display: grid !important;
    grid-template-columns: 34px minmax(0, 1fr) 22px !important;
    align-items: center !important;
    gap: 9px !important;
    color: var(--rb-text, #111827) !important;
    text-align: left !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, .06) !important;
}

.rebbify-home-request-clone .rebbify-booking-time__summary:hover,
.rebbify-home-request-clone .rebbify-booking-time__summary[aria-expanded="true"] {
    border-color: rgba(124, 77, 255, .5) !important;
    box-shadow: 0 8px 24px rgba(124, 77, 255, .12) !important;
    background: var(--rb-solid, #fff) !important;
}

.rebbify-home-request-clone .rebbify-booking-time__icon {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    border-radius: 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #7C4DFF !important;
    background: rgba(124, 77, 255, .09) !important;
}

.rebbify-home-request-clone .rebbify-booking-time__icon svg circle {
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
}
.rebbify-home-request-clone .rebbify-booking-time__icon svg path {
    stroke: currentColor !important;
}

.rebbify-home-request-clone .rebbify-booking-time__copy {
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1px !important;
}

.rebbify-home-request-clone .rebbify-booking-time__copy strong {
    color: var(--rb-text, #111827) !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
}

.rebbify-home-request-clone .rebbify-booking-time__copy small {
    color: var(--rb-muted, #64748b) !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
}

.rebbify-home-request-clone .rebbify-booking-time__chevron {
    width: 22px !important;
    min-width: 22px !important;
    color: #7C4DFF !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Origem e destino — mesmo campo cinza da home. */
.rebbify-home-request-clone .rebbify-location-field.input-group-custom {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 64px !important;
    height: auto !important;
    margin: 0 0 8px !important;
    background: var(--rb-soft, #f2f2f2) !important;
    color: var(--rb-text, #111) !important;
    border: 1px solid transparent !important;
    border-radius: 5px !important;
    padding: 8px 46px 8px 48px !important;
    overflow: visible !important;
    box-shadow: none !important;
    grid-template-columns: none !important;
    z-index: 6 !important;
}

.rebbify-home-request-clone .pickup-area.rebbify-location-field {
    padding-right: 82px !important;
}

.rebbify-home-request-clone .rebbify-location-field:focus-within {
    border-color: rgba(124, 77, 255, .7) !important;
    background: var(--rb-solid, #fff) !important;
    box-shadow: 0 0 0 3px rgba(124, 77, 255, .08) !important;
}

.rebbify-home-request-clone .rebbify-location-field::before,
.rebbify-home-request-clone .input-group-custom::before,
.rebbify-home-request-clone .connector-line {
    display: none !important;
    content: none !important;
}

.rebbify-home-request-clone .rebbify-route-icon,
.rebbify-home-request-clone .ride-location-field .input-group-custom__icon {
    position: absolute !important;
    left: 13px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 20px !important;
    min-width: 20px !important;
    height: 20px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 7 !important;
}

.rebbify-home-request-clone .rebbify-route-icon img,
.rebbify-home-request-clone .rebbify-route-location-icon {
    width: 20px !important;
    height: 20px !important;
    object-fit: contain !important;
    display: block !important;
}

.rebbify-home-request-clone .rebbify-location-field__input,
.rebbify-home-request-clone .ride-location-field .input-group-custom__wrapper {
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
}

.rebbify-home-request-clone .rebbify-field-caption {
    display: block !important;
    margin: 0 0 1px !important;
    color: var(--rb-muted, #777) !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    letter-spacing: .05em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.rebbify-home-request-clone .rebbify-location-field .input-group-custom__input,
.rebbify-home-request-clone .rebbify-location-field .input-group-custom__input:focus,
.rebbify-home-request-clone .rebbify-location-field .input-group-custom__input:active {
    width: 100% !important;
    min-width: 0 !important;
    height: 28px !important;
    min-height: 28px !important;
    line-height: 28px !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    color: var(--rb-text, #111) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    box-shadow: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.rebbify-home-request-clone .rebbify-location-field .input-group-custom__input::placeholder {
    color: var(--rb-muted, #818181) !important;
    opacity: 1 !important;
    font-weight: 500 !important;
}

.rebbify-home-request-clone .rebbify-location-action,
.rebbify-home-request-clone .ride-location-field .location__icon {
    position: absolute !important;
    right: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    color: #7C4DFF !important;
    z-index: 8 !important;
}

.rebbify-home-request-clone .rebbify-pickup-gps-btn,
.rebbify-home-request-clone .ride-add-stop-circle {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(124, 77, 255, .08) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    color: #7C4DFF !important;
}

.rebbify-home-request-clone .rebbify-pickup-gps-btn img {
    width: 18px !important;
    height: 18px !important;
    display: block !important;
}

.rebbify-home-request-clone .ride-add-stop-circle svg {
    width: 18px !important;
    height: 18px !important;
}

.rebbify-home-request-clone .icon-clear {
    color: var(--rb-muted, #64748b) !important;
    cursor: pointer !important;
}

.rebbify-home-request-clone .rebbify-location-dropdown.search-input-dropdown__wrapper,
.rebbify-home-request-clone .search-input-dropdown__wrapper-two {
    position: absolute !important;
    top: calc(100% + 5px) !important;
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: 330px !important;
    margin: 0 !important;
    padding: 7px 0 !important;
    background: var(--rb-solid, #fff) !important;
    color: var(--rb-text, #111) !important;
    border: 1px solid var(--rb-border, #dedede) !important;
    border-radius: 8px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-shadow: 0 14px 38px rgba(0, 0, 0, .16) !important;
    z-index: 50 !important;
}

/* Ação principal: ocupa exatamente a mesma largura dos campos. */
.rebbify-home-request-clone .rebbify-booking-actions {
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 0 !important;
    margin-top: 14px !important;
    flex-wrap: nowrap !important;
}

.rebbify-home-request-clone .rebbify-primary-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    border: 0 !important;
    border-radius: 5px !important;
    padding: 12px 22px !important;
    background: #7C4DFF !important;
    color: #fff !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

.rebbify-home-request-clone .rebbify-primary-btn:hover {
    background: #6A3FEA !important;
    color: #fff !important;
}

.rebbify-home-request-clone .rebbify-primary-btn:disabled {
    opacity: .45 !important;
    cursor: not-allowed !important;
}

.rebbify-home-request-clone .rebbify-recent-activity-link {
    color: var(--rb-text, #333) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

/* Quando abre o editor de agendamento, mantém a lógica atual e dá espaço ao editor. */
.rebbify-home-request-clone.is-schedule-editing {
    background: var(--rb-solid, #fff) !important;
    border-radius: 14px !important;
    padding: 14px !important;
}
.rebbify-home-request-clone.is-schedule-editing .rebbify-booking-time {
    width: 100% !important;
    margin-bottom: 0 !important;
}

/* Responsivo: o componente ocupa toda a largura do painel sem estourar nem comprimir. */
@media (max-width: 991px) {
    .rebbify-home-request-clone .rebbify-booking-time {
        width: 100% !important;
    }
    .rebbify-home-request-clone .rebbify-location-field.input-group-custom {
        min-height: 62px !important;
        padding-left: 44px !important;
    }
    .rebbify-home-request-clone .pickup-area.rebbify-location-field {
        padding-right: 78px !important;
    }
    .rebbify-home-request-clone .rebbify-route-icon,
    .rebbify-home-request-clone .ride-location-field .input-group-custom__icon {
        left: 11px !important;
    }
    .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input {
        font-size: 16px !important;
    }
    .rebbify-home-request-clone .rebbify-booking-actions {
        align-items: stretch !important;
        flex-direction: column !important;
        gap: 10px !important;
    }
    .rebbify-home-request-clone .rebbify-primary-btn {
        width: 100% !important;
    }
}

@media (max-width: 480px) {
    .rebbify-home-request-clone .rebbify-location-field.input-group-custom {
        width: 100% !important;
        padding-right: 44px !important;
    }
    .rebbify-home-request-clone .pickup-area.rebbify-location-field {
        padding-right: 76px !important;
    }
    .rebbify-home-request-clone .rebbify-field-caption {
        font-size: 9px !important;
    }
    .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input {
        max-width: 100% !important;
    }
}

/* Ponto de partida: o dropdown pertence ao campo ativo e deve sobrepor os
   campos abaixo. Evita a lista parecer posicionada depois do destino. */
.rebbify-home-request-clone .ride-location-field {
    isolation: auto !important;
    z-index: 10 !important;
}

.rebbify-home-request-clone .ride-location-field.is-search-open {
    z-index: 30 !important;
}

.rebbify-home-request-clone .pickup-area.is-search-open {
    z-index: 40 !important;
}

.rebbify-home-request-clone .pickup-area.is-search-open + .destination-area,
.rebbify-home-request-clone .destination-area:not(.is-search-open) {
    z-index: 10 !important;
}

.rebbify-home-request-clone #pickup_suggestions,
.rebbify-home-request-clone #destination_suggestions {
    top: calc(100% + 2px) !important;
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    z-index: 50 !important;
}

.rebbify-home-request-clone #pickup_suggestions {
    max-height: min(430px, 62vh) !important;
}

/* Dropdowns da rota usam somente uma escala local (10–50).
   Não aumentar para milhares: eles precisam vencer apenas os campos irmãos. */
.rebbify-home-request-clone .pickup-area.rebbify-location-field {
    position: relative !important;
    z-index: 20 !important;
}

.rebbify-home-request-clone .pickup-area.rebbify-location-field:focus-within,
.rebbify-home-request-clone .pickup-area.rebbify-location-field.is-search-open {
    z-index: 40 !important;
}

.rebbify-home-request-clone .pickup-area #pickup_suggestions {
    position: absolute !important;
    z-index: 50 !important;
}

.rebbify-home-request-clone .destination-area.rebbify-location-field {
    position: relative !important;
    z-index: 5 !important;
}

.rebbify-home-request-clone .destination-area.rebbify-location-field.is-search-open,
.rebbify-home-request-clone .destination-area.rebbify-location-field:focus-within {
    z-index: 30 !important;
}

/* ========================================================================
   REBBIFY 2026-09-05 — /solicite-uma-viagem-pelo-app-da-rebbify
   Shell visual alinhado ao rebbify-booking.html, sem alterar mapa/rotas/API.
   ======================================================================== */
.rebbify-ride-app {
    --rebbify-ref-ink: #14141c;
    --rebbify-ref-ink-soft: #5c5a6b;
    --rebbify-ref-ink-faint: #8f8ca0;
    --rebbify-ref-paper: #ffffff;
    --rebbify-ref-surface: #f2effc;
    --rebbify-ref-surface-deep: #e7e2fb;
    --rebbify-ref-line: #e7e4f2;
    --rebbify-ref-brand: #4b2ae8;
    --rebbify-ref-brand-dark: #341ea8;
    --rebbify-ref-brand-tint: #efeafd;
    --rebbify-ref-accent: #ff6a3d;
    --rebbify-ref-accent-tint: #ffe6da;
    --rebbify-ref-radius-xs: 10px;
    --rebbify-ref-radius-sm: 14px;
    --rebbify-ref-radius-md: 22px;
    --rebbify-ref-radius-pill: 999px;
    --rebbify-ref-display: var(--rb-font);
    --rebbify-ref-body: var(--rb-font);
    color: var(--rebbify-ref-ink) !important;
    font-family: var(--rebbify-ref-body) !important;
}

.rebbify-ride-app button,
.rebbify-ride-app input,
.rebbify-ride-app select,
.rebbify-ride-app textarea {
    font-family: var(--rebbify-ref-body) !important;
}

.rebbify-ride-app .rebbify-request-card__title,
.rebbify-ride-app .rebbify-service-title-row h1,
.rebbify-ride-app .rebbify-service-name {
    font-family: var(--rebbify-ref-display) !important;
}

/* Header no ritmo do arquivo de referência, preservando controles existentes. */
.rebbify-ride-app .rebbify-ride-topbar {
    height: 64px !important;
    padding: 0 clamp(20px, 4vw, 56px) !important;
    border-bottom: 1px solid var(--rebbify-ref-line) !important;
    background: var(--rebbify-ref-paper) !important;
}

.rebbify-ride-app .rebbify-mode-tab {
    height: auto !important;
    min-height: 38px !important;
    padding: 9px 14px !important;
    border-radius: var(--rebbify-ref-radius-pill) !important;
    color: var(--rebbify-ref-ink-soft) !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
}

.rebbify-ride-app .rebbify-mode-tab::after { display: none !important; }
.rebbify-ride-app .rebbify-mode-tab:hover {
    background: var(--rebbify-ref-brand-tint) !important;
    color: var(--rebbify-ref-ink) !important;
}
.rebbify-ride-app .rebbify-mode-tab.is-active {
    background: var(--rebbify-ref-brand-tint) !important;
    color: var(--rebbify-ref-brand) !important;
}

.rebbify-ride-app .rebbify-activity-link {
    min-height: 38px !important;
    padding: 9px 15px !important;
    border-radius: var(--rebbify-ref-radius-pill) !important;
    background: var(--rebbify-ref-surface) !important;
    color: var(--rebbify-ref-ink) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}
.rebbify-ride-app .rebbify-activity-link:hover { background: var(--rebbify-ref-surface-deep) !important; }

/* O seletor de cidade continua no DOM/estado, mas não ocupa o shell da referência. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-top-city-btn { display: none !important; }

/* Tela inicial: painel fixo + mapa real ocupando todo o restante. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-ride-stage {
    height: calc(100dvh - 64px) !important;
    min-height: 560px !important;
    padding: 0 !important;
    background: var(--rebbify-ref-paper) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-wrapper {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin: 0 !important;
    max-width: none !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel {
    width: min(480px, 100%) !important;
    flex: 0 0 480px !important;
    max-width: 480px !important;
    max-height: 100% !important;
    padding: 28px clamp(20px, 3vw, 32px) 26px !important;
    overflow-x: visible !important;
    overflow-y: auto !important;
    border-right: 1px solid var(--rebbify-ref-line) !important;
    background: var(--rebbify-ref-paper) !important;
    scrollbar-width: thin;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel:has(.ride-location-field.is-search-open) {
    overflow: visible !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel {
    order: 2;
    min-width: 0 !important;
    flex: 1 1 auto !important;
    height: 100% !important;
    padding: 0 !important;
    background: var(--rebbify-ref-surface) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel #map,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .booking-wrapper__right #map {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    border-radius: 0 !important;
    background: var(--rebbify-ref-surface) !important;
}

/* Painel de busca. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .booking-location-box {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-fields {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    padding: 0 !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-promo {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 0 8px !important;
    padding: 12px 14px !important;
    border: 0 !important;
    border-radius: var(--rebbify-ref-radius-sm) !important;
    background: var(--rebbify-ref-accent-tint) !important;
    color: var(--rebbify-ref-ink) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-promo__icon {
    width: 18px !important;
    height: 18px !important;
    flex: 0 0 18px !important;
    display: inline-flex !important;
    color: var(--rebbify-ref-accent) !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-promo__icon svg { width: 18px !important; height: 18px !important; }
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-promo p {
    margin: 0 !important;
    font-size: 13.5px !important;
    line-height: 1.4 !important;
    font-weight: 500 !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-promo strong { color: var(--rebbify-ref-accent) !important; }

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card__title {
    margin: 0 0 2px !important;
    color: var(--rebbify-ref-ink) !important;
    font-family: var(--rebbify-ref-display) !important;
    font-size: 26px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: -.01em !important;
}

/* Origem/destino como um único grupo com marcador circular/quadrado. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-field-group {
    position: relative !important;
    width: 100% !important;
    border: 1.5px solid var(--rebbify-ref-line) !important;
    border-radius: var(--rebbify-ref-radius-sm) !important;
    background: var(--rebbify-ref-paper) !important;
    overflow: visible !important;
    transition: border-color .15s ease, box-shadow .15s ease !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-field-group:focus-within {
    border-color: var(--rebbify-ref-brand) !important;
    box-shadow: 0 0 0 3px rgba(75,42,232,.08) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field.input-group-custom {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-height: 54px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-field-group .pickup-area {
    border-bottom: 1px solid var(--rebbify-ref-line) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field:focus-within {
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-field-caption {
    display: none !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-control {
    width: 100% !important;
    min-height: 54px !important;
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-route-icon,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .ride-location-field .input-group-custom__icon,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control .input-group-custom__icon {
    position: static !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    width: 18px !important;
    min-width: 18px !important;
    height: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rebbify-reference-marker {
    width: 9px !important;
    height: 9px !important;
    display: block !important;
    border: 2px solid var(--rebbify-ref-brand) !important;
    background: transparent !important;
}
.rebbify-reference-marker--pickup { border-radius: 50% !important; }
.rebbify-reference-marker--destination {
    border-radius: 2px !important;
    border-color: var(--rebbify-ref-ink) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field__input,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control .input-group-custom__wrapper {
    width: 100% !important;
    min-width: 0 !important;
    height: 52px !important;
    display: flex !important;
    align-items: center !important;
    overflow: hidden !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control .input-group-custom__input {
    width: 100% !important;
    min-width: 0 !important;
    height: 52px !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--rebbify-ref-ink) !important;
    font-size: 15px !important;
    line-height: 52px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input::placeholder {
    color: var(--rebbify-ref-ink-faint) !important;
    opacity: 1 !important;
    font-weight: 500 !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-action,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control .location__icon {
    position: static !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    min-width: 26px !important;
    height: 32px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 7px !important;
    color: var(--rebbify-ref-ink-soft) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .ride-add-stop-circle,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-pickup-gps-btn {
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    min-height: 26px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: var(--rebbify-ref-surface) !important;
    color: var(--rebbify-ref-ink-soft) !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-pickup-gps-btn img {
    width: 15px !important;
    height: 15px !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .ride-add-stop-circle svg,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .icon-clear {
    width: 16px !important;
    height: 16px !important;
}

/* Mantém autocomplete acima do bottom sheet sem alterar a busca real. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone #pickup_suggestions,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone #destination_suggestions {
    top: calc(100% + 6px) !important;
    left: -1px !important;
    width: calc(100% + 2px) !important;
    max-width: none !important;
    border: 1px solid var(--rebbify-ref-line) !important;
    border-radius: var(--rebbify-ref-radius-sm) !important;
    box-shadow: 0 14px 34px rgba(20,20,28,.14) !important;
}

/* Agora + Para mim, iguais ao ritmo da referência. */
.rebbify-reference-options-row {
    display: flex !important;
    gap: 10px !important;
    align-items: stretch !important;
    width: 100% !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-options-row .rebbify-booking-time,
.rebbify-reference-passenger-chip {
    flex: 1 1 0 !important;
    min-width: 0 !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-options-row .rebbify-booking-time {
    margin: 0 !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-time-summary,
.rebbify-reference-passenger-chip {
    width: 100% !important;
    min-height: 44px !important;
    height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    margin: 0 !important;
    padding: 11px 10px !important;
    border: 1.5px solid var(--rebbify-ref-line) !important;
    border-radius: var(--rebbify-ref-radius-pill) !important;
    background: var(--rebbify-ref-paper) !important;
    color: var(--rebbify-ref-ink) !important;
    font-size: 13.5px !important;
    line-height: 1 !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-time-summary:hover,
.rebbify-reference-passenger-chip:hover {
    border-color: var(--rebbify-ref-brand) !important;
    background: var(--rebbify-ref-brand-tint) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-time-summary {
    grid-template-columns: none !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-time__icon,
.rebbify-reference-passenger-chip__icon {
    width: 15px !important;
    height: 15px !important;
    flex: 0 0 15px !important;
    display: inline-flex !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-time__icon svg,
.rebbify-reference-passenger-chip__icon svg { width: 15px !important; height: 15px !important; }
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-time__copy {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-time__copy strong {
    font-size: 13.5px !important;
    line-height: 1 !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-time__copy small { display: none !important; }
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-time__chevron,
.rebbify-reference-passenger-chip__caret {
    width: 9px !important;
    height: 9px !important;
    flex: 0 0 9px !important;
    display: inline-flex !important;
    opacity: .55 !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-time__chevron svg,
.rebbify-reference-passenger-chip__caret svg { width: 9px !important; height: 9px !important; }

/* Editor de agendamento continua usando o fluxo existente e ocupa o painel inteiro. */
.rebbify-request-fields.is-schedule-editing > .rebbify-reference-options-row {
    display: block !important;
}
.rebbify-request-fields.is-schedule-editing > .rebbify-reference-options-row > .rebbify-reference-passenger-chip {
    display: none !important;
}
.rebbify-request-fields.is-schedule-editing > .rebbify-reference-options-row > .rebbify-request-time {
    width: 100% !important;
    display: block !important;
}

/* CTA da referência, mantendo o mesmo #rideSearchBtn e a mesma lógica. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-booking-actions,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-search-actions {
    width: 100% !important;
    margin: 0 !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card #rideSearchBtn,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-primary-btn {
    width: 100% !important;
    min-height: 50px !important;
    height: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    margin: 0 !important;
    padding: 15px 18px !important;
    border: 0 !important;
    border-radius: var(--rebbify-ref-radius-pill) !important;
    background: var(--rebbify-ref-brand) !important;
    color: #fff !important;
    font-family: var(--rebbify-ref-display) !important;
    font-size: 16px !important;
    line-height: 1.15 !important;
    font-weight: 600 !important;
    box-shadow: 0 10px 24px -8px rgba(75,42,232,.55) !important;
    transition: background-color .15s ease, transform .15s ease, box-shadow .15s ease !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card #rideSearchBtn:hover:not(:disabled) {
    background: var(--rebbify-ref-brand-dark) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 14px 28px -8px rgba(75,42,232,.6) !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card #rideSearchBtn:disabled {
    opacity: .45 !important;
    cursor: not-allowed !important;
    transform: none !important;
}
.rebbify-primary-btn__arrow { width: 17px !important; height: 17px !important; flex: 0 0 17px !important; }
.rebbify-reference-disclaimer {
    margin: -2px 0 0 !important;
    color: var(--rebbify-ref-ink-faint) !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    text-align: center !important;
}

/* Fundo do mapa no mesmo tom da referência enquanto o mapa real carrega. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .mapboxgl-map,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .mapboxgl-canvas-container,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .mapboxgl-canvas {
    background-color: var(--rebbify-ref-surface) !important;
}

/* Bottom sheet em telas abaixo de 860 px, sem trocar o mapa real. */
@media (max-width: 860px) {
    .rebbify-ride-app .rebbify-ride-topbar {
        height: 64px !important;
        padding: 0 16px !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-ride-stage {
        height: calc(100dvh - 64px) !important;
        min-height: 560px !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-wrapper {
        height: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel {
        order: 1 !important;
        width: 100% !important;
        flex: 1 1 46% !important;
        min-height: 220px !important;
        height: auto !important;
        border: 0 !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel {
        order: 2 !important;
        position: relative !important;
        z-index: 30 !important;
        width: 100% !important;
        max-width: none !important;
        flex: 1 1 54% !important;
        min-height: 0 !important;
        max-height: 62% !important;
        margin-top: -18px !important;
        padding: 22px 20px max(22px, env(safe-area-inset-bottom)) !important;
        overflow-x: visible !important;
        overflow-y: auto !important;
        border: 0 !important;
        border-top: 1px solid var(--rebbify-ref-line) !important;
        border-radius: var(--rebbify-ref-radius-md) var(--rebbify-ref-radius-md) 0 0 !important;
        background: var(--rebbify-ref-paper) !important;
        box-shadow: 0 -8px 26px rgba(20,20,28,.08) !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel #map,
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .booking-wrapper__right #map {
        min-height: 220px !important;
        border-radius: 0 !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card__title {
        font-size: 24px !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-fields {
        gap: 12px !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-promo {
        margin-bottom: 4px !important;
    }
}

@media (max-width: 520px) {
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel {
        padding-left: 16px !important;
        padding-right: 16px !important;
        max-height: 64% !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-promo p {
        font-size: 12.5px !important;
    }

    .rebbify-reference-options-row {
        gap: 8px !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-time-summary,
    .rebbify-reference-passenger-chip {
        padding-left: 8px !important;
        padding-right: 8px !important;
        font-size: 13px !important;
    }
}


/* ========================================================================
   2026-09-05 — correção final de responsividade / promoção / campos da Home
   Escopo exclusivo: /solicite-uma-viagem-pelo-app-da-rebbify
   ======================================================================== */
html, body { max-width: 100%; overflow-x: hidden; }
.rebbify-ride-app { width: 100%; max-width: 100vw; overflow-x: hidden; }

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-ride-stage {
    min-height: 0 !important;
    max-width: 100vw !important;
    overflow: hidden !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-wrapper {
    min-width: 0 !important;
    max-width: 100vw !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel {
    width: clamp(340px, 31vw, 420px) !important;
    flex: 0 1 clamp(340px, 31vw, 420px) !important;
    min-width: 320px !important;
    max-width: 420px !important;
    overflow-x: hidden !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel {
    min-width: 0 !important;
    max-width: calc(100vw - 320px) !important;
    overflow: hidden !important;
}

/* Promoção: texto agenda; somente o ícone de informação abre os detalhes. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-promo {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    background: var(--rb-soft, #e8f7ee) !important;
    border: 1px solid var(--rb-border, #c8ead4) !important;
    color: var(--rb-text, #173f27) !important;
}
.rebbify-reference-promo__action {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    text-align: left !important;
}
.rebbify-reference-promo__text {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
}
.rebbify-reference-promo__icon { color: #16803d !important; }
.rebbify-reference-promo__info {
    flex: 0 0 30px !important;
    width: 30px !important;
    height: 30px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #16733a !important;
    font-size: 20px !important;
    line-height: 1 !important;
}
.rebbify-reference-promo__info:hover, .rebbify-reference-promo__info:focus-visible { background: var(--rb-soft, #d3f0de) !important; }

/* Origem/destino: mesma linguagem visual da Home. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-field-group {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    display: grid !important;
    gap: 8px !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field.input-group-custom {
    min-height: 64px !important;
    padding: 8px 48px !important;
    margin: 0 !important;
    background: var(--rb-soft, #f2f2f2) !important;
    border: 1px solid transparent !important;
    border-radius: 5px !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .pickup-area.rebbify-location-field { padding-right: 84px !important; }
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field:focus-within {
    background: var(--rb-solid, #fff) !important;
    border-color: rgba(75,42,232,.55) !important;
    box-shadow: 0 0 0 3px rgba(75,42,232,.07) !important;
}
.rebbify-home-request-clone .rebbify-location-field__input label {
    display: block !important;
    margin: 0 0 1px !important;
    color: var(--rb-muted, #6f6f78) !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
}
.rebbify-home-request-clone .rebbify-route-icon img {
    width: 20px !important;
    height: 20px !important;
    display: block !important;
    object-fit: contain !important;
}

/* Agendamento ocupa exatamente a largura do bloco de pesquisa e segue sua proporção. */
.rebbify-reference-options-row { display: block !important; width: 100% !important; }
.rebbify-home-request-clone .rebbify-booking-time,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-request-time {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-time-summary {
    width: 100% !important;
    min-height: 64px !important;
    padding: 8px 14px !important;
    border: 1px solid transparent !important;
    border-radius: 5px !important;
    background: var(--rb-soft, #f2f2f2) !important;
    box-shadow: none !important;
}
.rebbify-reference-disclaimer { display: none !important; }

/* Menu Conta sólido e contido em qualquer viewport. */
.rebbify-ride-topbar__right .rebbify-profile-menu {
    min-width: 190px !important;
    max-width: min(260px, calc(100vw - 24px)) !important;
    padding: 6px !important;
    background: var(--rb-solid, #fff) !important;
    border: 1px solid var(--rb-border, #e5e7eb) !important;
    border-radius: 12px !important;
    box-shadow: 0 14px 34px rgba(15,23,42,.16) !important;
    overflow: hidden !important;
    z-index: 320 !important;
}
.rebbify-ride-topbar__right .rebbify-profile-menu .dropdown-item {
    width: 100% !important;
    padding: 10px 12px !important;
    border-radius: 8px !important;
    background: var(--rb-solid, #fff) !important;
    color: var(--rb-text, #111827) !important;
    font-weight: 650 !important;
    white-space: normal !important;
}
.rebbify-ride-topbar__right .rebbify-profile-menu .dropdown-item:hover,
.rebbify-ride-topbar__right .rebbify-profile-menu .dropdown-item:focus { background: var(--rb-soft, #f3f4f6) !important; }

/* Modal promocional com capa de cupom. */
body.rebbify-fast-promo-open { overflow: hidden !important; }
.rebbify-fast-promo-modal__cover {
    min-height: 132px;
    margin: -28px -28px 24px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: linear-gradient(135deg, #0e7a3a, #25a85b);
    color: #fff;
}
.rebbify-fast-promo-modal__cover svg { width: 54px; height: 54px; }
.rebbify-fast-promo-modal__cover span { font-size: 18px; font-weight: 900; letter-spacing: .04em; }
.rebbify-fast-promo-modal__button {
    width: 100%;
    margin-top: 20px;
    padding: 13px 18px;
    border: 0;
    border-radius: 12px;
    background: #4b2ae8;
    color: #fff;
    font-weight: 800;
}

/* Barra de serviços sem Conta/Cupom: pagamento + ação, sem ocupar largura indevida. */
.rebbify-ride-app.is-service-selection .rebbify-booking-actionbar {
    grid-template-columns: minmax(150px, .8fr) minmax(180px, 1.2fr) !important;
    width: 100% !important;
}

@media (min-width: 861px) and (max-width: 1180px) {
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel {
        width: 360px !important; flex-basis: 360px !important; min-width: 330px !important; padding: 22px 20px !important;
    }
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel { max-width: calc(100vw - 330px) !important; }
}

@media (max-width: 860px) {
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-ride-stage {
        height: calc(100dvh - 64px) !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel {
        width: 100% !important; max-width: 100% !important; min-height: 210px !important; flex: 1 1 42% !important;
    }
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel {
        width: 100% !important; min-width: 0 !important; max-width: 100% !important; flex: 1 1 58% !important; max-height: 64% !important;
        padding: 18px 16px max(18px, env(safe-area-inset-bottom)) !important; overflow-x: hidden !important;
    }
    .rebbify-fast-promo-modal { align-items: flex-end !important; padding: 0 !important; }
    .rebbify-fast-promo-modal__dialog { width: 100% !important; max-height: 88dvh !important; border-radius: 22px 22px 0 0 !important; padding: 22px 18px max(22px, env(safe-area-inset-bottom)) !important; }
    .rebbify-fast-promo-modal__cover { margin: -22px -18px 20px !important; }
}

@media (max-width: 520px) {
    .rebbify-reference-promo__text { font-size: 12.5px !important; }
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field.input-group-custom { min-height: 60px !important; padding-left: 44px !important; }
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-time-summary { min-height: 60px !important; }
}

/* ========================================================================
   2026-09-06 — correção definitiva do layout inicial / responsividade
   Corrige compressão dos rótulos, padding duplicado, largura do painel e
   comportamento mobile sem alterar a lógica de corrida/Mapbox.
   ======================================================================== */
.rebbify-ride-app,
.rebbify-ride-app *,
.rebbify-ride-app *::before,
.rebbify-ride-app *::after {
    box-sizing: border-box;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) {
    --ride-topbar-height: 64px;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-ride-topbar {
    height: var(--ride-topbar-height) !important;
    min-height: var(--ride-topbar-height) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-ride-stage {
    height: calc(100dvh - var(--ride-topbar-height)) !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel {
    width: clamp(380px, 30vw, 440px) !important;
    min-width: 380px !important;
    max-width: 440px !important;
    flex: 0 0 clamp(380px, 30vw, 440px) !important;
    padding: 20px clamp(18px, 1.7vw, 24px) 22px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border-right: 1px solid var(--rb-border, #ececef) !important;
    background: var(--rb-solid, #fff) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .ride_location_wrapper,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .booking-location-box,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .booking-location-box__form,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .booking-location-box__inner,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-fields,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-field-group,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-options-row,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-search-actions {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100% !important;
    flex: 1 1 auto !important;
    overflow: hidden !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel #map,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .booking-wrapper__right #map {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    border-radius: 0 !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-fields {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card__title {
    margin: 0 !important;
    font-size: clamp(22px, 1.7vw, 26px) !important;
    line-height: 1.18 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-field-group {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    overflow: visible !important;
}

/* O campo externo não deve reservar espaço para ícones que já vivem dentro
   de .rebbify-location-control. Esse padding duplicado era a causa principal
   da compressão vista no desktop/zoom. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field.input-group-custom,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .pickup-area.rebbify-location-field,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .destination-area.rebbify-location-field {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid transparent !important;
    border-radius: 7px !important;
    background: var(--rb-soft, #f2f2f2) !important;
    overflow: visible !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field:focus-within,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field.is-search-open {
    background: var(--rb-solid, #fff) !important;
    border-color: rgba(124, 77, 255, .55) !important;
    box-shadow: 0 0 0 3px rgba(124, 77, 255, .08) !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-control {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 56px !important;
    height: auto !important;
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 6px 10px !important;
    border: 0 !important;
    border-radius: inherit !important;
    background: transparent !important;
    box-shadow: none !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-route-icon,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .ride-location-field .input-group-custom__icon,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control .input-group-custom__icon {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: 22px !important;
    min-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-route-icon img,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-route-location-icon {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
}

/* Rótulo e input precisam ficar em duas linhas dentro da mesma coluna.
   Antes os dois eram flex-items horizontais e o label encolhia para 1 letra. */
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field__input,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control .input-group-custom__wrapper {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 42px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: center !important;
    gap: 1px !important;
    overflow: hidden !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field__input label {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    color: var(--rb-muted, #6f6f78) !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control .input-group-custom__input {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 26px !important;
    min-height: 26px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--rb-text, #111) !important;
    font-size: 14px !important;
    line-height: 26px !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-action,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .ride-location-field .location__icon,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control .location__icon {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: auto !important;
    min-width: 32px !important;
    height: 36px !important;
    min-height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-pickup-gps-btn,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .ride-add-stop-circle {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    flex: 0 0 32px !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone #pickup_suggestions,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone #destination_suggestions {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    z-index: 70 !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-promo,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-time-summary,
.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card #rideSearchBtn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-time-summary {
    min-height: 52px !important;
    height: auto !important;
    padding: 7px 10px !important;
}

.rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card #rideSearchBtn {
    min-height: 44px !important;
    height: 44px !important;
}

/* Notebook estreito: preserva formulário legível sem sacrificar o mapa. */
@media (min-width: 861px) and (max-width: 1180px) {
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel {
        width: 370px !important;
        min-width: 370px !important;
        max-width: 370px !important;
        flex-basis: 370px !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

/* Mobile/tablet: formulário primeiro, mapa abaixo e rolagem natural da página.
   Evita bottom-sheet espremido, CTA inacessível e cortes com teclado aberto. */
@media (max-width: 860px) {
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-ride-stage {
        height: auto !important;
        min-height: calc(100dvh - var(--ride-topbar-height)) !important;
        overflow: visible !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-wrapper {
        height: auto !important;
        min-height: 0 !important;
        flex-direction: column !important;
        overflow: visible !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel {
        order: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 18px 16px 20px !important;
        overflow: visible !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel {
        order: 2 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: 320px !important;
        min-height: 320px !important;
        flex: 0 0 320px !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel #map,
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .booking-wrapper__right #map {
        height: 320px !important;
        min-height: 320px !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field.input-group-custom,
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .pickup-area.rebbify-location-field,
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .destination-area.rebbify-location-field {
        min-height: 58px !important;
        padding: 0 !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input,
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control .input-group-custom__input {
        font-size: 16px !important;
    }
}

@media (max-width: 520px) {
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-booking-panel {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card__title {
        font-size: 22px !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-request-card .rebbify-location-control,
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-control {
        grid-template-columns: 22px minmax(0, 1fr) auto !important;
        gap: 8px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-reference-promo {
        padding-left: 10px !important;
        padding-right: 8px !important;
    }

    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel,
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .rebbify-map-panel #map,
    .rebbify-ride-app[data-has-running-ride="0"]:not(.is-service-selection) .booking-wrapper__right #map {
        height: 280px !important;
        min-height: 280px !important;
        flex-basis: 280px !important;
    }
}

/* Ajuste restrito à seleção de serviços: proporções da lista e campos de rota. */
.rebbify-ride-app.is-service-selection .rebbify-service-group {
    margin-bottom: 18px !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-group__list {
    gap: 8px !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-label {
    grid-template-columns: 78px minmax(0, 1fr) max-content !important;
    min-height: 82px !important;
    gap: 10px !important;
    padding: 8px 10px !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-image {
    width: 78px !important;
    height: 58px !important;
    max-width: 78px !important;
    aspect-ratio: auto !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-image img {
    width: auto !important;
    height: auto !important;
    max-width: 78px !important;
    max-height: 58px !important;
    object-fit: contain !important;
    object-position: center !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-copy {
    min-width: 0 !important;
    width: 100% !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-name {
    font-size: 15px !important;
    line-height: 1.18 !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-price {
    min-width: 82px !important;
    max-width: max-content !important;
    padding-left: 4px !important;
    white-space: nowrap !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-price strong {
    font-size: 14px !important;
}

/* Mantém Ponto de partida / Local de chegada legíveis quando a lista aparece. */
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .ride-location-field {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 60px !important;
    padding: 0 !important;
    overflow: visible !important;
}

.rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control,
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-control {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    height: auto !important;
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 6px 10px !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field__input,
.rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control .input-group-custom__wrapper {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 44px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: center !important;
    gap: 1px !important;
    overflow: hidden !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field__input label {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    color: var(--rb-muted, #6f6f78) !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input,
.rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control .input-group-custom__input {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 26px !important;
    min-height: 26px !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 26px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

@media (min-width: 1200px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        grid-template-columns: minmax(290px, 320px) minmax(390px, 1fr) !important;
        gap: 0 clamp(14px, 1.3vw, 22px) !important;
    }
}

@media (max-width: 767px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        grid-template-columns: 68px minmax(0, 1fr) max-content !important;
        min-height: 76px !important;
        gap: 8px !important;
        padding: 7px 8px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image {
        width: 68px !important;
        height: 50px !important;
        max-width: 68px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        max-width: 68px !important;
        max-height: 50px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price {
        min-width: 68px !important;
        padding-left: 2px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price strong {
        font-size: 13px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-home-request-clone .ride-location-field {
        min-height: 62px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control,
    .rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-control {
        min-height: 60px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input,
    .rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control .input-group-custom__input {
        font-size: 16px !important;
    }
}

@media (max-width: 420px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        grid-template-columns: 62px minmax(0, 1fr) max-content !important;
        min-height: 72px !important;
        gap: 7px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image {
        width: 62px !important;
        height: 46px !important;
        max-width: 62px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        max-width: 62px !important;
        max-height: 46px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price {
        min-width: 64px !important;
    }
}


/* ========================================================================
   2026-09-10 — seleção de serviço sem campos espremidos (desktop + mobile)
   Mantém partida/destino legíveis e dá largura real para formulário e lista.
   ======================================================================== */
.rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
    width: 100% !important;
    max-width: 1180px !important;
    margin: 0 auto !important;
    padding: 20px 24px 36px !important;
    overflow: visible !important;
}

.rebbify-ride-app.is-service-selection .rebbify-booking-panel {
    width: min(100%, 1100px) !important;
    min-width: 0 !important;
    max-width: 1100px !important;
    flex: 0 1 1100px !important;
    padding: 0 !important;
    overflow: visible !important;
}

.rebbify-ride-app.is-service-selection .ride_location_wrapper,
.rebbify-ride-app.is-service-selection .rebbify-service-flow,
.rebbify-ride-app.is-service-selection .rebbify-service-results,
.rebbify-ride-app.is-service-selection .serviceDiv {
    min-width: 0 !important;
    width: 100% !important;
}

.rebbify-ride-app.is-service-selection .rebbify-route-summary {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px 12px !important;
    min-height: 104px !important;
    padding: 13px 15px !important;
    overflow: visible !important;
}

.rebbify-route-summary__locations {
    grid-column: 1 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    min-width: 0 !important;
}

.rebbify-route-summary__location {
    display: grid !important;
    grid-template-columns: 74px minmax(0, 1fr) !important;
    gap: 8px !important;
    align-items: start !important;
    min-width: 0 !important;
}

.rebbify-route-summary__location small {
    color: var(--rb-muted, #6f6f78) !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
}

.rebbify-route-summary__location strong {
    display: block !important;
    min-width: 0 !important;
    color: var(--rb-text, #111) !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

.rebbify-ride-app.is-service-selection .rebbify-route-summary__meta {
    grid-column: 1 !important;
    margin-left: 82px !important;
    white-space: normal !important;
}

.rebbify-ride-app.is-service-selection .rebbify-route-summary > i {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    align-self: center !important;
}

@media (min-width: 1024px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        display: grid !important;
        grid-template-columns: minmax(390px, 430px) minmax(0, 1fr) !important;
        column-gap: clamp(22px, 2.2vw, 34px) !important;
        align-items: start !important;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper {
        grid-column: 1 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-flow {
        grid-column: 2 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field,
    .rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-control {
        min-height: 66px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input {
        height: auto !important;
        min-height: 28px !important;
        line-height: 1.35 !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
        overflow-wrap: anywhere !important;
    }
}

@media (max-width: 1023px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        max-width: 760px !important;
        padding: 16px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper {
        margin-bottom: 18px !important;
    }

    /* Reverte a regra antiga que escondia o resumo da rota no mobile. */
    .rebbify-ride-app.is-service-selection .rebbify-route-summary {
        display: grid !important;
        width: 100% !important;
    }
}

@media (max-width: 600px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        padding: 12px 12px max(24px, env(safe-area-inset-bottom)) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results__header {
        margin-bottom: 14px !important;
    }

    .rebbify-route-summary__location {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 2px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-route-summary__meta {
        margin-left: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        grid-template-columns: 64px minmax(0, 1fr) !important;
        gap: 9px !important;
        min-height: 84px !important;
        padding: 9px !important;
        align-items: center !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image {
        width: 64px !important;
        height: 50px !important;
        max-width: 64px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        max-width: 64px !important;
        max-height: 50px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price {
        grid-column: 2 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        padding: 2px 0 0 !important;
        text-align: left !important;
        white-space: normal !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price strong {
        font-size: 14px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input,
    .rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control .input-group-custom__input {
        height: auto !important;
        min-height: 28px !important;
        line-height: 1.3 !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
        overflow-wrap: anywhere !important;
    }
}

/* ========================================================================
   2026-09-15 — /solicite-uma-viagem-pelo-app-da-rebbify
   Resultado de preços responsivo + uso real da largura + agendamento em overlay
   ======================================================================== */

/* O editor de "Embarcar agora" é um popover: não empurra origem, destino ou CTA. */
.rebbify-home-request-clone .rebbify-request-time {
    position: relative !important;
    overflow: visible !important;
}

.rebbify-home-request-clone .rebbify-request-time.is-editor-open {
    z-index: 60 !important;
}

.rebbify-home-request-clone .rebbify-request-time.is-editor-open .rebbify-time-summary {
    display: flex !important;
}

.rebbify-home-request-clone .rebbify-schedule-editor,
.rebbify-home-request-clone .rebbify-request-time.is-editor-open .rebbify-schedule-editor {
    position: absolute !important;
    z-index: 70 !important;
    top: calc(100% + 10px) !important;
    left: 0 !important;
    right: auto !important;
    width: min(430px, calc(100vw - 32px)) !important;
    max-width: min(430px, calc(100vw - 32px)) !important;
    max-height: min(72dvh, 640px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 16px !important;
    border: 1px solid var(--rb-border, #e5e5ea) !important;
    border-radius: 16px !important;
    background: var(--rb-solid, #fff) !important;
    box-shadow: 0 24px 64px rgba(15, 15, 20, .20) !important;
}

.rebbify-home-request-clone .rebbify-schedule-editor[aria-hidden="true"] {
    display: none !important;
}

.rebbify-home-request-clone .rebbify-request-time.is-editor-open .rebbify-schedule-editor[aria-hidden="false"] {
    display: block !important;
}

/* DESKTOP: formulário + opções de serviço + mapa ocupam a viewport inteira.
   Evita o bloco estreito centralizado visto após calcular os preços. */
@media (min-width: 1200px) {
    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        width: 100% !important;
        height: calc(100dvh - var(--ride-topbar-height, 54px)) !important;
        min-height: 600px !important;
        padding: 18px clamp(18px, 2vw, 32px) 22px !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        width: 100% !important;
        max-width: none !important;
        height: 100% !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) clamp(340px, 29vw, 480px) !important;
        align-items: stretch !important;
        gap: clamp(18px, 1.7vw, 28px) !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        height: 100% !important;
        max-height: none !important;
        padding: 0 !important;
        display: grid !important;
        grid-template-columns: clamp(350px, 34%, 450px) minmax(420px, 1fr) !important;
        grid-template-rows: minmax(0, 1fr) !important;
        gap: clamp(18px, 1.6vw, 26px) !important;
        overflow: hidden !important;
        flex: none !important;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper {
        display: block !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        max-height: 100% !important;
        overflow-x: visible !important;
        overflow-y: auto !important;
        padding: 0 4px 10px 0 !important;
        scrollbar-gutter: stable;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-flow {
        display: flex !important;
        flex-direction: column !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-height: 100% !important;
        overflow: hidden !important;
        padding: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results {
        display: flex !important;
        flex: 1 1 auto !important;
        flex-direction: column !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-height: 100% !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results__header {
        flex: 0 0 auto !important;
        padding-right: 4px !important;
    }

    .rebbify-ride-app.is-service-selection .serviceDiv {
        flex: 1 1 auto !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        padding-right: 5px !important;
        scrollbar-gutter: stable;
    }

    .rebbify-ride-app.is-service-selection .find_driver_wrapper {
        flex: 0 0 auto !important;
        width: 100% !important;
        margin-top: 12px !important;
        padding: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-map-panel {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
        border-radius: 14px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-map-panel #map,
    .rebbify-ride-app.is-service-selection .booking-wrapper__right #map {
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        border-radius: 14px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-title-row h1 {
        font-size: clamp(26px, 2vw, 34px) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-route-summary {
        min-height: 96px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        grid-template-columns: 88px minmax(0, 1fr) max-content !important;
        min-height: 96px !important;
        gap: 12px !important;
        padding: 10px 12px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image {
        width: 88px !important;
        height: 66px !important;
        max-width: 88px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        max-width: 88px !important;
        max-height: 66px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-name {
        font-size: 17px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price strong {
        font-size: 16px !important;
    }
}

/* Notebook/tablet: duas colunas para formulário/serviços; mapa inteiro embaixo. */
@media (min-width: 768px) and (max-width: 1199px) {
    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        width: 100% !important;
        height: auto !important;
        min-height: calc(100dvh - var(--ride-topbar-height, 54px)) !important;
        padding: 16px clamp(14px, 2.5vw, 26px) 26px !important;
        overflow: visible !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 18px !important;
        overflow: visible !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        max-height: none !important;
        padding: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(300px, .82fr) minmax(380px, 1.18fr) !important;
        gap: 18px !important;
        overflow: visible !important;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper,
    .rebbify-ride-app.is-service-selection .rebbify-service-flow {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper { grid-column: 1 !important; }
    .rebbify-ride-app.is-service-selection .rebbify-service-flow { grid-column: 2 !important; }

    .rebbify-ride-app.is-service-selection .rebbify-service-results {
        display: block !important;
        width: 100% !important;
    }

    .rebbify-ride-app.is-service-selection .serviceDiv {
        width: 100% !important;
        overflow: visible !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-map-panel {
        display: block !important;
        width: 100% !important;
        height: clamp(340px, 46dvh, 480px) !important;
        min-height: 340px !important;
        border-radius: 14px !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-map-panel #map,
    .rebbify-ride-app.is-service-selection .booking-wrapper__right #map {
        width: 100% !important;
        height: 100% !important;
        min-height: 340px !important;
        border-radius: 14px !important;
    }
}

/* Celular: uma coluna real, sem compressão horizontal; mapa após as opções. */
@media (max-width: 767px) {
    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        width: 100% !important;
        height: auto !important;
        min-height: calc(100dvh - var(--ride-topbar-height, 54px)) !important;
        padding: 10px 10px calc(24px + env(safe-area-inset-bottom)) !important;
        overflow: visible !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper,
    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
        overflow: visible !important;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper,
    .rebbify-ride-app.is-service-selection .rebbify-service-flow,
    .rebbify-ride-app.is-service-selection .rebbify-service-results,
    .rebbify-ride-app.is-service-selection .serviceDiv {
        display: block !important;
        grid-column: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-title-row h1 {
        font-size: clamp(23px, 7vw, 29px) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        grid-template-columns: 72px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 10px !important;
        min-height: 88px !important;
        padding: 9px 8px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image {
        width: 72px !important;
        height: 54px !important;
        max-width: 72px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        max-width: 72px !important;
        max-height: 54px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price {
        grid-column: 2 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 2px 0 0 !important;
        text-align: left !important;
        white-space: normal !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-map-panel {
        display: block !important;
        width: 100% !important;
        height: clamp(280px, 42dvh, 380px) !important;
        min-height: 280px !important;
        border-radius: 12px !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-map-panel #map,
    .rebbify-ride-app.is-service-selection .booking-wrapper__right #map {
        width: 100% !important;
        height: 100% !important;
        min-height: 280px !important;
        border-radius: 12px !important;
    }

    /* No celular o editor vira bottom-sheet e fica por cima do formulário. */
    .rebbify-home-request-clone .rebbify-request-time.is-editor-open .rebbify-schedule-editor {
        position: fixed !important;
        z-index: 70 !important;
        top: auto !important;
        left: 10px !important;
        right: 10px !important;
        bottom: max(10px, env(safe-area-inset-bottom)) !important;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100dvh - var(--ride-topbar-height, 54px) - 22px) !important;
        padding: 16px !important;
        border-radius: 18px !important;
        box-shadow: 0 22px 70px rgba(15, 15, 20, .28) !important;
    }
}

/* ========================================================================
   2026-09-15 — correção final: campos laterais sem compressão
   - Remove visualmente qualquer resumo duplicado de Partida/Destino.
   - Mantém os campos reais de origem/destino na lateral durante a seleção.
   - Reaplica a estrutura interna larga dos campos também após calcular preços.
   - Preserva layout responsivo em desktop, tablet e celular.
   ======================================================================== */
.rebbify-ride-app.is-service-selection .rebbify-route-summary {
    display: none !important;
}

.rebbify-ride-app.is-service-selection .ride_location_wrapper,
.rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-request-card,
.rebbify-ride-app.is-service-selection .ride_location_wrapper .booking-location-box,
.rebbify-ride-app.is-service-selection .ride_location_wrapper .booking-location-box__form,
.rebbify-ride-app.is-service-selection .ride_location_wrapper .booking-location-box__inner,
.rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-request-fields,
.rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-reference-field-group,
.rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-reference-options-row,
.rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-search-actions {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-request-fields {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}

.rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-reference-field-group {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    overflow: visible !important;
}

/* O campo externo não reserva espaço duplicado para os ícones. */
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field.input-group-custom,
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .pickup-area.rebbify-location-field,
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .destination-area.rebbify-location-field {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 64px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid transparent !important;
    border-radius: 7px !important;
    background: var(--rb-soft, #f2f2f2) !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field:focus-within,
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field.is-search-open {
    background: var(--rb-solid, #fff) !important;
    border-color: rgba(124, 77, 255, .55) !important;
    box-shadow: 0 0 0 3px rgba(124, 77, 255, .08) !important;
}

.rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control,
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-control {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 62px !important;
    height: auto !important;
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 7px 12px !important;
    border: 0 !important;
    border-radius: inherit !important;
    background: transparent !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-route-icon,
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .ride-location-field .input-group-custom__icon,
.rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control .input-group-custom__icon {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: 24px !important;
    min-width: 24px !important;
    height: 24px !important;
    min-height: 24px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-route-icon img,
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-route-location-icon {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field__input,
.rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control .input-group-custom__wrapper {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 46px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: center !important;
    gap: 1px !important;
    overflow: hidden !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field__input label {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    color: var(--rb-muted, #6f6f78) !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input,
.rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control .input-group-custom__input {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 28px !important;
    min-height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--rb-text, #111) !important;
    font-size: 15px !important;
    line-height: 28px !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-action,
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone .ride-location-field .location__icon,
.rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control .location__icon {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: auto !important;
    min-width: 34px !important;
    height: 40px !important;
    min-height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.rebbify-ride-app.is-service-selection .rebbify-home-request-clone #pickup_suggestions,
.rebbify-ride-app.is-service-selection .rebbify-home-request-clone #destination_suggestions {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    z-index: 70 !important;
}

.rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-request-time,
.rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-time-summary,
.rebbify-ride-app.is-service-selection .ride_location_wrapper #rideSearchBtn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

/* Desktop: formulário real à esquerda, catálogo no centro, mapa à direita. */
@media (min-width: 1200px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        grid-template-columns: minmax(0, 2.35fr) minmax(320px, .85fr) !important;
        gap: clamp(18px, 1.5vw, 26px) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        grid-template-columns: clamp(380px, 31vw, 470px) minmax(0, 1fr) !important;
        gap: 0 clamp(18px, 1.45vw, 26px) !important;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper {
        grid-column: 1 !important;
        grid-row: 1 !important;
        width: 100% !important;
        max-width: none !important;
        overflow-x: visible !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-flow {
        grid-column: 2 !important;
        grid-row: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-request-card__title {
        margin-bottom: 2px !important;
    }
}

/* Tablet/notebook: dois blocos equilibrados; em larguras menores a coluna continua fluida. */
@media (min-width: 900px) and (max-width: 1199px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        grid-template-columns: minmax(350px, .92fr) minmax(0, 1.08fr) !important;
        gap: 18px !important;
    }
}

/* Mobile: os campos ocupam 100% sem padding duplicado e sem resumo duplicado. */
@media (max-width: 767px) {
    .rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-request-fields {
        gap: 10px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-request-card .rebbify-location-control,
    .rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-location-control {
        grid-template-columns: 22px minmax(0, 1fr) auto !important;
        gap: 8px !important;
        padding: 7px 10px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-home-request-clone .rebbify-route-icon,
    .rebbify-ride-app.is-service-selection .rebbify-home-request-clone .ride-location-field .input-group-custom__icon {
        width: 22px !important;
        min-width: 22px !important;
    }
}

/* ========================================================================
   2026-09-15 — paradas imediatamente abaixo do destino
   O container de paradas é filho direto de .rebbify-request-fields. Regras
   antigas davam order:4 apenas às paradas enquanto a linha de agendamento
   ficava com order padrão (0), fazendo novas paradas aparecerem abaixo de
   "Embarcar agora". A ordem abaixo vale em desktop, tablet e mobile.
   ======================================================================== */
.rebbify-request-card .rebbify-request-fields > .rebbify-request-card__title {
    order: 1 !important;
}
.rebbify-request-card .rebbify-request-fields > .rebbify-reference-field-group {
    order: 2 !important;
}
.rebbify-request-card .rebbify-request-fields > #rideStopsContainer,
.rebbify-request-card .rebbify-request-fields > .ride-stops-container {
    order: 3 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}
.rebbify-request-card .rebbify-request-fields > .rebbify-reference-options-row {
    order: 4 !important;
}
.rebbify-request-card .rebbify-request-fields > .rebbify-delivery-note-field {
    order: 5 !important;
}
.rebbify-request-card .rebbify-request-fields > .rebbify-search-actions {
    order: 6 !important;
}

/* As paradas usam a mesma largura do grupo origem/destino no mobile e não
   podem criar rolagem horizontal ao abrir sugestões. */
@media (max-width: 991px) {
    .rebbify-request-card .ride-stop-row {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
    .rebbify-request-card .ride-stop-suggestions {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}


/* ========================================================================
   2026-09-23 — HOTFIX FINAL: cards horizontais + pagamento estilo referência
   Este arquivo é carregado depois de process-step.css. Por isso as regras
   abaixo são a fonte final de verdade no web/mobile e impedem overrides
   antigos de voltar a empilhar preço/descrição.
   ======================================================================== */

/* --- Catálogo de serviços: imagem | informações | preço, sempre horizontal --- */
@media (max-width: 767px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-group__list,
    .rebbify-ride-app.is-service-selection .rebbify-service-item {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        display: grid !important;
        grid-template-columns: clamp(58px, 18vw, 72px) minmax(0, 1fr) clamp(78px, 24vw, 98px) !important;
        grid-template-rows: minmax(64px, auto) !important;
        align-items: center !important;
        column-gap: clamp(7px, 2.4vw, 11px) !important;
        row-gap: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        min-height: 82px !important;
        padding: 8px 8px !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image {
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: start !important;
        width: clamp(58px, 18vw, 72px) !important;
        min-width: 0 !important;
        max-width: 72px !important;
        height: clamp(46px, 14vw, 54px) !important;
        margin: 0 !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        object-fit: contain !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-copy {
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: center !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-name-row {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 4px !important;
        width: 100% !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-name {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        font-size: clamp(13px, 4vw, 15px) !important;
        line-height: 1.15 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-capacity {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-meta,
    .rebbify-ride-app.is-service-selection .rebbify-service-description {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 2px 0 0 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
        line-height: 1.18 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-meta {
        font-size: clamp(10px, 3.2vw, 12px) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-description {
        font-size: clamp(10px, 3.15vw, 12px) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price {
        grid-column: 3 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-end !important;
        justify-content: center !important;
        width: clamp(78px, 24vw, 98px) !important;
        min-width: clamp(78px, 24vw, 98px) !important;
        max-width: clamp(78px, 24vw, 98px) !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: right !important;
        white-space: nowrap !important;
        overflow: visible !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price__current {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 3px !important;
        width: 100% !important;
        min-width: 0 !important;
        white-space: nowrap !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price strong {
        display: inline-block !important;
        margin: 0 !important;
        font-size: clamp(12px, 3.9vw, 15px) !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price__original {
        display: block !important;
        width: 100% !important;
        margin-top: 2px !important;
        text-align: right !important;
        white-space: nowrap !important;
        font-size: clamp(9px, 2.8vw, 11px) !important;
    }
}

@media (max-width: 380px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        grid-template-columns: 54px minmax(0, 1fr) 76px !important;
        column-gap: 6px !important;
        min-height: 76px !important;
        padding: 7px 6px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-image {
        width: 54px !important;
        max-width: 54px !important;
        height: 44px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-price {
        width: 76px !important;
        min-width: 76px !important;
        max-width: 76px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-name {
        font-size: 12.5px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-price strong {
        font-size: 12px !important;
    }
}

/* --- Formas de pagamento: cabeçalho com Adicionar no canto superior direito --- */
.rebbify-payment-sheet__topbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 12px !important;
    padding-right: 0 !important;
}

#ridePaymentAddTrigger {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    min-height: 30px !important;
    padding: 0 13px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--rb-soft, #f3f3f3) !important;
    color: var(--rb-text, #111) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

#ridePaymentAddTrigger:disabled,
.rebbify-payment-add-tile:disabled {
    opacity: .42 !important;
    cursor: not-allowed !important;
}

.rebbify-payment-sheet__subtopbar--with-back {
    display: grid !important;
    grid-template-columns: 34px minmax(0, 1fr) 34px !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
}

.rebbify-payment-sheet__subtopbar--with-back h3 {
    min-width: 0 !important;
    text-align: center !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.rebbify-payment-sheet__topbar-spacer {
    width: 34px !important;
    height: 34px !important;
}

.rebbify-payment-add-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-top: 18px !important;
}

.rebbify-payment-add-tile {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 78px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: var(--rb-soft, #f3f3f3) !important;
    color: var(--rb-text, #111) !important;
    cursor: pointer !important;
}

.rebbify-payment-add-tile__cards {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    height: 28px !important;
}

.rebbify-payment-add-tile__cards img {
    width: 28px !important;
    height: 20px !important;
    object-fit: contain !important;
}

.rebbify-payment-add-note,
.rebbify-payment-cardform__security {
    margin: 18px 2px 0 !important;
    color: var(--rb-text, #666) !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
}

/* Troco: preferência real persistida na corrida em dinheiro. */
.rebbify-cash-change-option {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    margin: 12px 0 0 !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid var(--rb-border, #ececec) !important;
}

.rebbify-cash-change-option[hidden] {
    display: none !important;
}

.rebbify-cash-change-option__copy {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    gap: 3px !important;
}

.rebbify-cash-change-option__copy strong {
    color: var(--rb-text, #111) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}

.rebbify-cash-change-option__copy small {
    color: var(--rb-text, #666) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}

/* Formulário Adicionar cartão: validade/CVV continuam lado a lado e não espremem. */
.rebbify-payment-cardform__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.rebbify-payment-cardform__field--full {
    grid-column: 1 / -1 !important;
}

.rebbify-payment-cardform__field small {
    font-size: .82em !important;
    font-weight: 500 !important;
    color: var(--rb-muted, #777) !important;
}

@media (max-width: 640px) {
    #ridePaymentAddTrigger {
        min-height: 34px !important;
        padding: 0 12px !important;
        font-size: 13px !important;
    }

    .rebbify-payment-add-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .rebbify-payment-add-tile {
        min-height: 76px !important;
        padding: 12px 8px !important;
        font-size: 14px !important;
    }

    .rebbify-payment-cardform__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px 10px !important;
    }

    .rebbify-payment-cardform__field--full {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 340px) {
    .rebbify-payment-cardform__grid {
        grid-template-columns: 1fr !important;
    }
    .rebbify-payment-cardform__field--full {
        grid-column: 1 !important;
    }
}


/* ========================================================================
   2026-09-24 — ajuste visual pontual solicitado
   Somente: cartão oculto até adicionar, Pesquisar retangular, CTA da corrida
   maior/roxo e "Embarcar agora" menos arredondado e um pouco maior.
   ======================================================================== */

/* A opção Cartão da lista só existe visualmente depois que o usuário adiciona
   um cartão. A tela "Adicionar" continua disponível pelo botão + Adicionar. */
.rebbify-payment-method-row[data-static-method="card"][hidden] {
    display: none !important;
}

/* Pesquisar: mesma linguagem dimensional dos campos de origem/destino. */
.rebbify-ride-app[data-has-running-ride="0"] .rebbify-request-card #rideSearchBtn,
.rebbify-ride-app[data-has-running-ride="0"] .rebbify-home-request-clone #rideSearchBtn {
    width: 100% !important;
    min-height: 54px !important;
    height: 54px !important;
    padding: 0 16px !important;
    border-radius: 8px !important;
    background: var(--rebbify-purple, #7C4DFF) !important;
    border-color: var(--rebbify-purple, #7C4DFF) !important;
    color: #fff !important;
    box-shadow: none !important;
    transform: none !important;
}

/* CTA final de pedir corrida: maior, responsivo e sempre roxo. */
.rebbify-ride-app.is-service-selection .rebbify-actionbar-submit,
.rebbify-ride-app.is-service-selection .findDriverBtn {
    min-height: 58px !important;
    height: auto !important;
    padding: 12px 16px !important;
    border-radius: 10px !important;
    background: var(--rebbify-purple, #7C4DFF) !important;
    border-color: var(--rebbify-purple, #7C4DFF) !important;
    color: #fff !important;
    font-size: clamp(14px, 1.2vw, 16px) !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
}
.rebbify-ride-app.is-service-selection .rebbify-actionbar-submit:hover:not(:disabled),
.rebbify-ride-app.is-service-selection .findDriverBtn:hover:not(:disabled),
.rebbify-ride-app.is-service-selection .rebbify-actionbar-submit:focus-visible,
.rebbify-ride-app.is-service-selection .findDriverBtn:focus-visible {
    background: var(--rebbify-purple-dark, #6d3df1) !important;
    border-color: var(--rebbify-purple-dark, #6d3df1) !important;
    color: #fff !important;
}

/* "Embarcar agora": formato retangular com cantos suaves e toque maior. */
.rebbify-request-card .rebbify-time-summary {
    min-height: 50px !important;
    height: 50px !important;
    border-radius: 8px !important;
    padding-inline: 11px !important;
}

@media (max-width: 767px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-mobile-chip {
        min-height: 36px !important;
        height: 36px !important;
        padding: 0 12px !important;
        border-radius: 7px !important;
        font-size: 11px !important;
        line-height: 1 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-mobile-chip__icon {
        width: 16px !important;
        height: 16px !important;
        flex-basis: 16px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-submit,
    .rebbify-ride-app.is-service-selection .findDriverBtn {
        min-height: 56px !important;
        padding: 10px 14px !important;
        font-size: clamp(13px, 3.8vw, 15px) !important;
    }
}

/* ========================================================================
   2026-09-24 — FIX FINAL: pin centralizado no círculo das recomendações
   O seletor genérico de .ride-location-field .location__icon posicionava
   também os ícones dos <li> do autocomplete à direita. Este bloco precisa
   ficar no final deste arquivo, que é carregado depois de process-step.css.
   Escopo: somente sugestões de partida/destino em /solicite-uma-viagem-pelo-app-da-rebbify.
   ======================================================================== */
.rebbify-home-request-clone #pickup_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .location__icon,
.rebbify-home-request-clone #destination_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .location__icon,
.rebbify-home-request-clone #pickup_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .menu-icon,
.rebbify-home-request-clone #destination_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .menu-icon {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    flex: 0 0 48px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    line-height: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background: var(--rb-soft, #f4f1f8) !important;
}

.rebbify-home-request-clone #pickup_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .location__icon > img,
.rebbify-home-request-clone #destination_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .location__icon > img,
.rebbify-home-request-clone #pickup_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .menu-icon > img,
.rebbify-home-request-clone #destination_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .menu-icon > img,
.rebbify-home-request-clone #pickup_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .menu-icon > svg,
.rebbify-home-request-clone #destination_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .menu-icon > svg {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    object-fit: contain !important;
    flex: 0 0 auto !important;
}

/* ========================================================================
   2026-09-25 — Agendamento inline no painel lateral
   O editor substitui a visão de origem/destino no MESMO painel. Não é modal,
   popover ou bottom-sheet e não cria nenhuma camada adicional sobre o mapa.
   ======================================================================== */
.rebbify-home-request-clone.is-schedule-editing {
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.rebbify-home-request-clone.is-schedule-editing .booking-location-box__form,
.rebbify-home-request-clone.is-schedule-editing .booking-location-box__inner {
    min-width: 0 !important;
}

.rebbify-request-fields.is-schedule-editing {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
}

.rebbify-request-fields.is-schedule-editing > .rebbify-request-card__title,
.rebbify-request-fields.is-schedule-editing > .rebbify-reference-field-group,
.rebbify-request-fields.is-schedule-editing > #rideStopsContainer,
.rebbify-request-fields.is-schedule-editing > .rebbify-search-actions {
    display: none !important;
}

.rebbify-request-fields.is-schedule-editing > .rebbify-reference-options-row {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.rebbify-request-fields.is-schedule-editing > .rebbify-reference-options-row > .rebbify-request-time,
.rebbify-request-fields.is-schedule-editing #rideRequestTime {
    position: static !important;
    z-index: auto !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}

.rebbify-request-fields.is-schedule-editing #rideTimeSummaryButton {
    display: none !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor.rebbify-schedule-editor,
.rebbify-request-fields.is-schedule-editing #rideScheduleEditor.rebbify-schedule-editor[aria-hidden="false"],
.rebbify-home-request-clone .rebbify-request-time.is-editor-open #rideScheduleEditor.rebbify-schedule-editor {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: auto !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    transform: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    isolation: auto !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-schedule-editor__topbar {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    background: transparent !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-schedule-editor__title {
    margin: 0 0 16px !important;
    color: var(--rb-text, var(--rebbify-ref-ink)) !important;
    font-size: clamp(21px, 1.7vw, 26px) !important;
    line-height: 1.16 !important;
    font-weight: 800 !important;
    letter-spacing: -.03em !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .ride-schedule-fields {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin: 0 !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-schedule-picker {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 54px !important;
    padding: 6px 12px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: var(--rb-soft, var(--rebbify-ref-surface)) !important;
    color: var(--rb-text, var(--rebbify-ref-ink)) !important;
    box-shadow: none !important;
    grid-template-columns: 26px 68px minmax(0, 1fr) !important;
    gap: 8px !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-schedule-picker input[type="date"],
.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-schedule-picker input[type="time"] {
    min-width: 0 !important;
    width: 100% !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--rb-text, var(--rebbify-ref-ink)) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 40px !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-reserve-info {
    display: grid !important;
    gap: 0 !important;
    width: 100% !important;
    margin: 14px 0 0 !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-reserve-info__item {
    display: grid !important;
    grid-template-columns: 32px minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: center !important;
    padding: 11px 0 !important;
    border-bottom: 1px solid var(--rb-border, var(--rebbify-ref-line)) !important;
    color: var(--rb-text, var(--rebbify-ref-ink)) !important;
    font-size: 12px !important;
    line-height: 1.38 !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-reserve-info__item:last-child {
    border-bottom: 0 !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-reserve-info__icon {
    width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 9px !important;
    background: var(--rb-brand-soft, var(--rebbify-ref-brand-tint)) !important;
    color: var(--rb-brand, var(--rebbify-ref-brand)) !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-reserve-terms-link {
    margin: 5px 0 14px !important;
    color: var(--rb-link, var(--rebbify-ref-ink)) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

.rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-schedule-advance {
    position: static !important;
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: var(--rb-brand, var(--rebbify-ref-brand)) !important;
    color: var(--rb-on-accent, #fff) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    box-shadow: none !important;
}

@media (min-width: 861px) {
    .rebbify-request-fields.is-schedule-editing #rideScheduleEditor.rebbify-schedule-editor {
        max-height: calc(100dvh - var(--ride-topbar-height, 64px) - 72px) !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        scrollbar-width: thin;
    }
}

@media (max-width: 860px) {
    .rebbify-request-fields.is-schedule-editing #rideScheduleEditor.rebbify-schedule-editor {
        max-height: none !important;
        overflow-y: visible !important;
    }

    .rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-schedule-editor__title {
        font-size: clamp(21px, 6vw, 27px) !important;
    }

    .rebbify-request-fields.is-schedule-editing #rideScheduleEditor .rebbify-schedule-picker {
        grid-template-columns: 26px 62px minmax(0, 1fr) !important;
    }
}

/* Ao editar horário a partir da seleção de serviço no mobile, o painel de rota
   volta a aparecer somente durante a edição, sem alterar o estado da cotação. */
@media (max-width: 767px) {
    #rebbifyRideApp.is-service-selection.is-schedule-editing .ride_location_wrapper {
        display: block !important;
        width: 100% !important;
    }

    #rebbifyRideApp.is-service-selection.is-schedule-editing .rebbify-service-flow,
    #rebbifyRideApp.is-service-selection.is-schedule-editing .find_driver_wrapper {
        display: none !important;
    }
}


/* ========================================================================
   2026-09-25 — CARD DE SOLICITACAO DE VIAGEM / REFERENCIA VISUAL
   Escopo: somente a tela inicial de Viagem em /solicite-uma-viagem-pelo-app-da-rebbify.
   Mantem os mesmos IDs, icones, eventos, autocomplete, GPS, paradas e fluxo.
   ======================================================================== */

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone.rebbify-request-card {
    --rb-request-card-bg: #ffffff;
    --rb-request-field-bg: #f3f4f6;
    --rb-request-field-hover: #eeeeee;
    --rb-request-ink: #17171b;
    --rb-request-muted: #5f6368;
    --rb-request-focus: rgba(124, 77, 255, .18);
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 18px !important;
    border: 0 !important;
    border-radius: 18px !important;
    background: var(--rb-request-card-bg) !important;
    box-shadow: 0 10px 28px rgba(17, 24, 39, .10) !important;
    overflow: visible !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .booking-location-box__form,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .booking-location-box__inner,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-request-fields {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-request-fields {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-request-card__title {
    margin: 0 0 2px !important;
    padding: 0 !important;
    color: var(--rb-request-ink) !important;
    font-size: clamp(22px, 1.7vw, 26px) !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    letter-spacing: -.025em !important;
    text-align: left !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone:not(.is-schedule-editing) .rebbify-reference-field-group {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .ride-location-field,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .ride-location-field.input-group-custom {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 56px !important;
    height: 56px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 11px !important;
    background: var(--rb-request-field-bg) !important;
    box-shadow: none !important;
    overflow: visible !important;
    transition: background-color .16s ease, box-shadow .16s ease !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .ride-location-field:hover {
    background: var(--rb-request-field-hover) !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .ride-location-field:focus-within,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .ride-location-field.is-search-open {
    border: 0 !important;
    background: var(--rb-request-field-bg) !important;
    box-shadow: 0 0 0 3px var(--rb-request-focus) !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-control {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 56px !important;
    height: 56px !important;
    display: grid !important;
    grid-template-columns: 26px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 13px !important;
    border: 0 !important;
    border-radius: 11px !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Mantem exatamente os arquivos de icone existentes; apenas normaliza o encaixe. */
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-route-icon,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-control .input-group-custom__icon {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    min-height: 26px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-route-icon img,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-route-location-icon {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
    object-fit: contain !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field__input,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-control .input-group-custom__wrapper {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* A referencia mostra somente o texto principal dentro do campo. */
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field__input > label,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-control .input-group-custom__wrapper > label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 56px !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    color: var(--rb-request-ink) !important;
    font-size: 16px !important;
    line-height: 56px !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    box-shadow: none !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-field .input-group-custom__input::placeholder {
    color: var(--rb-request-muted) !important;
    opacity: 1 !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-action,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-location-control .location__icon {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: auto !important;
    min-width: 30px !important;
    height: 40px !important;
    min-height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* O + usa o mesmo SVG/acao existentes; apenas recebe o acabamento da referencia. */
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .ride-add-stop-circle {
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    flex: 0 0 30px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(124, 77, 255, .10) !important;
    color: var(--rebbify-purple, #7c4dff) !important;
    box-shadow: none !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .ride-add-stop-circle svg {
    width: 17px !important;
    height: 17px !important;
    color: var(--rebbify-purple, #7c4dff) !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-pickup-gps-btn {
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    flex: 0 0 30px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-reference-options-row,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-request-time {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-time-summary {
    width: 100% !important;
    min-height: 56px !important;
    height: 56px !important;
    display: grid !important;
    grid-template-columns: 26px minmax(0, 1fr) 20px !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 13px !important;
    border: 0 !important;
    border-radius: 11px !important;
    background: var(--rb-request-field-bg) !important;
    color: var(--rb-request-ink) !important;
    box-shadow: none !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-time-summary:hover,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-time-summary:focus-visible {
    background: var(--rb-request-field-hover) !important;
    box-shadow: 0 0 0 3px var(--rb-request-focus) !important;
    outline: 0 !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-time-summary__icon {
    color: var(--rebbify-purple, #7c4dff) !important;
    background: transparent !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-time-summary__icon svg {
    fill: none !important;
    background: transparent !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-time-summary__chevron {
    color: var(--rb-request-ink) !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-time-summary__copy {
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    overflow: hidden !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-time-summary__copy strong {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    color: var(--rb-request-ink) !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-time-summary__copy small {
    display: none !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-search-actions {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone #rideSearchBtn {
    position: relative !important;
    width: 100% !important;
    min-height: 56px !important;
    height: 56px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 48px !important;
    border: 0 !important;
    border-radius: 11px !important;
    background: var(--rebbify-purple, #7c4dff) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    font-size: 16px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    text-align: center !important;
    transform: none !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone #rideSearchBtn:hover:not(:disabled),
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone #rideSearchBtn:focus-visible {
    background: var(--rebbify-purple-dark, #6d3df1) !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 3px rgba(124, 77, 255, .18) !important;
    outline: 0 !important;
}

#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone #rideSearchBtn:disabled {
    opacity: 1 !important;
    cursor: not-allowed !important;
}

/* A seta do botão Pesquisar foi removida do componente.
   Não reposicionar/recriar seta aqui; o contrato final garante texto centralizado. */

/* Tema escuro: mesma geometria da referencia, sem quebrar a preferencia de tema. */
html[data-theme="dark"] #rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone.rebbify-request-card {
    --rb-request-card-bg: #1c1c22;
    --rb-request-field-bg: #27272f;
    --rb-request-field-hover: #2d2d36;
    --rb-request-ink: #f5f5f7;
    --rb-request-muted: #c1c1c9;
    --rb-request-focus: rgba(124, 77, 255, .30);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .28) !important;
}

/* O editor de agendamento continua substituindo o mesmo painel, sem herdar
   texto claro sobre superficie branca no tema claro. */
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone.is-schedule-editing,
#rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone.is-schedule-editing .rebbify-schedule-editor {
    color: var(--rb-request-ink) !important;
}

@media (max-width: 991px) {
    #rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone.rebbify-request-card {
        padding: 16px !important;
        border-radius: 16px !important;
    }

    #rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-request-card__title {
        font-size: clamp(21px, 5.6vw, 25px) !important;
    }
}

@media (max-width: 420px) {
    #rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone.rebbify-request-card {
        padding: 14px !important;
        border-radius: 16px !important;
    }

    #rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-request-fields {
        gap: 10px !important;
    }

    #rebbifyRideApp[data-has-running-ride="0"][data-active-service-type="ride"]:not(.is-service-selection) .rebbify-home-request-clone .rebbify-reference-field-group {
        gap: 9px !important;
    }
}

/* Foco/geometria final dos controles da corrida: ver ride-process-contract.css. */
