.ride-confirmation__header {
            justify-content: unset;
            flex-wrap: unset;

        }

        .ride-safety-floating-button {
            position: absolute;
            top: 16px;
            left: 16px;
            right: auto;
            z-index: 20;
            width: 52px;
            height: 52px;
            border: 0;
            border-radius: 50%;
            background: var(--rb-brand, #7C4DFF);
            color: var(--rb-on-accent, #fff);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 27px;
            line-height: 1;
            box-shadow: 0 6px 18px rgba(0, 0, 0, .28);
            transition: transform .18s ease, box-shadow .18s ease;
        }

        .ride-safety-floating-button:hover,
        .ride-safety-floating-button:focus-visible {
            color: #fff;
            background: #6A3FEA;
            transform: translateY(-1px);
            box-shadow: 0 8px 22px rgba(0, 0, 0, .34);
        }

        .ride-safety-floating-button:focus-visible {
            outline: 3px solid rgba(255, 255, 255, .9);
            outline-offset: 2px;
        }

        .ride-safety-modal-content {
            border-radius: 22px;
            overflow: hidden;
        }

        .ride-safety-modal-icon {
            width: 46px;
            height: 46px;
            border-radius: 50%;
            background: var(--rb-soft, #f3f3f3);
            color: var(--rb-text, #111827);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            flex: 0 0 46px;
        }

        .ride-safety-trip-info {
            padding: 14px 16px;
            border: 1px solid hsl(var(--border-color));
            border-radius: 14px;
            background: var(--rb-soft, #f8f8f8);
        }

        .ride-safety-action {
            border: 1px solid hsl(var(--border-color));
            border-radius: 14px;
            background: var(--rb-solid, #fff);
            color: var(--rb-text, #111);
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 14px;
            text-decoration: none;
        }

        .ride-safety-action:hover {
            color: var(--rb-text, #111);
            background: var(--rb-soft, #f8f8f8);
        }

        .ride-safety-action__icon {
            width: 42px;
            height: 42px;
            border-radius: 50%;
            background: var(--rb-soft, #f0f0f0);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 21px;
            flex: 0 0 42px;
        }

        .ride-safety-action--emergency {
            border-color: #7C4DFF;
            background: var(--rb-brand, #7C4DFF);
            color: var(--rb-on-accent, #fff);
        }

        .ride-safety-action--emergency:hover,
        .ride-safety-action--emergency:focus {
            background: #6A3FEA;
            color: #fff;
        }

        .ride-safety-action--emergency .ride-safety-action__icon {
            background: rgba(255,255,255,.12);
            color: #fff;
        }

        .ride-map-picker-center {
            position: absolute;
            left: 50%;
            top: 50%;
            z-index: 35;
            width: 46px;
            height: 58px;
            transform: translate(-50%, -100%);
            pointer-events: none;
        }

        .ride-map-picker-pin {
            width: 46px;
            height: 46px;
            border-radius: 50% 50% 50% 8px;
            transform: rotate(-45deg);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: var(--rb-soft, #f3f3f3);
            color: var(--rb-text, #111827);
            box-shadow: 0 8px 24px rgba(0,0,0,.28);
        }

        .ride-map-picker-pin i { transform: rotate(45deg); font-size: 23px; }

        .ride-map-picker-panel {
            position: absolute;
            left: 50%;
            bottom: 16px;
            z-index: 40;
            width: min(460px, calc(100% - 32px));
            transform: translateX(-50%);
            padding: 14px;
            border-radius: 16px;
            background: var(--rb-solid, #fff);
            box-shadow: 0 16px 42px rgba(0,0,0,.22);
        }

        .ride-map-picker-copy { display:flex; flex-direction:column; gap:3px; min-width:0; }
        .ride-map-picker-copy strong { color: var(--rb-text, #111); font-size:15px; }
        .ride-map-picker-copy span { color: var(--rb-text, #616161); font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .ride-map-picker-actions { display:grid; grid-template-columns:1fr 1.35fr; gap:8px; margin-top:12px; }
        .ride-map-picker-actions button { min-height:44px; border-radius:10px; font-weight:800; }
        .ride-map-picker-cancel { border: 1px solid var(--rb-border, #d6d6d6); background: var(--rb-solid, #fff); color: var(--rb-text, #111); }
        .ride-map-picker-confirm { border: 1px solid #7C4DFF; background: #7C4DFF; color: #fff; }
        .ride-map-picker-confirm:disabled { opacity:.48; cursor:not-allowed; }

        .ride-safety-sos-button {
            background: #7C4DFF;
            border-color: #7C4DFF;
            color: #fff;
            min-height: 48px;
            border-radius: 12px;
            font-weight: 700;
        }

        .ride-safety-sos-button:hover,
        .ride-safety-sos-button:focus {
            background: #6A3FEA;
            border-color: #6A3FEA;
            color: #fff;
        }

        @media screen and (max-width: 991px) {
            .ride-safety-floating-button {
                position: fixed;
                top: auto;
                right: 14px;
                bottom: calc(18px + env(safe-area-inset-bottom));
                z-index: 520;
            }

            .ride-map-picker-panel {
                position: fixed;
                left: 12px;
                right: 12px;
                bottom: calc(12px + env(safe-area-inset-bottom));
                width: auto;
                transform: none;
                z-index: 510;
            }

            .ride-map-picker-center {
                position: absolute;
                left: 50%;
                top: 50%;
                z-index: 505;
            }
        }

        .call__btn {
            height: 48px;
            width: 48px;
            display: flex;
            justify-content: center;
            align-items: center;
            border-radius: 16px;
            color: hsl(var(--base));
            background-color: hsl(var(--base) / 0.2);
            flex-shrink: 0;
        }

        .rating__value {
            line-height: 1;
            padding-left: 2px;
        }

        .security-code-container {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 28px;
            margin: 20px auto;
            flex-direction: row;
            justify-content: start;
            align-items: center;
        }

        .code-digit {
            width: 40px;
            height: 40px;
            font-size: 16px;
            font-weight: bold;
            text-align: center;
            border: none;
            border-radius: 8px;
            outline: none;
            transition: border-color 0.3s ease;
            background-color: var(--rb-soft, #F4F4F6);
        }


        .security-code-inputs {
            display: flex;
            gap: 6px !important;
        }

        .booking-wrapper__right #map {
            width: 100%;
            height: 850px;
            border-radius: 8px;
        }

        @media screen and (max-width:991px) {
            .booking-wrapper__right #map {
                height: 400px;
            }
        }

        .star-rating__item.active i {
            color: #FFD700;
        }

        .h-49 {
            height: 49px !important;
        }

        .location-distance-box {
            border-radius: 6px;
            padding: 0px;
            min-width: 180px;
        }

        .location-distance-box p {
            font-size: 1rem;
        }

        .location-distance-box strong {
            color: hsl(var(--base))
        }

        .location-distance-box p:not(:last-child) {
            margin-bottom: 5px;
        }

        .ride-request__close-btn {
            border: 1px solid var(--rb-border, #ddd);
            border-radius: 50%;
            padding: 2px;
            font-size: 15px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .payment-select-wrapper {
            height: 45px;
        }

        .ride-request-time {
            margin-top: 12px;
        }

        .ride-request-time__selector {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            min-height: 42px;
            padding: 0 12px;
            border-radius: 999px;
            background: var(--rb-soft, #f3f4f6);
            color: var(--rb-text, #111827);
        }

        .ride-request-time__icon {
            display: inline-flex;
            color: hsl(var(--base));
        }

        .ride-request-mode {
            width: auto;
            min-width: 118px;
            height: 40px;
            padding: 0 28px 0 0;
            border: 0 !important;
            background-color: transparent !important;
            box-shadow: none !important;
            color: var(--rb-text, #111827);
            font-weight: 700;
            cursor: pointer;
        }

        .ride-schedule-fields {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
            margin-top: 10px;
        }

        .ride-schedule-field label {
            display: block;
            margin-bottom: 5px;
            font-size: 12px;
            font-weight: 700;
            color: var(--rb-text, #4b5563);
        }

        .ride-schedule-field .form--control {
            min-height: 44px;
        }

        @media (max-width: 480px) {
            .ride-schedule-fields {
                grid-template-columns: 1fr;
            }
        }

        .ride-request-banner {
            padding: 24px;
        }

        .driver-car-rating {
            display: flex;
            align-items: center
        }

        .destination-info__tip {
            border-bottom: 1px dashed hsl(var(--border-color));
            margin-bottom: 6px;
            padding-bottom: 6px;
        }

        .destination-info__tip-right .add-tips {
            border: 1px solid var(--rb-border, #ddd);
            border-radius: 50%;
            width: 24px;
            height: 24px;
            background: hsl(var(--base)/0.2);
            font-size: 14px;
        }

        .tips-badge {
            padding: 6px 18px !important;
            background: hsl(var(--success) / 0.2);
            color: hsl(var(--success));
            border-radius: 8px;
            font-weight: 600;
        }

        .tips-list {
            display: flex;
            flex-wrap: wrap;
            gap: 7px;
            margin-bottom: 10px;
        }

        .coupon-modal-card {
            background-color: hsl(var(--base)/0.15);
            padding: 16px;
            border-radius: 16px
        }

        .search-input-dropdown__item.highlighted {
            background-color: hsl(var(--base) / 0.05) !important;
            color: white;
        }

        .typing-loader-wrapper {
            height: 70px;
            cursor: default;
            user-select: none;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            color: var(--rb-muted, #6c757d);
        }

        /* dots container */
        .typing-loader {
            display: flex;
            gap: 8px;
            margin-bottom: 6px;
        }

        /* individual dots */
        .typing-loader span {
            width: 12px;
            height: 12px;
            background-color: #6c757d;
            border-radius: 50%;
            animation: typingDot 1.4s infinite ease-in-out both;
        }

        /* delay for each dot */
        .typing-loader span:nth-child(1) {
            animation-delay: 0s;
        }

        .typing-loader span:nth-child(2) {
            animation-delay: 0.2s;
        }

        .typing-loader span:nth-child(3) {
            animation-delay: 0.4s;
        }

        /* animation */
        @keyframes typingDot {
            0% {
                opacity: 0.3;
                transform: translateY(0);
            }

            20% {
                opacity: 1;
                transform: translateY(-4px);
            }

            40% {
                opacity: 0.3;
                transform: translateY(0);
            }

            100% {
                opacity: 0.3;
            }
        }

        /* text below dots */
        .typing-loader--lg span {
            width: 14px;
            height: 14px;
        }

        .typing-loader--lg {
            gap: 10px;
        }

        .typing-text {
            font-size: 0.9rem;
            font-style: italic;
        }

        .fare-loader-wrapper {
            padding: 12px 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }

        .fare-loader-wrapper .typing-text {
            font-size: 1rem;
        }

        .typing-loader--button {
            display: flex;
            gap: 4px;
        }

        .typing-loader--button span {
            width: 6px;
            height: 6px;
            background-color: var(--rb-solid, #fff);
            border-radius: 50%;
            animation: typingDot 1.2s infinite ease-in-out both;
        }

        .typing-loader--button span:nth-child(1) {
            animation-delay: 0s;
        }

        .typing-loader--button span:nth-child(2) {
            animation-delay: 0.2s;
        }

        .typing-loader--button span:nth-child(3) {
            animation-delay: 0.4s;
        }

        .search-input-dropdown__no-results {
            display: flex;
            justify-content: center;
            align-items: center;
            cursor: default;
            pointer-events: none;
            color: var(--rb-muted, #888);
            padding: 0.5rem 0;
            font-style: normal;
            width: 100%;
        }

        /* Rebbify ride request UX audit: autocomplete, schedule, stops, coupon and CTA */
        .booking-wrapper__left,
        .ride_location_wrapper,
        .booking-location-box,
        .booking-location-box__form,
        .booking-location-box__inner,
        .ride-location-field {
            overflow: visible !important;
        }

        .booking-wrapper__left {
            position: relative;
            z-index: 10;
        }

        .booking-location-box {
            position: relative;
            z-index: 40;
            border: 0 !important;
            border-radius: 20px;
            box-shadow: 0 8px 30px rgba(15, 23, 42, .08);
        }

        .ride-card-heading .title {
            color: var(--rb-text, #111827);
            font-weight: 800;
        }

        .ride-card-subtitle {
            color: var(--rb-muted, #64748b);
            font-size: 12px;
        }

        .ride-location-field {
            position: relative;
            z-index: 50;
            margin-bottom: 10px;
            border: 1px solid var(--rb-border, #e5e7eb);
            border-radius: 14px;
            background: var(--rb-soft, #f8fafc);
            transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
        }

        .ride-location-field:focus-within,
        .ride-location-field.is-search-open {
            z-index: 30;
            border-color: hsl(var(--base));
            background: var(--rb-solid, #fff);
            box-shadow: 0 0 0 3px hsl(var(--base) / .12);
        }

        .ride-location-label {
            display: block;
            margin-bottom: 1px;
            color: var(--rb-muted, #64748b);
            font-size: 10px;
            font-weight: 800;
            letter-spacing: .02em;
            text-transform: uppercase;
        }

        .ride-location-field .input-group-custom__input {
            min-height: 25px;
            padding-top: 0 !important;
            padding-bottom: 0 !important;
            border: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            color: var(--rb-text, #111827) !important;
            font-size: 14px;
            font-weight: 650;
        }

        .search-input-dropdown__wrapper-two {
            position: absolute !important;
            top: calc(100% + 8px) !important;
            left: 0 !important;
            right: 0 !important;
            z-index: 50 !important;
            width: 100% !important;
            max-height: min(430px, 54vh) !important;
            margin: 0 !important;
            padding: 6px !important;
            overflow-y: auto !important;
            overscroll-behavior: contain;
            border: 1px solid var(--rb-border, #e5e7eb) !important;
            border-radius: 16px !important;
            background: var(--rb-solid, #fff) !important;
            box-shadow: 0 18px 45px rgba(15, 23, 42, .18) !important;
        }

        .search-input-dropdown__item {
            display: flex !important;
            align-items: center !important;
            gap: 11px !important;
            min-height: 56px;
            padding: 9px 10px !important;
            border: 0 !important;
            border-radius: 11px !important;
            background: var(--rb-solid, #fff) !important;
            color: var(--rb-text, #111827) !important;
        }

        .search-input-dropdown__item:hover,
        .search-input-dropdown__item.highlighted {
            background: var(--rb-soft, #f3f4f6) !important;
            color: var(--rb-text, #111827) !important;
        }

        .search-input-dropdown__item .location__icon,
        .search-input-dropdown__item .menu-icon {
            width: 36px;
            height: 36px;
            flex: 0 0 36px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            background: var(--rb-soft, #f1f5f9);
            color: hsl(var(--base));
        }

        .search-input-dropdown__item .location__icon img {
            width: 18px;
            height: 18px;
            object-fit: contain;
        }

        .search-input-dropdown__no-results {
            min-height: 46px !important;
            justify-content: flex-start !important;
            color: var(--rb-muted, #64748b) !important;
            background: var(--rb-solid, #fff) !important;
            line-height: 1.35;
        }

        .ride-request-time {
            margin-top: 14px;
            padding-top: 14px;
            border-top: 1px solid var(--rb-border, #eef2f7);
        }

        .ride-request-time__label {
            display: block;
            margin-bottom: 8px;
            color: var(--rb-text, #334155);
            font-size: 12px;
            font-weight: 800;
        }

        .ride-request-time__selector {
            display: grid !important;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 8px;
            width: 100%;
            height: auto !important;
            padding: 0 !important;
            border-radius: 0 !important;
            background: transparent !important;
        }

        .ride-request-mode-btn {
            min-width: 0;
            min-height: 58px;
            display: flex;
            align-items: center;
            gap: 9px;
            padding: 10px 11px;
            border: 1px solid var(--rb-border, #e5e7eb);
            border-radius: 13px;
            background: var(--rb-solid, #fff);
            color: var(--rb-text, #111827);
            text-align: left;
            transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
        }

        .ride-request-mode-btn:hover {
            background: var(--rb-soft, #f8fafc);
        }

        .ride-request-mode-btn.is-active {
            border-color: hsl(var(--base));
            background: hsl(var(--base) / .07);
            box-shadow: inset 0 0 0 1px hsl(var(--base) / .12);
        }

        .ride-request-mode-btn .ride-request-time__icon {
            width: 34px;
            height: 34px;
            flex: 0 0 34px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            background: hsl(var(--base) / .1);
            color: hsl(var(--base));
        }

        .ride-request-mode-btn strong,
        .ride-request-mode-btn small {
            display: block;
            line-height: 1.2;
        }

        .ride-request-mode-btn strong {
            font-size: 13px;
            font-weight: 800;
        }

        .ride-request-mode-btn small {
            margin-top: 2px;
            color: var(--rb-muted, #64748b);
            font-size: 10px;
        }

        .ride-schedule-fields {
            padding: 10px;
            border: 1px solid var(--rb-border, #e5e7eb);
            border-radius: 13px;
            background: var(--rb-soft, #f8fafc);
        }

        .ride-schedule-field .form--control {
            min-height: 46px;
            border: 1px solid var(--rb-border, #dbe1e8) !important;
            border-radius: 11px !important;
            background: var(--rb-solid, #fff) !important;
            color: var(--rb-text, #111827) !important;
        }

        .ride-stops-container {
            display: flex;
            flex-direction: column;
            gap: 8px;
            margin-top: -2px;
            margin-bottom: 8px;
        }

        .ride-running-stop__number {
            width: 26px;
            height: 26px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            background: hsl(var(--base) / .12);
            color: hsl(var(--base));
            font-size: 11px;
            font-weight: 900;
        }

        .ride-stop-row {
            position: relative;
            z-index: 45;
            display: grid;
            grid-template-columns: 28px 24px minmax(0, 1fr) 34px;
            align-items: center;
            gap: 6px;
            min-height: 44px;
            padding: 0 7px;
            border: 0;
            border-radius: 8px;
            background: var(--rb-soft, #f3f3f3);
            box-shadow: none;
            transition: transform .14s ease, box-shadow .14s ease, background .14s ease;
        }

        .ride-stop-row.is-search-open {
            z-index: 35;
            background: var(--rb-soft, #f3f3f3);
            box-shadow: none;
        }

        .ride-stop-row.is-reordering {
            z-index: 45;
            background: var(--rb-solid, #fff);
            box-shadow: 0 10px 28px rgba(0,0,0,.16);
        }

        .ride-stop-drag {
            width: 28px;
            height: 36px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            border: 0;
            border-radius: 7px;
            background: transparent;
            color: var(--rb-text, #111);
            cursor: grab;
            touch-action: none;
            user-select: none;
        }

        .ride-stop-drag:active { cursor: grabbing; }

        .ride-stop-drag:hover,
        .ride-stop-drag:focus-visible { background: var(--rb-soft, #e7e7e7); outline: none; }

        .ride-stop-index {
            width: 20px;
            height: 20px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 2px;
            background: var(--rb-soft, #f3f3f3);
            color: var(--rb-text, #111827);
            font-size: 11px;
            font-weight: 900;
            line-height: 1;
        }

        .ride-stop-input-wrap {
            position: relative;
            min-width: 0;
        }

        .ride-stop-input {
            width: 100%;
            min-height: 44px;
            padding: 0 3px;
            border: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            color: var(--rb-text, #111827);
            font-size: 14px;
            font-weight: 500;
            text-overflow: ellipsis;
        }

        .ride-stop-input::placeholder { color: var(--rb-text, #666); opacity: 1; }

        .ride-stop-suggestions {
            top: calc(100% + 6px) !important;
            left: 0 !important;
            right: 0 !important;
            width: 100% !important;
        }

        .ride-stop-remove {
            width: 32px;
            height: 32px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            border: 0;
            border-radius: 7px;
            background: transparent;
            color: var(--rb-text, #111);
        }

        .ride-stop-remove:hover,
        .ride-stop-remove:focus-visible { background: var(--rb-soft, #e7e7e7); outline: none; }

        .ride-add-stop-circle {
            width: 32px;
            min-width: 32px;
            height: 32px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            border: 0;
            border-radius: 50%;
            background: var(--rb-brand, #7C4DFF);
            color: var(--rb-on-accent, #fff);
            box-shadow: none;
            transition: transform .12s ease, opacity .12s ease;
        }

        .ride-add-stop-circle:hover:not(:disabled) { transform: scale(1.04); }
        .ride-add-stop-circle:disabled { opacity: .35; cursor: not-allowed; }

        .location-icon-destination {
            width: auto !important;
            min-width: 26px !important;
            gap: 5px;
        }

        body.ride-stop-reordering {
            user-select: none;
            overscroll-behavior: contain;
        }

        .serviceDiv,
        .findDriverDiv {
            border: 0 !important;
            border-radius: 20px !important;
            box-shadow: 0 8px 30px rgba(15, 23, 42, .08) !important;
        }

        .ride-coupon-box {
            padding: 11px;
            border: 1px solid var(--rb-border, #e5e7eb);
            border-radius: 13px;
            background: var(--rb-soft, #f8fafc);
        }

        .ride-coupon-box__label {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 7px;
            color: var(--rb-text, #334155);
            font-size: 12px;
            font-weight: 800;
        }

        .ride-coupon-input-row {
            display: flex;
            gap: 7px;
        }

        .ride-coupon-input-row .form--control {
            min-width: 0;
            min-height: 43px;
            border: 1px solid var(--rb-border, #dbe1e8) !important;
            border-radius: 10px !important;
            background: var(--rb-solid, #fff) !important;
        }

        .ride-coupon-apply-btn {
            flex: 0 0 auto;
            min-width: 78px;
            border: 0;
            border-radius: 10px;
            padding: 0 13px;
            background: hsl(var(--base));
            color: #fff;
            font-size: 12px;
            font-weight: 800;
        }

        .ride-coupon-remove {
            border: 0;
            background: transparent;
            color: #b42318;
            font-size: 11px;
            font-weight: 800;
        }

        .ride-coupon-feedback {
            margin-top: 7px;
            font-size: 11px;
            line-height: 1.35;
        }

        .ride-coupon-feedback.is-success { color: #15803d; }
        .ride-coupon-feedback.is-error { color: #b42318; }

        .findDriverBtn {
            min-height: 52px;
            border-radius: 13px !important;
            font-weight: 850;
            box-shadow: 0 7px 18px hsl(var(--base) / .18);
        }

        .findDriverBtn:disabled {
            opacity: .6;
            box-shadow: none;
        }

        @media (max-width: 991px) {
            .section-padding.pb-40 {
                padding-bottom: 180px !important;
            }

            .booking-wrapper__right {
                z-index: 1;
            }

            .booking-wrapper__left {
                z-index: 20;
            }

            .find_driver_wrapper {
                position: relative;
                z-index: 30;
                padding-bottom: calc(78px + max(8px, env(safe-area-inset-bottom)));
            }

            /* O CTA fica sempre acessível no mobile depois que um destino válido
               foi escolhido. Como o wrapper fica display:none antes disso, o botão
               nunca aparece fora de hora. */
            .findDriverBtn {
                position: fixed !important;
                left: 16px;
                right: 16px;
                bottom: max(12px, env(safe-area-inset-bottom));
                z-index: 400;
                width: auto !important;
                min-height: 54px;
                margin: 0 !important;
                box-shadow: 0 12px 32px rgba(15, 23, 42, .22) !important;
            }

            .findDriverBtn:disabled {
                box-shadow: 0 8px 22px rgba(15, 23, 42, .12) !important;
            }
        }

        @media (max-width: 520px) {
            .ride-request-time__selector {
                grid-template-columns: 1fr;
            }

            .booking-location-box,
            .booking-location-box__form,
            .booking-location-box__inner,
            .rebbify-request-fields,
            .ride-stops-container,
            .ride-stop-row {
                width: 100% !important;
                max-width: 100% !important;
                min-width: 0 !important;
                box-sizing: border-box;
            }

            .ride-stop-row {
                grid-template-columns: 27px 20px minmax(0, 1fr) 31px;
                gap: 3px;
                padding: 0 3px;
            }

            .ride-stop-drag { width:27px; }
            .ride-stop-remove { width:31px; }
            .ride-stop-input { font-size:13px; padding:0 2px; }
            .ride-stop-suggestions {
                left: 0 !important;
                right: 0 !important;
                width: 100% !important;
                max-width: calc(100vw - 24px) !important;
            }

            .search-input-dropdown__wrapper-two {
                max-height: 44vh !important;
            }
        }

        /* Skeleton animation */
        .skeleton-card,
        .skeleton-text,
        .skeleton-input,
        .skeleton-btn,
        .skeleton-circle {
            background: linear-gradient(90deg, var(--rb-soft, #eee) 25%, var(--rb-soft, #f5f5f5) 50%, var(--rb-soft, #eee) 75%);
            background-size: 200% 100%;
            animation: shimmer 1.2s infinite;
            border-radius: 8px;
        }

        .skeleton-card {
            height: 60px;
        }

        .skeleton-text {
            height: 20px;
            margin-bottom: 10px;
        }

        .skeleton-input {
            height: 40px;
            border-radius: 6px;
            margin-bottom: 10px;
        }

        .skeleton-btn {
            height: 40px;
            border-radius: 6px;
        }

        .skeleton-circle {
            width: 24px;
            height: 24px;
            border-radius: 50%;
        }

        @keyframes shimmer {
            0% {
                background-position: -200% 0;
            }

            100% {
                background-position: 200% 0;
            }
        }


        /* ================================================================
           Rebbify Web Rider — fluxo inspirado no layout de solicitação enviado
           ================================================================ */
        html,
        body {
            background: var(--rb-solid, #fff) !important;
        }

        body {
            min-width: 320px;
        }

        .rebbify-ride-app {
            --ride-topbar-height: 54px;
            width: 100%;
            min-height: 100vh;
            background: var(--rb-solid, #fff);
            color: var(--rb-text, #000);
            font-family: Arial, Helvetica, sans-serif;
        }

        .rebbify-ride-topbar {
            height: var(--ride-topbar-height);
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 20px;
            padding: 0 56px;
            border-bottom: 1px solid var(--rb-border, #e7e7e7);
            background: var(--rb-solid, #fff);
            position: relative;
            z-index: 200;
        }

        .rebbify-ride-topbar__left,
        .rebbify-ride-topbar__right,
        .rebbify-ride-modes {
            display: flex;
            align-items: center;
        }

        .rebbify-ride-topbar__left { gap: 34px; min-width: 0; }
        .rebbify-ride-topbar__right { gap: 16px; }
        .rebbify-ride-modes { height: 100%; gap: 4px; }

        .rebbify-ride-brand {
            display: inline-flex;
            width: 94px;
            height: 32px;
            align-items: center;
            justify-content: flex-start;
            flex: 0 0 auto;
        }

        .rebbify-ride-brand img {
            display: block;
            width: 94px;
            height: auto;
            max-height: 30px;
            object-fit: contain;
        }

        .rebbify-mode-tab {
            position: relative;
            height: 100%;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 0 14px;
            border: 0;
            background: transparent;
            color: var(--rb-text, #000);
            font-size: 14px;
            font-weight: 700;
        }

        .rebbify-mode-tab__icon { display: inline-flex; }

        .rebbify-activity-link {
            min-height: 36px;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 0 14px;
            border-radius: 999px;
            background: var(--rb-soft, #f3f3f3);
            color: var(--rb-text, #000);
            text-decoration: none;
            font-size: 13px;
            font-weight: 700;
        }

        .rebbify-activity-link:hover { color: var(--rb-text, #000); background: var(--rb-soft, #e9e9e9); }

        .rebbify-profile-chip {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            border: 0;
            background: transparent;
            padding: 0;
            color: var(--rb-text, #000);
        }

        .rebbify-profile-chip img {
            width: 38px;
            height: 38px;
            border-radius: 50%;
            object-fit: cover;
            background: var(--rb-soft, #eee);
        }

        .rebbify-profile-menu {
            z-index: 320;
            min-width: 190px;
            border: 1px solid var(--rb-border, #e5e5e5);
            border-radius: 12px;
            box-shadow: 0 12px 30px rgba(0,0,0,.12);
        }

        .rebbify-ride-stage {
            height: calc(100vh - var(--ride-topbar-height));
            min-height: 520px;
            padding: 28px 4.2vw 24px;
            background: var(--rb-solid, #fff);
        }

        .rebbify-booking-wrapper {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: stretch;
            gap: 24px;
            margin: 0 !important;
            max-width: none !important;
        }

        .rebbify-booking-panel {
            width: 320px;
            flex: 0 0 320px;
            min-width: 0;
            max-height: 100%;
            padding: 0 !important;
            overflow-y: auto;
            overflow-x: visible;
            scrollbar-width: thin;
            background: var(--rb-solid, #fff);
        }

        .rebbify-map-panel {
            min-width: 0;
            flex: 1 1 auto;
            height: 100%;
            padding: 0 !important;
        }

        .booking-wrapper__right #map {
            width: 100% !important;
            height: 100% !important;
            min-height: 500px;
            border-radius: 12px !important;
            overflow: hidden;
            background: var(--rb-soft, #eef1f4);
        }

        .rebbify-request-card,
        .booking-location-box {
            margin: 0 !important;
            padding: 0 !important;
            border: 0 !important;
            border-radius: 0 !important;
            box-shadow: none !important;
            background: var(--rb-solid, #fff) !important;
        }

        .booking-location-box__form,
        .booking-location-box__inner,
        .rebbify-request-fields {
            padding: 0 !important;
        }

        .rebbify-delivery-intro {
            margin-bottom: 18px;
        }

        .rebbify-delivery-illustration {
            width: 100%;
            height: 205px;
            margin-bottom: 0;
            overflow: hidden;
            border-radius: 12px 12px 0 0;
            background: var(--rb-soft, #f3f3f3);
        }

        .rebbify-delivery-illustration img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .rebbify-delivery-intro p {
            margin: 0;
            padding: 0 14px 14px;
            color: var(--rb-text, #333);
            font-size: 14px;
            line-height: 1.45;
        }

        .rebbify-delivery-modes {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 0;
            margin: 0 14px 14px;
            padding: 4px;
            border-radius: 9px;
            background: var(--rb-soft, #f3f3f3);
        }

        .rebbify-delivery-mode {
            min-height: 42px;
            padding: 4px 8px;
            border: 0;
            border-radius: 7px;
            background: transparent;
            color: var(--rb-text, #000);
            font-size: 13px;
            font-weight: 700;
            line-height: 1.15;
        }

        .rebbify-delivery-mode.is-active {
            background: var(--rb-solid, #fff);
            box-shadow: 0 1px 4px rgba(0,0,0,.12);
        }

        .ride-location-field {
            position: relative;
            z-index: 50;
            display: grid !important;
            grid-template-columns: 30px minmax(0,1fr) auto;
            align-items: center;
            min-height: 44px;
            margin: 0 0 10px !important;
            padding: 0 8px !important;
            border: 0 !important;
            border-radius: 8px !important;
            background: var(--rb-soft, #f3f3f3) !important;
            box-shadow: none !important;
        }

        .ride-location-field:focus-within,
        .ride-location-field.is-search-open {
            z-index: 35;
            background: var(--rb-soft, #f3f3f3) !important;
            box-shadow: inset 0 0 0 2px #7C4DFF !important;
        }

        .ride-location-field .input-group-custom__icon,
        .ride-location-field .location__icon {
            width: 26px;
            min-width: 26px;
            height: 44px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: #7C4DFF !important;
        }

        .ride-location-field .input-group-custom__wrapper { min-width: 0; }
        .ride-location-field .location-icon-pickup { width: 50px; min-width: 50px; gap: 5px; }
        .ride-location-field .location-icon-pickup .icon-fetch,
        .ride-location-field .location-icon-pickup .icon-clear { flex: 0 0 auto; cursor: pointer; }

        .ride-location-field .input-group-custom__input {
            width: 100%;
            min-height: 44px !important;
            padding: 0 4px !important;
            border: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            color: var(--rb-text, #000) !important;
            font-size: 14px !important;
            font-weight: 500 !important;
            text-overflow: ellipsis;
        }

        .ride-location-field .input-group-custom__input::placeholder { color: var(--rb-text, #666); opacity: 1; }

        .rebbify-point-symbol {
            display: inline-block;
            width: 9px;
            height: 9px;
            background: #000;
        }

        .rebbify-point-symbol--pickup { border-radius: 50%; }
        .rebbify-point-symbol--destination { border-radius: 1px; }

        .search-input-dropdown__wrapper-two {
            top: calc(100% + 6px) !important;
            left: 0 !important;
            right: 0 !important;
            width: 100% !important;
            max-height: min(420px, 52vh) !important;
            border-radius: 9px !important;
            border: 1px solid var(--rb-border, #ddd) !important;
            box-shadow: 0 10px 30px rgba(0,0,0,.16) !important;
            background: var(--rb-solid, #fff) !important;
        }

        .search-input-dropdown__item {
            min-height: 54px !important;
            border-radius: 7px !important;
            color: var(--rb-text, #000) !important;
        }

        .search-input-dropdown__item:hover,
        .search-input-dropdown__item.highlighted { background: var(--rb-soft, #f3f3f3) !important; }

        .rebbify-request-time {
            display: none !important;
        }

        .rebbify-search-ride-btn {
            width: 100%;
            min-height: 46px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-top: 6px;
            border: 0;
            border-radius: 8px;
            background: var(--rb-brand, #7C4DFF);
            color: var(--rb-on-accent, #fff);
            font-size: 14px;
            font-weight: 800;
            transition: opacity .15s ease, transform .15s ease;
        }

        .rebbify-search-ride-btn:hover:not(:disabled) { transform: translateY(-1px); }
        .rebbify-search-ride-btn:disabled { opacity: .42; cursor: not-allowed; }

        .rebbify-service-flow {
            display: contents;
        }

        .rebbify-service-results {
            width: 100%;
            background: var(--rb-solid, #fff);
        }

        .rebbify-service-results__header { margin-bottom: 12px; }

        .rebbify-service-title-row {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 12px;
        }

        .rebbify-service-title-row h1 {
            margin: 0;
            color: var(--rb-text, #000);
            font-size: 30px;
            line-height: 1.05;
            font-weight: 800;
            letter-spacing: -.7px;
        }

        .rebbify-edit-route-btn {
            width: 34px;
            height: 34px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex: 0 0 34px;
            border: 0;
            border-radius: 50%;
            background: var(--rb-soft, #f3f3f3);
            color: var(--rb-text, #000);
            font-size: 19px;
        }

        .rebbify-route-summary {
            width: 100%;
            display: grid;
            grid-template-columns: minmax(0,1fr) auto;
            align-items: center;
            gap: 3px 8px;
            padding: 13px 14px;
            border: 1px solid var(--rb-border, #e5e5e5);
            border-radius: 10px;
            background: var(--rb-solid, #fff);
            color: var(--rb-text, #000);
            text-align: left;
        }

        .rebbify-route-summary__line {
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            font-size: 13px;
            font-weight: 700;
        }

        .rebbify-route-summary__meta {
            grid-column: 1;
            color: var(--rb-text, #555);
            font-size: 11px;
        }

        .rebbify-route-summary > i {
            grid-column: 2;
            grid-row: 1 / span 2;
        }

        .serviceDiv {
            padding: 0 !important;
            border: 0 !important;
            border-radius: 0 !important;
            box-shadow: none !important;
            background: var(--rb-solid, #fff) !important;
        }

        .rebbify-service-catalog { padding: 0 0 16px; }
        .rebbify-service-group { margin: 0 0 18px; }

        .rebbify-service-group__title {
            margin: 0 0 8px;
            color: var(--rb-text, #000);
            font-size: 20px;
            line-height: 1.15;
            font-weight: 800;
            letter-spacing: -.2px;
        }

        .rebbify-service-group__list { display: grid; gap: 4px; }

        .rebbify-service-item {
            width: 100%;
            border: 2px solid transparent;
            border-radius: 10px;
            background: var(--rb-solid, #fff);
            transition: border-color .12s ease, background .12s ease;
        }

        .rebbify-service-item:hover { background: var(--rb-solid, #fafafa); }
        .rebbify-service-item.is-selected { border-color: var(--rb-border, #000); background: var(--rb-solid, #fff); }

        .rebbify-service-label {
            width: 100%;
            min-height: 92px;
            display: grid;
            grid-template-columns: 78px minmax(0,1fr) auto;
            align-items: center;
            gap: 10px;
            margin: 0;
            padding: 10px 10px;
            cursor: pointer;
            color: var(--rb-text, #000);
        }

        .rebbify-service-image {
            width: 78px;
            height: 64px;
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: visible;
        }

        .rebbify-service-image img {
            display: block;
            max-width: 78px;
            max-height: 64px;
            width: auto;
            height: auto;
            object-fit: contain;
        }

        .rebbify-service-copy { min-width: 0; display: block; }
        .rebbify-service-name-row { display: flex; align-items: center; gap: 5px; min-width: 0; }

        .rebbify-service-name {
            color: var(--rb-text, #000);
            font-size: 17px;
            line-height: 1.18;
            font-weight: 700;
            letter-spacing: -0.018em;
        }

        .rebbify-service-capacity {
            display: inline-flex;
            align-items: center;
            gap: 2px;
            color: var(--rb-text, #000);
            font-size: 11px;
            line-height: 1;
            white-space: nowrap;
        }

        .rebbify-service-meta,
        .rebbify-service-description {
            display: block;
            color: var(--rb-text, #333);
            font-size: 12px;
            line-height: 1.35;
            font-weight: 500;
        }

        .rebbify-service-description { color: var(--rb-text, #555); margin-top: 1px; }

        .rebbify-service-badge {
            display: inline-block;
            margin-top: 3px;
            padding: 2px 5px;
            border-radius: 3px;
            background: #276ef1;
            color: #fff;
            font-size: 10px;
            font-weight: 800;
            line-height: 1.1;
        }

        .rebbify-service-price {
            align-self: center;
            padding-left: 8px;
            color: var(--rb-text, #000);
            text-align: right;
            white-space: nowrap;
        }

        .rebbify-service-price strong {
            color: var(--rb-text, #000);
            font-size: 17px;
            line-height: 1;
            font-weight: 750;
            letter-spacing: -0.02em;
        }

        .rebbify-service-empty {
            padding: 22px 8px;
            color: var(--rb-text, #555);
            font-size: 14px;
            text-align: center;
        }

        .find_driver_wrapper {
            display: none;
            margin-top: 10px;
            padding-bottom: 20px;
        }

        .findDriverDiv,
        .findDriverDiv.common-card {
            margin: 0 !important;
            padding: 14px !important;
            border: 1px solid var(--rb-border, #e6e6e6) !important;
            border-radius: 10px !important;
            box-shadow: none !important;
            background: var(--rb-solid, #fff) !important;
        }

        .findDriverBtn {
            min-height: 48px !important;
            border: 0 !important;
            border-radius: 8px !important;
            background: #7C4DFF !important;
            color: #fff !important;
            box-shadow: none !important;
        }

        .findDriverBtn:hover,
        .findDriverBtn:focus { background: #6A3FEA !important; color: #fff !important; }

        .rebbify-ride-app.is-service-selection .ride_location_wrapper { display: none; }
        .rebbify-ride-app.is-service-selection .rebbify-service-results { display: block !important; }

        /* A escolha da categoria vira uma tela própria, como no fluxo de
           referência enviado: lista larga, sem o mapa disputando espaço. */
        .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
            height: auto;
            min-height: calc(100vh - var(--ride-topbar-height));
            overflow: visible;
            padding-top: 24px;
            padding-bottom: 40px;
        }

        .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
            justify-content: center;
            height: auto;
            min-height: 0;
        }

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

        .rebbify-ride-app.is-service-selection .rebbify-map-panel {
            display: none !important;
        }

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

        .rebbify-ride-app.is-service-selection .rebbify-service-group {
            margin-bottom: 26px;
        }

        .rebbify-ride-app.is-service-selection .rebbify-service-label {
            min-height: 104px;
            grid-template-columns: 92px minmax(0,1fr) auto;
            gap: 14px;
            padding: 12px 14px;
        }

        .rebbify-ride-app.is-service-selection .rebbify-service-image {
            width: 92px;
            height: 72px;
        }

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

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

        .rebbify-ride-app.is-service-selection .rebbify-service-meta,
        .rebbify-ride-app.is-service-selection .rebbify-service-description {
            font-size: 13px;
        }

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

        .rebbify-ride-app:not(.is-service-selection) .rebbify-service-results,
        .rebbify-ride-app:not(.is-service-selection) .find_driver_wrapper { display: none !important; }

        .rebbify-ride-app[data-active-service-type="ride"] .rebbify-delivery-intro { display: none !important; }
        .rebbify-ride-app[data-active-service-type="delivery"] .rebbify-delivery-intro { display: block !important; }

        .rebbify-ride-app[data-active-service-type="delivery"] .ride-add-stop-circle,
        .rebbify-ride-app[data-active-service-type="delivery"] .ride-stops-container,
        .rebbify-ride-app[data-active-service-type="delivery"] .rebbify-request-time { display: none !important; }

        .mapboxgl-ctrl-top-right { top: 8px; right: 8px; }
        .mapboxgl-ctrl-group { border-radius: 8px !important; box-shadow: 0 1px 4px rgba(0,0,0,.18) !important; }
        #map { background: var(--rb-soft, #e8ecef) !important; }
        .rebbify-ride-app, .rebbify-ride-app button, .rebbify-ride-app input, .rebbify-ride-app select, .rebbify-ride-app textarea {
            font-family: var(--rebbify-font, "Inter", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif) !important;
        }
        .rebbify-service-price strong, .rebbify-service-name { font-variant-numeric: tabular-nums; }

        @media (min-width: 1200px) {
            .rebbify-booking-panel { width: 345px; flex-basis: 345px; }
        }

        @media (max-width: 991px) {
            body { overflow: auto; }

            .rebbify-ride-app { --ride-topbar-height: 52px; min-height: 100vh; }
            .rebbify-ride-topbar { padding: 0 16px; }
            .rebbify-ride-topbar__left { gap: 12px; }
            .rebbify-ride-brand { width: 82px; }
            .rebbify-ride-brand img { width: 82px; }
            .rebbify-mode-tab { padding: 0 9px; font-size: 12px; gap: 5px; }
            .rebbify-activity-link span { display: none; }
            .rebbify-activity-link { width: 36px; padding: 0; justify-content: center; }

            .rebbify-ride-stage {
                height: auto;
                min-height: calc(100vh - var(--ride-topbar-height));
                padding: 12px;
            }

            .rebbify-booking-wrapper {
                height: auto;
                min-height: calc(100vh - var(--ride-topbar-height) - 24px);
                display: flex;
                flex-direction: column;
                gap: 12px;
            }

            .rebbify-booking-panel {
                width: 100%;
                flex: 0 0 auto;
                max-height: none;
                overflow: visible;
                order: 1;
            }

            .rebbify-map-panel {
                width: 100%;
                height: 42vh;
                min-height: 300px;
                order: 2;
            }

            .booking-wrapper__right #map {
                height: 42vh !important;
                min-height: 300px;
            }

            .rebbify-delivery-illustration { height: 180px; }

            .rebbify-ride-app.is-service-selection .rebbify-map-panel {
                display: none !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
                padding-top: 6px;
            }

            .rebbify-ride-app.is-service-selection .rebbify-service-title-row h1 {
                font-size: 30px;
            }

            .rebbify-ride-app.is-service-selection .rebbify-route-summary {
                display: none;
            }

            .find_driver_wrapper {
                position: static !important;
                padding-bottom: calc(18px + env(safe-area-inset-bottom));
            }

            .findDriverBtn {
                position: static !important;
                left: auto !important;
                right: auto !important;
                bottom: auto !important;
                width: 100% !important;
                margin-top: 12px !important;
            }
        }

        @media (max-width: 640px) {
            .rebbify-ride-topbar__right { gap: 8px; }
            .rebbify-profile-chip img { width: 34px; height: 34px; }
            .rebbify-ride-modes { gap: 0; }

            .rebbify-ride-app.is-service-selection .rebbify-ride-topbar {
                display: none;
            }

            .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
                min-height: 100vh;
                padding: 8px 16px 18px;
            }

            .rebbify-service-title-row {
                margin: 0 0 16px;
            }

            .rebbify-edit-route-btn {
                width: 32px;
                height: 32px;
                flex-basis: 32px;
            }

            .rebbify-service-title-row h1 { font-size: 29px; }
            .rebbify-service-group { margin-bottom: 20px; }
            .rebbify-service-group__title { font-size: 21px; margin-bottom: 9px; }

            .rebbify-service-label {
                min-height: 102px;
                grid-template-columns: 78px minmax(0,1fr) auto;
                gap: 10px;
                padding: 10px 10px;
            }

            .rebbify-service-name { font-size: 17px; }
            .rebbify-service-meta,
            .rebbify-service-description { font-size: 11px; }
            .rebbify-service-price strong { font-size: 16px; }
        }

        @media (max-width: 420px) {
            .rebbify-ride-topbar { padding: 0 10px; }
            .rebbify-ride-brand { width: 72px; }
            .rebbify-ride-brand img { width: 72px; }
            .rebbify-mode-tab { padding: 0 7px; }

            .rebbify-service-label {
                grid-template-columns: 70px minmax(0,1fr) auto;
                gap: 7px;
                padding: 9px 8px;
            }

            .rebbify-service-image { width: 70px; }
            .rebbify-service-image img { max-width: 70px; }
            .rebbify-service-price { padding-left: 4px; }
            .rebbify-service-price strong { font-size: 15px; }
        }

        /* Process-step only: remove the legacy vertical connector between route fields. */
        .rebbify-request-card .ride-location-field::before,
        .rebbify-request-card .input-group-custom::before,
        .rebbify-request-card .connector-line {
            content: none !important;
            display: none !important;
            border: 0 !important;
            background: none !important;
        }

        /* Rebbify UX: app-matched purple actions, location icons and cancellation */
        .rebbify-route-location-icon { width:20px; height:20px; display:block; object-fit:contain; }
        .ride-location-field:focus-within, .ride-location-field.is-search-open { box-shadow:inset 0 0 0 2px var(--rb-focus, #7C4DFF) !important; }
        .ride-stop-row.is-search-open { box-shadow:none !important; }
        .ride-safety-floating-button { background: #7C4DFF !important; color: #fff !important; }
        .ride-safety-floating-button:hover, .ride-safety-floating-button:focus { background: #6A3FEA !important; color: #fff !important; }
        .ride-safety-action--emergency { border-color: #dc3545 !important; background: #dc3545 !important; color: #fff !important; }
        .ride-safety-action--emergency:hover, .ride-safety-action--emergency:focus { background: #c92f3e !important; color: #fff !important; }
        .ride-location-field .input-group-custom__icon { color: #7C4DFF !important; }
        .ride-location-field .location__icon { color: #7C4DFF !important; }
        .ride-location-field .location-icon-pickup .icon-fetch { width:20px; height:20px; object-fit:contain; }
        .rebbify-point-symbol { display:none !important; }
        .ride-map-picker-pin { background: var(--rb-solid, #fff) !important; border: 2px solid #7C4DFF !important; transform:none !important; }
        .ride-map-picker-pin img { width:28px; height:28px; display:block; }
        .ride-map-picker-confirm { border-color: #7C4DFF !important; background: #7C4DFF !important; color: #fff !important; }
        .rebbify-search-ride-btn, .findDriverBtn { background: #7C4DFF !important; border-color: #7C4DFF !important; color: #fff !important; }
        .rebbify-search-ride-btn:hover:not(:disabled), .findDriverBtn:hover, .findDriverBtn:focus { background: #6C3EF0 !important; border-color: #6C3EF0 !important; color: #fff !important; }

        .rebbify-cancel-dialog { width:min(620px, calc(100vw - 28px)); max-width:620px; margin-left:auto; margin-right:auto; }
        .rebbify-cancel-modal { overflow:hidden; border: 0; border-radius:24px; box-shadow:0 24px 70px rgba(15,23,42,.24); }
        .rebbify-cancel-header { min-height:76px; display:grid; grid-template-columns:52px minmax(0,1fr) 72px; align-items:center; gap:8px; padding:10px 18px; border-bottom: 1px solid var(--rb-border, #e5e7eb); }
        .rebbify-cancel-header h5 { margin:0; text-align:center; color: var(--rb-text, #111827); font-size:24px; font-weight:800; }
        .rebbify-cancel-icon-btn, .rebbify-cancel-skip { border: 0; background: transparent; color: var(--rb-text, #111827); min-height:44px; font-weight:700; }
        .rebbify-cancel-icon-btn { width:44px; border-radius:50%; font-size:25px; }
        .rebbify-cancel-skip { color: #7C4DFF; font-size:15px; }
        .rebbify-cancel-body { padding:24px 28px 26px; }
        .rebbify-cancel-body h6 { margin:0; color: var(--rb-text, #111827); font-size:21px; font-weight:800; }
        .rebbify-cancel-optional { margin:4px 0 12px; color: var(--rb-muted, #64748b); font-size:15px; }
        .rebbify-cancel-reasons { border-top: 1px solid var(--rb-border, #eef0f3); }
        .rebbify-cancel-reason { width:100%; min-height:62px; display:grid; grid-template-columns:46px minmax(0,1fr) 24px; align-items:center; gap:8px; padding:8px 4px; border: 0; border-bottom: 1px solid var(--rb-border, #eef0f3); background: var(--rb-solid, #fff); color: var(--rb-text, #111827); text-align:left; }
        .rebbify-cancel-reason > i:first-child { color: #7C4DFF; font-size:25px; text-align:center; }
        .rebbify-cancel-reason > i:last-child { color: var(--rb-muted, #94a3b8); font-size:18px; }
        .rebbify-cancel-reason span { min-width:0; font-size:16px; font-weight:650; line-height:1.3; }
        .rebbify-cancel-reason:hover { background: var(--rb-soft, #f8f7ff); }
        .rebbify-cancel-keep, .rebbify-cancel-submit { width:100%; min-height:56px; margin-top:18px; border-radius:14px; font-size:17px; font-weight:800; }
        .rebbify-cancel-keep { border: 1px solid #7C4DFF; background: #7C4DFF; color: #fff; }
        .rebbify-cancel-submit { border: 1px solid #ef5b5b; background: var(--rb-soft, #fff3f3); color: #dc4c4c; }
        .rebbify-cancel-confirm-body > p { margin:16px 0 6px; color: var(--rb-muted, #475569); font-size:17px; line-height:1.55; }
        .rebbify-cancel-confirm-body .rebbify-cancel-keep { margin-top:10px; }
        @media (max-width:640px) {
            .rebbify-cancel-dialog { width:100%; max-width:none; margin:0; align-items:flex-end; min-height:100%; }
            .rebbify-cancel-modal { border-radius:24px 24px 0 0; max-height:92vh; }
            .rebbify-cancel-header { min-height:68px; grid-template-columns:44px minmax(0,1fr) 58px; padding:8px 14px; }
            .rebbify-cancel-header h5 { font-size:21px; }
            .rebbify-cancel-body { padding:20px 18px calc(18px + env(safe-area-inset-bottom)); overflow-y:auto; }
            .rebbify-cancel-reason { min-height:58px; grid-template-columns:42px minmax(0,1fr) 20px; }
            .rebbify-cancel-reason span { font-size:15px; }
        }
    
        /* City-scoped request UX */
        .ride-location-field.is-search-open { z-index: 30 !important; }
        .ride-location-field.is-search-open ~ .ride-location-field { z-index: 1 !important; }
        .search-input-dropdown__wrapper-two { top: calc(100% - 1px) !important; z-index: 50 !important; max-height: min(520px, 64vh) !important; }

        /* Somente nesta tela: sugestões de partida/destino no padrão solicitado. */
        #pickup_suggestions,
        #destination_suggestions {
            padding: 4px 6px !important;
            overflow-x: hidden !important;
            overflow-y: auto !important;
            overscroll-behavior: contain;
        }
        #pickup_suggestions .search-input-dropdown__item,
        #destination_suggestions .search-input-dropdown__item {
            min-height: 58px !important;
            padding: 8px 8px !important;
            gap: 12px !important;
            border-radius: 8px !important;
        }
        #pickup_suggestions .location-result-copy,
        #destination_suggestions .location-result-copy {
            min-width: 0;
            flex: 1 1 auto;
            display: flex;
            flex-direction: column;
            justify-content: center;
            line-height: 1.25;
        }
        #pickup_suggestions .location-name,
        #destination_suggestions .location-name {
            display: block;
            max-width: 100%;
            color: var(--rb-text, #111) !important;
            font-size: 14px !important;
            font-weight: 700 !important;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        #pickup_suggestions .location-subtitle,
        #destination_suggestions .location-subtitle {
            display: block;
            margin-top: 2px;
            max-width: 100%;
            color: var(--rb-text, #5f6368) !important;
            font-size: 12px !important;
            font-weight: 500 !important;
            white-space: normal;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        #pickup_suggestions .menu-icon,
        #destination_suggestions .menu-icon {
            width: 34px !important;
            height: 34px !important;
            flex: 0 0 34px !important;
            background: var(--rb-soft, #f1f1f1) !important;
            color: var(--rb-text, #111) !important;
        }
        #pickup_suggestions .menu-option-current .menu-icon img {
            width: 18px !important;
            height: 18px !important;
        }
        #pickup_suggestions .menu-option-map,
        #destination_suggestions .menu-option-map {
            border-top: 1px solid var(--rb-border, #ededed) !important;
        }
        .ride-map-inline-action { position:absolute; right:8px; bottom:-28px; z-index:2; border: 0; background: transparent; color: #7C4DFF; font-size:12px; font-weight:800; padding:4px 6px; }
        .ride-location-field { margin-bottom:34px !important; }
        .rebbify-request-city__button, .rebbify-top-city-btn { border: 1px solid var(--rb-border, #e6e0ff); background: var(--rb-brand-soft, #f8f6ff); color: #5f35df; border-radius:12px; font-weight:800; }
        .rebbify-request-city__button { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; margin-bottom:10px; text-align:left; }
        .rebbify-request-city__button small { color: var(--rb-muted, #6b7280); font-weight:600; }
        .rebbify-top-city-btn { display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:8px 12px; }
        .rebbify-request-city--footer { position:sticky; bottom:8px; z-index:300; margin-top:12px; }
        @media (max-width: 767px) { .rebbify-top-city-btn span { max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .ride-map-inline-action { font-size:11px; } }

        .rebbify-request-city-modal { position:fixed; inset:0; z-index:1080; display:none; place-items:center; padding:18px; background: rgba(0,0,0,.42); }
        .rebbify-request-city-modal.is-open { display:grid; }
        .rebbify-request-city-modal__dialog { width:min(560px,100%); max-height:min(680px,86vh); overflow:auto; padding:18px; border-radius:20px; background: var(--rb-solid, #fff); box-shadow:0 28px 90px rgba(0,0,0,.25); }
        .rebbify-request-city-modal__header { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:14px; }
        .rebbify-request-city-modal__header h3 { margin:2px 0 0; font-size:23px; }
        .rebbify-request-city-modal__header small { color: var(--rb-muted, #6b7280); }
        .rebbify-request-city-modal__header button { width:42px; height:42px; border: 0; border-radius:50%; background: var(--rb-soft, #f2f2f2); }
        #rebbifyRequestCitySearch { width:100%; min-height:50px; border: 1px solid var(--rb-border, #d8d8d8); border-radius:12px; padding:0 14px; outline:none; }
        #rebbifyRequestCitySearch:focus { border-color: #7C4DFF; box-shadow:0 0 0 3px rgba(124,77,255,.12); }
        .rebbify-request-city-modal__status { padding:12px 2px 8px; color: var(--rb-muted, #6b7280); font-size:13px; }
        .rebbify-request-city-result { width:100%; display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:13px 10px; border: 0; border-top: 1px solid var(--rb-border, #eee); background: var(--rb-solid, #fff); text-align:left; }
        .rebbify-request-city-result:hover { background: var(--rb-brand-soft, #f8f6ff); }
        .rebbify-request-city-result strong { font-size:15px; color: var(--rb-text, #111); }
        .rebbify-request-city-result span { font-size:12px; color: var(--rb-muted, #6b7280); }
        @media(max-width:767px){ .rebbify-request-city-modal { align-items:end; padding:0; } .rebbify-request-city-modal__dialog { width:100%; max-height:82vh; border-radius:22px 22px 0 0; } }


        /* ===== Etapa 1: layout da cotação alinhado à referência ===== */
        .rebbify-request-card__title {
            margin: 0 0 14px;
            color: var(--rb-text, #111);
            font-size: 18px;
            line-height: 1.25;
            font-weight: 800;
            letter-spacing: -.02em;
        }

        .rebbify-guest-login-link,
        .rebbify-guest-register-link {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 36px;
            padding: 0 13px;
            border-radius: 999px;
            color: var(--rb-text, #111);
            text-decoration: none;
            font-size: 13px;
            font-weight: 750;
            white-space: nowrap;
        }

        .rebbify-guest-login-link:hover { color: var(--rb-text, #111); background: var(--rb-soft, #f3f3f3); }
        .rebbify-guest-register-link,
        .rebbify-guest-register-link:hover { background: #7C4DFF; color: #fff; }

        .rebbify-request-fields {
            display: flex !important;
            flex-direction: column;
        }

        .ride-location-field[data-location-field="pickup"] { order: 1; }
        .ride-location-field[data-location-field="destination"] { order: 2; }
        .ride-stops-container { order: 2; }
        .rebbify-request-time { order: 3; }
        .rebbify-search-actions { order: 4; }

        .rebbify-field-caption { display: none !important; }

        .rebbify-request-time {
            display: block !important;
            position: relative;
            z-index: 60;
            margin: 0 0 10px;
        }

        .rebbify-time-summary {
            width: 100%;
            min-height: 44px;
            display: grid;
            grid-template-columns: 28px minmax(0,1fr) auto;
            align-items: center;
            gap: 6px;
            padding: 0 10px;
            border: 0;
            border-radius: 8px;
            background: var(--rb-soft, #f3f3f3);
            color: var(--rb-text, #111);
            text-align: left;
        }

        .rebbify-time-summary {
            cursor: pointer;
            pointer-events: auto !important;
            touch-action: manipulation;
        }

        .rebbify-schedule-editor,
        .rebbify-schedule-picker {
            pointer-events: auto !important;
        }

        .rebbify-time-summary__icon,
        .rebbify-time-summary__chevron { display: inline-flex; align-items: center; justify-content: center; }
        .rebbify-time-summary__copy { min-width: 0; display: block; }
        .rebbify-time-summary__copy strong { display: block; font-size: 14px; font-weight: 600; }
        .rebbify-time-summary__copy small { display: none; }
        .rebbify-time-summary__chevron { font-size: 16px; transition: transform .16s ease; }
        .rebbify-request-time.is-open .rebbify-time-summary__chevron { transform: rotate(180deg); }

        .rebbify-request-time .ride-request-time__selector {
            display: none;
            position: absolute;
            z-index: 45;
            top: calc(44px + 6px);
            left: 0;
            right: 0;
            grid-template-columns: 1fr;
            gap: 4px;
            padding: 6px;
            border: 1px solid var(--rb-border, #dedede);
            border-radius: 10px;
            background: var(--rb-solid, #fff);
            box-shadow: 0 14px 34px rgba(0,0,0,.16);
        }

        .rebbify-request-time.is-open .ride-request-time__selector { display: grid; }
        .rebbify-request-time .ride-request-mode-btn {
            min-height: 48px;
            border: 0;
            border-radius: 8px;
            padding: 8px 10px;
            background: var(--rb-solid, #fff);
            color: var(--rb-text, #111);
            text-align: left;
        }
        .rebbify-request-time .ride-request-mode-btn:hover,
        .rebbify-request-time .ride-request-mode-btn.is-active { background: var(--rb-brand-soft, #f5f2ff); }
        .rebbify-request-time .ride-request-mode-btn strong,
        .rebbify-request-time .ride-request-mode-btn small { display: block; }
        .rebbify-request-time .ride-request-mode-btn strong { font-size: 13px; }
        .rebbify-request-time .ride-request-mode-btn small { margin-top: 2px; color: var(--rb-text, #666); font-size: 11px; }

        .rebbify-request-time .ride-schedule-fields {
            position: relative;
            z-index: 1;
            margin-top: 10px;
        }

        .rebbify-login-gate {
            position: fixed;
            inset: 0;
            z-index: 1090;
            display: none;
            place-items: center;
            padding: 18px;
            background: rgba(0,0,0,.48);
        }
        .rebbify-login-gate.is-open { display: grid; }
        body.rebbify-login-gate-open { overflow: hidden !important; }
        .rebbify-login-gate__dialog {
            width: min(450px, 100%);
            padding: 20px 18px 18px;
            border-radius: 14px;
            background: var(--rb-solid, #fff);
            box-shadow: 0 24px 70px rgba(0,0,0,.24);
        }
        .rebbify-login-gate__dialog h2 {
            margin: 0 0 12px;
            color: var(--rb-text, #111);
            font-size: 18px;
            line-height: 1.3;
            font-weight: 800;
        }
        .rebbify-login-gate__dialog p {
            margin: 0 0 18px;
            color: var(--rb-text, #444);
            font-size: 14px;
            line-height: 1.5;
        }
        .rebbify-login-gate__primary {
            width: 100%;
            min-height: 46px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 8px;
            background: var(--rb-brand, #7C4DFF);
            color: var(--rb-on-accent, #fff);
            text-decoration: none;
            font-size: 14px;
            font-weight: 800;
        }
        .rebbify-login-gate__primary:hover { background: #6A3FEA; color: #fff; }
        .rebbify-login-gate__secondary {
            width: 100%;
            min-height: 40px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-top: 6px;
            color: var(--rb-text, #333);
            text-decoration: none;
            font-size: 13px;
            font-weight: 650;
        }
        .rebbify-login-gate__secondary:hover { color: #7C4DFF; }

        @media (min-width: 1100px) {
            .rebbify-ride-topbar {
                height: 54px;
                padding-left: 58px;
                padding-right: 58px;
            }

            .rebbify-ride-stage {
                height: calc(100vh - 54px);
                min-height: 540px;
                padding: 29px 58px 14px;
            }

            .rebbify-booking-wrapper {
                width: min(100%, 1244px);
                height: 100%;
                margin: 0 auto !important;
                gap: 32px;
            }

            .rebbify-booking-panel {
                width: 296px;
                flex: 0 0 296px;
                overflow: visible;
            }

            .rebbify-request-card,
            .booking-location-box {
                padding: 14px !important;
                border: 1px solid var(--rb-border, #e7e7e7) !important;
                border-radius: 13px !important;
            }

            .booking-wrapper__right #map {
                min-height: 506px;
                border-radius: 12px !important;
            }

            .rebbify-search-actions { margin-top: 2px; }
            .rebbify-recent-activity-link {
                display: inline-flex;
                margin-top: 9px;
                color: var(--rb-text, #555);
                font-size: 12px;
                text-decoration: none;
            }

            /* Depois da cotação, mantém formulário + serviços + mapa na mesma
               tela, igual à referência enviada, sem esconder o mapa. */
            .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
                height: calc(100vh - 54px);
                min-height: 540px;
                padding: 29px 58px 14px;
                overflow: hidden;
            }

            .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
                width: min(100%, 1244px);
                height: 100%;
                display: grid;
                grid-template-columns: minmax(690px, 2fr) minmax(320px, 1fr);
                align-items: stretch;
                gap: 30px;
                margin: 0 auto !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
                width: auto;
                max-width: none;
                max-height: 100%;
                display: grid;
                grid-template-columns: 296px minmax(360px, 1fr);
                grid-template-rows: minmax(0, 1fr);
                gap: 0 32px;
                overflow: visible;
            }

            .rebbify-ride-app.is-service-selection .ride_location_wrapper {
                display: block !important;
                grid-column: 1;
                grid-row: 1;
                align-self: start;
            }

            .rebbify-ride-app.is-service-selection .rebbify-service-flow {
                display: block;
                grid-column: 2;
                grid-row: 1;
                min-width: 0;
                min-height: 0;
                max-height: 100%;
                overflow-x: hidden;
                overflow-y: auto;
                padding-right: 5px;
                scrollbar-width: thin;
                -webkit-overflow-scrolling: touch;
            }

            .rebbify-ride-app.is-service-selection .rebbify-service-results {
                display: block !important;
                min-width: 0;
                max-height: none;
                overflow: visible;
                padding-right: 0;
            }

            .rebbify-ride-app.is-service-selection .find_driver_wrapper {
                max-height: none;
                overflow: visible;
            }

            .rebbify-ride-app.is-service-selection .rebbify-map-panel {
                display: block !important;
                min-width: 0;
                height: 100%;
            }

            .rebbify-ride-app.is-service-selection .rebbify-route-summary,
            .rebbify-ride-app.is-service-selection .rebbify-edit-route-btn { display: none; }

            .rebbify-ride-app.is-service-selection .rebbify-service-title-row {
                margin: 2px 0 16px;
            }

            .rebbify-ride-app.is-service-selection .rebbify-service-title-row h1 {
                font-size: 32px;
                line-height: 1.05;
            }

            .rebbify-ride-app.is-service-selection .rebbify-service-label {
                min-height: 92px;
                grid-template-columns: 82px minmax(0,1fr) auto;
                gap: 10px;
                padding: 9px 10px;
            }

            .rebbify-ride-app.is-service-selection .rebbify-service-image {
                width: 82px;
                height: 66px;
            }

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

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



        /* Desktop largo / zoom 70–80%: mantém a mesma estrutura e usa melhor
           a largura disponível, sem deixar busca/serviços agrupados à esquerda. */
        @media (min-width: 1400px) {
            .rebbify-ride-stage {
                padding-left: clamp(28px, 3vw, 58px);
                padding-right: clamp(28px, 3vw, 58px);
            }

            .rebbify-booking-wrapper,
            .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
                width: 100%;
                max-width: none !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
                grid-template-columns: minmax(760px, 1.35fr) minmax(430px, 0.95fr);
                gap: clamp(22px, 2vw, 34px);
            }

            .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
                grid-template-columns: minmax(300px, 0.72fr) minmax(430px, 1.28fr);
                gap: 0 clamp(24px, 2vw, 36px);
            }

            .rebbify-ride-app.is-service-selection .rebbify-service-flow {
                padding-right: 8px;
            }
        }

        @media (max-width: 1099px) {
            .rebbify-request-card,
            .booking-location-box {
                padding: 14px !important;
                border: 1px solid var(--rb-border, #e7e7e7) !important;
                border-radius: 13px !important;
            }
        }

        @media (max-width: 640px) {
            .rebbify-top-city-btn { display: none !important; }
            .rebbify-guest-login-link { padding: 0 8px; }
            .rebbify-guest-register-link { min-height: 34px; padding: 0 10px; }
            .rebbify-login-gate { align-items: end; padding: 0; }
            .rebbify-login-gate__dialog { width: 100%; border-radius: 18px 18px 0 0; padding: 22px 18px calc(18px + env(safe-area-inset-bottom)); }
        }


        /* ===== Process-step: agendamento inline + cupom responsivo ===== */
        .rebbify-request-card.is-schedule-editing .rebbify-request-card__title,
        .rebbify-request-fields.is-schedule-editing > :not(.rebbify-request-time) {
            display: none !important;
        }

        .rebbify-request-card.is-schedule-editing {
            min-height: 520px;
        }

        .rebbify-request-time.is-editor-open {
            margin: 0 !important;
        }

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

        .rebbify-schedule-editor {
            display: none;
            width: 100%;
            min-width: 0;
            color: var(--rb-text, #111);
        }

        .rebbify-request-time.is-editor-open .rebbify-schedule-editor {
            display: block;
        }

        .rebbify-schedule-editor__topbar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 10px;
        }

        .rebbify-schedule-back {
            width: 34px;
            height: 34px;
            flex: 0 0 34px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border: 0;
            border-radius: 50%;
            background: var(--rb-soft, #f3f3f3);
            color: var(--rb-text, #111);
            padding: 0;
        }

        .rebbify-schedule-clear {
            border: 0;
            background: transparent;
            color: var(--rb-text, #111);
            padding: 6px 0 6px 10px;
            font-size: 13px;
            font-weight: 600;
        }

        .rebbify-schedule-editor__title {
            margin: 0 0 12px;
            color: var(--rb-text, #111);
            font-size: 18px;
            line-height: 1.25;
            font-weight: 800;
            letter-spacing: -.2px;
        }

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

        .rebbify-schedule-picker {
            position: relative;
            width: 100%;
            min-width: 0;
            min-height: 48px;
            display: grid;
            grid-template-columns: 26px 64px minmax(0, 1fr);
            align-items: center;
            gap: 8px;
            margin: 0;
            padding: 4px 11px;
            border: 0;
            border-radius: 8px;
            background: var(--rb-soft, #f3f3f3);
            color: var(--rb-text, #111);
            cursor: pointer;
            overflow: visible;
        }

        .rebbify-schedule-picker__icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }

        .rebbify-schedule-picker__chevron {
            display: none;
        }

        .rebbify-schedule-picker__text {
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            font-size: 14px;
            font-weight: 600;
        }

        .rebbify-schedule-picker input[type="date"],
        .rebbify-schedule-picker input[type="time"] {
            position: static;
            grid-column: 3;
            width: 100%;
            min-width: 0;
            height: 38px;
            margin: 0;
            padding: 0 2px;
            border: 0;
            outline: 0;
            opacity: 1;
            background: transparent;
            color: var(--rb-text, #111);
            color-scheme: light;
            cursor: pointer;
            font: inherit;
            font-size: 14px;
            font-weight: 600;
            line-height: 38px;
        }

        .rebbify-schedule-picker input[type="date"]::-webkit-calendar-picker-indicator,
        .rebbify-schedule-picker input[type="time"]::-webkit-calendar-picker-indicator {
            cursor: pointer;
            opacity: .75;
        }

        @media (max-width: 640px) {
            .rebbify-schedule-picker {
                grid-template-columns: 24px 58px minmax(0, 1fr);
                gap: 7px;
                padding-inline: 10px;
            }

            .rebbify-schedule-picker input[type="date"],
            .rebbify-schedule-picker input[type="time"] {
                font-size: 16px;
            }
        }

        .rebbify-reserve-info {
            display: grid;
            gap: 0;
            margin: 14px 0 0;
        }

        .rebbify-reserve-info__item {
            display: grid;
            grid-template-columns: 28px minmax(0, 1fr);
            gap: 10px;
            align-items: start;
            padding: 11px 6px;
            border-bottom: 1px solid var(--rb-border, #ededed);
            color: var(--rb-text, #4a4a4a);
            font-size: 12px;
            line-height: 1.45;
        }

        .rebbify-reserve-info__item:last-child {
            border-bottom: 0;
        }

        .rebbify-reserve-info__icon {
            min-height: 20px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: var(--rb-text, #111);
        }

        .rebbify-reserve-terms-link {
            display: inline-flex;
            align-items: center;
            margin: 4px 0 18px;
            padding: 0;
            border: 0;
            background: transparent !important;
            color: var(--rb-text, #333) !important;
            font-size: 12px;
            font-weight: 500;
            text-decoration: underline;
            text-underline-offset: 2px;
        }

        .rebbify-schedule-advance {
            width: 100%;
            min-height: 44px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-top: 2px;
            padding: 0 16px;
            border: 0;
            border-radius: 8px;
            background: var(--rb-brand, #7C4DFF);
            color: var(--rb-on-accent, #fff);
            font-size: 14px;
            font-weight: 800;
        }

        /* O cupom deve permanecer contido na coluna, sem estourar a largura. */
        .find_driver_wrapper,
        .findDriverDiv,
        .findDriverForm,
        .ride-coupon-box {
            min-width: 0 !important;
            max-width: 100% !important;
            box-sizing: border-box !important;
        }

        .ride-coupon-box {
            width: 100% !important;
            overflow: hidden;
        }

        .ride-coupon-input-row {
            width: 100% !important;
            min-width: 0 !important;
            display: grid !important;
            grid-template-columns: minmax(0, 1fr) auto !important;
            gap: 7px !important;
            align-items: stretch;
        }

        .ride-coupon-input-row .form--control {
            width: 100% !important;
            min-width: 0 !important;
            max-width: 100% !important;
            box-sizing: border-box !important;
        }

        .ride-coupon-apply-btn {
            width: auto !important;
            min-width: 72px !important;
            max-width: 100% !important;
            white-space: nowrap;
        }

        #couponModal .modal-dialog {
            width: min(420px, calc(100vw - 28px));
            max-width: 420px;
            margin-left: auto;
            margin-right: auto;
        }

        #couponModal .modal-content,
        #couponModal .modal-body,
        #couponModal form,
        #couponModal .ride-review-wrapper {
            min-width: 0;
            max-width: 100%;
            box-sizing: border-box;
        }

        @media (max-width: 420px) {
            .rebbify-request-card.is-schedule-editing { min-height: 0; }
            .ride-coupon-input-row {
                grid-template-columns: minmax(0, 1fr) !important;
            }
            .ride-coupon-apply-btn {
                width: 100% !important;
                min-height: 42px;
            }
        }



        /* ===== Process-step: correção final de largura e responsivo ===== */
        /* A tela de solicitação usa a largura disponível; não limita o mapa/card
           a um container central estreito em monitores maiores. */
        @media (min-width: 1100px) {
            .rebbify-ride-stage {
                padding-left: clamp(24px, 3vw, 52px) !important;
                padding-right: clamp(24px, 3vw, 52px) !important;
            }

            .rebbify-booking-wrapper,
            .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
                width: 100% !important;
                max-width: none !important;
                margin-left: 0 !important;
                margin-right: 0 !important;
            }

            .rebbify-booking-panel {
                width: 340px !important;
                flex: 0 0 340px !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
                grid-template-columns: minmax(760px, 2fr) minmax(360px, 1fr) !important;
                gap: 24px !important;
            }

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

        /* Remove o espaço morto herdado da antiga ação "selecionar no mapa"
           que ficava fora da lista. A opção de mapa agora vive no dropdown. */
        .rebbify-request-card .ride-location-field {
            margin-bottom: 10px !important;
        }

        .rebbify-request-card .ride-location-field .input-group-custom__wrapper,
        .rebbify-request-card .ride-location-field .input-group-custom__input {
            min-width: 0 !important;
        }

        .rebbify-request-card .ride-location-field .input-group-custom__input {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        #pickup_suggestions,
        #destination_suggestions {
            width: 100% !important;
            min-width: 100% !important;
            max-width: none !important;
            box-sizing: border-box !important;
        }

        /* Tablet/mobile: formulário realmente ocupa a tela e o mapa vira bloco
           inferior, sem reproduzir a composição desktop espremida. */
        @media (max-width: 991px) {
            .rebbify-ride-stage {
                width: 100% !important;
                padding: 12px !important;
            }

            .rebbify-booking-wrapper {
                width: 100% !important;
                min-width: 0 !important;
                gap: 14px !important;
            }

            .rebbify-booking-panel,
            .ride_location_wrapper,
            .rebbify-request-card,
            .booking-location-box,
            .booking-location-box__form,
            .booking-location-box__inner,
            .rebbify-request-fields {
                width: 100% !important;
                max-width: none !important;
                min-width: 0 !important;
                box-sizing: border-box !important;
            }

            .rebbify-request-card,
            .booking-location-box {
                padding: 16px !important;
            }

            .ride-location-field {
                width: 100% !important;
                min-height: 50px !important;
            }

            .ride-location-field .input-group-custom__input {
                min-height: 50px !important;
                font-size: 16px !important; /* evita zoom automático no iPhone */
            }

            .ride-location-field .input-group-custom__icon,
            .ride-location-field .location__icon {
                height: 50px !important;
            }

            .search-input-dropdown__wrapper-two {
                max-height: min(430px, 58vh) !important;
            }

            .rebbify-map-panel,
            .booking-wrapper__right #map {
                width: 100% !important;
                height: min(42vh, 390px) !important;
                min-height: 280px !important;
            }

            /* Ao pesquisar no celular, mostra os serviços imediatamente. O
               formulário pode ser recuperado pelo botão voltar da lista. */
            .rebbify-ride-app.is-service-selection .ride_location_wrapper {
                display: none !important;
            }

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

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

        /* Mobile: cabeçalho em duas faixas. Só um acesso de conta fica visível;
           "Viagem" e "Envios" ganham a largura toda e deixam de ficar espremidos. */
        @media (max-width: 767px) {
            .rebbify-ride-app {
                --ride-topbar-height: 102px !important;
            }

            .rebbify-ride-topbar {
                height: var(--ride-topbar-height) !important;
                min-height: var(--ride-topbar-height) !important;
                padding: 0 14px 48px !important;
                gap: 10px !important;
                position: relative;
            }

            .rebbify-ride-topbar__left {
                gap: 0 !important;
            }

            .rebbify-ride-brand,
            .rebbify-ride-brand img {
                width: 82px !important;
            }

            .rebbify-ride-modes {
                position: absolute !important;
                left: 12px !important;
                right: 12px !important;
                bottom: 6px !important;
                width: auto !important;
                height: 40px !important;
                display: grid !important;
                grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
                gap: 4px !important;
                padding: 3px !important;
                border-radius: 10px !important;
                background: var(--rb-soft, #f3f3f3) !important;
            }

            .rebbify-mode-tab {
                width: 100% !important;
                min-width: 0 !important;
                height: 34px !important;
                justify-content: center !important;
                padding: 0 8px !important;
                border-radius: 8px !important;
                font-size: 13px !important;
            }

            .rebbify-mode-tab.is-active {
                background: var(--rb-solid, #fff) !important;
                color: #7C4DFF !important;
                box-shadow: 0 1px 4px rgba(0,0,0,.10) !important;
            }

            .rebbify-ride-topbar__right {
                margin-left: auto !important;
                gap: 6px !important;
            }

            .rebbify-guest-register-link {
                display: none !important;
            }

            .rebbify-guest-login-link {
                min-height: 38px !important;
                padding: 0 10px !important;
                font-size: 13px !important;
            }

            .rebbify-ride-stage {
                min-height: calc(100vh - var(--ride-topbar-height)) !important;
                padding: 10px !important;
            }

            .rebbify-request-card,
            .booking-location-box {
                padding: 14px !important;
                border-radius: 12px !important;
            }

            .rebbify-request-card__title {
                margin-bottom: 12px !important;
                font-size: 20px !important;
            }

            .rebbify-search-ride-btn {
                min-height: 50px !important;
                font-size: 15px !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-ride-topbar {
                display: flex !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
                min-height: calc(100vh - var(--ride-topbar-height)) !important;
                padding: 10px !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-map-panel {
                display: none !important;
            }

            .rebbify-service-title-row {
                margin-top: 2px !important;
            }

            .rebbify-service-title-row h1 {
                font-size: clamp(25px, 8vw, 31px) !important;
            }

            .rebbify-service-label {
                width: 100% !important;
                min-width: 0 !important;
                grid-template-columns: 76px minmax(0, 1fr) auto !important;
            }

            .rebbify-service-price {
                min-width: 0 !important;
                white-space: nowrap !important;
            }
        }

        @media (max-width: 380px) {
            .rebbify-ride-stage { padding: 8px !important; }
            .rebbify-request-card, .booking-location-box { padding: 12px !important; }
            .rebbify-ride-brand, .rebbify-ride-brand img { width: 72px !important; }
            .rebbify-service-label {
                grid-template-columns: 66px minmax(0, 1fr) !important;
                gap: 8px !important;
            }
            .rebbify-service-price {
                grid-column: 2 !important;
                justify-self: start !important;
            }
        }


        /* Envios: observação fica no mesmo formulário sem alterar o layout de Viagem. */
        .rebbify-delivery-note-field {
            display: none;
            width: 100%;
            min-width: 0;
            margin: 2px 0 12px;
        }

        .rebbify-ride-app[data-active-service-type="delivery"] .rebbify-delivery-note-field {
            display: block;
        }

        .rebbify-delivery-note-label {
            display: block;
            margin-bottom: 6px;
            color: var(--rb-text, #161616);
            font-size: 13px;
            font-weight: 700;
        }

        .rebbify-delivery-note-input {
            width: 100%;
            min-width: 0;
            min-height: 86px;
            resize: vertical;
            box-sizing: border-box;
            font-size: 14px;
            line-height: 1.4;
        }

        .rebbify-delivery-note-help {
            display: block;
            margin-top: 5px;
            color: var(--rb-muted, #737373);
            font-size: 11px;
            line-height: 1.35;
        }

        /* ===== HOTFIX: rolagem dos serviços sem alterar o layout ===== */
        /* Desktop largo mantém exatamente formulário | serviços | mapa.
           Quando houver muitos serviços, somente a lista central rola. */
        @media (min-width: 1200px) {
            .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
                height: calc(100vh - var(--ride-topbar-height)) !important;
                height: calc(100dvh - var(--ride-topbar-height)) !important;
                min-height: 540px !important;
                overflow: hidden !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
                height: 100% !important;
                min-height: 0 !important;
                align-items: stretch !important;
                overflow: hidden !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
                height: 100% !important;
                min-height: 0 !important;
                max-height: 100% !important;
                grid-template-rows: minmax(0, 1fr) !important;
                overflow: visible !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-service-flow {
                min-height: 0 !important;
                max-height: 100% !important;
                overflow-x: hidden !important;
                overflow-y: auto !important;
                padding-right: 6px !important;
                scrollbar-width: thin;
                scrollbar-gutter: stable;
                -webkit-overflow-scrolling: touch;
                touch-action: pan-y;
                overscroll-behavior-y: contain;
            }

            .rebbify-ride-app.is-service-selection .rebbify-service-results {
                min-height: 0 !important;
                max-height: none !important;
                overflow: visible !important;
                padding-right: 0 !important;
            }

            .rebbify-ride-app.is-service-selection .serviceDiv {
                min-height: 0 !important;
                overflow: visible !important;
            }

            .rebbify-ride-app.is-service-selection .find_driver_wrapper {
                max-height: none !important;
                overflow: visible !important;
                margin-top: 12px !important;
                padding-bottom: 8px !important;
            }
        }

        /* Em desktop compacto/zoom e em mobile, preserva o layout responsivo
           que já existe e garante rolagem vertical natural, sem painel travado. */
        @media (max-width: 1199px) {
            html,
            body {
                height: auto !important;
                min-height: 100% !important;
                overflow-x: hidden !important;
                overflow-y: auto !important;
            }

            .rebbify-ride-app.is-service-selection .rebbify-ride-stage,
            .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper,
            .rebbify-ride-app.is-service-selection .rebbify-booking-panel,
            .rebbify-ride-app.is-service-selection .rebbify-service-results,
            .rebbify-ride-app.is-service-selection .serviceDiv,
            .rebbify-ride-app.is-service-selection .find_driver_wrapper {
                height: auto !important;
                max-height: none !important;
                overflow-y: visible !important;
            }
        }

        /* Cupom: não deixa o botão esmagar ou esticar o campo em telas pequenas. */
        @media (max-width: 420px) {
            .ride-coupon-input-row {
                grid-template-columns: minmax(0, 1fr) !important;
                gap: 7px !important;
            }

            .ride-coupon-apply-btn {
                width: 100% !important;
                min-width: 0 !important;
            }
        }

/* ===== Process-step: campos compactos e clean (referência visual) ===== */
/* Somente apresentação do formulário inicial: nenhuma alteração de fluxo ou lógica. */
.rebbify-request-card__title {
    margin-bottom: 10px !important;
}

.rebbify-request-card .ride-location-field {
    min-height: 40px !important;
    margin-bottom: 8px !important;
    grid-template-columns: 28px minmax(0, 1fr) auto !important;
    padding: 0 7px !important;
}

.rebbify-request-card .ride-location-field .input-group-custom__icon,
.rebbify-request-card .ride-location-field .location__icon {
    width: 24px !important;
    min-width: 24px !important;
    height: 40px !important;
}

.rebbify-request-card .ride-location-field .input-group-custom__wrapper {
    min-width: 0 !important;
    overflow: hidden !important;
}

.rebbify-request-card .ride-location-field .input-group-custom__input {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 40px !important;
    height: 40px !important;
    padding: 0 3px !important;
    font-size: 14px !important;
    line-height: 40px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
}

.rebbify-request-card .ride-location-field .input-group-custom__input::placeholder {
    color: var(--rb-text, #666) !important;
    opacity: 1 !important;
    font-weight: 400 !important;
}

.rebbify-request-card .ride-location-field .location-icon-pickup,
.rebbify-request-card .ride-location-field .location-icon-destination {
    width: auto !important;
    min-width: 28px !important;
    gap: 3px !important;
}

.rebbify-request-card .rebbify-pickup-gps-btn,
.rebbify-request-card .ride-add-stop-circle {
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
}

.rebbify-request-time {
    margin-bottom: 8px !important;
}

.rebbify-time-summary {
    min-height: 40px !important;
    grid-template-columns: 26px minmax(0, 1fr) auto !important;
    gap: 5px !important;
    padding: 0 8px !important;
}

.rebbify-time-summary__copy strong {
    font-size: 14px !important;
    font-weight: 500 !important;
}

/* Em telas touch preserva 16px no input para evitar zoom automático do iOS,
   mantendo o mesmo visual compacto com altura controlada. */
@media (max-width: 991px) {
    .rebbify-request-card .ride-location-field {
        min-height: 44px !important;
    }

    .rebbify-request-card .ride-location-field .input-group-custom__icon,
    .rebbify-request-card .ride-location-field .location__icon,
    .rebbify-request-card .ride-location-field .input-group-custom__input {
        height: 44px !important;
        min-height: 44px !important;
    }

    .rebbify-request-card .ride-location-field .input-group-custom__input {
        font-size: 16px !important;
        line-height: 44px !important;
    }

    .rebbify-time-summary {
        min-height: 42px !important;
    }
}


/* Mobile: o menu da conta precisa aparecer como um card legível sobre a tela.
   Escopo restrito à /user/ride/process-step e somente abaixo de 767px. */
@media (max-width: 767px) {
    .rebbify-ride-topbar__right .rebbify-profile-menu {
        min-width: 188px !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 12px 28px rgba(0, 0, 0, .16) !important;
        overflow: hidden !important;
        z-index: 320 !important;
    }

    .rebbify-ride-topbar__right .rebbify-profile-menu .dropdown-item {
        display: block !important;
        width: 100% !important;
        padding: 10px 12px !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 8px !important;
        background: var(--rb-solid, #fff) !important;
        color: var(--rb-text, #111827) !important;
        font-size: 14px !important;
        font-weight: 600 !important;
        line-height: 1.35 !important;
        text-decoration: none !important;
        white-space: nowrap !important;
    }

    .rebbify-ride-topbar__right .rebbify-profile-menu .dropdown-item:hover,
    .rebbify-ride-topbar__right .rebbify-profile-menu .dropdown-item:focus,
    .rebbify-ride-topbar__right .rebbify-profile-menu .dropdown-item:active {
        background: var(--rb-soft, #f3f4f6) !important;
        color: var(--rb-text, #111827) !important;
    }
}

/* 2026-09-02: somente imagem do serviço um pouco maior, sem alterar o restante do card. */
.rebbify-service-label {
    grid-template-columns: 112px minmax(0, 1fr) auto;
}
.rebbify-service-image {
    width: 112px;
    height: 86px;
}
.rebbify-service-image img {
    max-width: 112px;
    max-height: 86px;
}
.rebbify-ride-app.is-service-selection .rebbify-service-label {
    grid-template-columns: 132px minmax(0, 1fr) auto;
    min-height: 112px;
}
.rebbify-ride-app.is-service-selection .rebbify-service-image {
    width: 132px;
    height: 100px;
}
.rebbify-ride-app.is-service-selection .rebbify-service-image img {
    max-width: 132px;
    max-height: 100px;
}
@media (max-width: 420px) {
    .rebbify-service-label,
    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        grid-template-columns: 96px minmax(0, 1fr) auto;
    }
    .rebbify-service-image,
    .rebbify-ride-app.is-service-selection .rebbify-service-image {
        width: 96px;
        height: 74px;
    }
    .rebbify-service-image img,
    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        max-width: 96px;
        max-height: 74px;
    }
}

/* 2026-09-02: distribuição proporcional da seleção de serviços em desktop.
   Mantém busca | serviços | mapa, centraliza o conjunto e impede o width fixo
   do painel de deixar espaço morto em zoom 70–80%. */
@media (min-width: 1200px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        width: min(100%, 1500px) !important;
        max-width: 1500px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        grid-template-columns: minmax(0, 1.9fr) minmax(380px, 1fr) !important;
        gap: clamp(24px, 2vw, 34px) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        width: 100% !important;
        max-width: none !important;
        flex: none !important;
        grid-template-columns: minmax(290px, 320px) minmax(0, 1fr) !important;
        gap: 0 clamp(22px, 1.7vw, 30px) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results,
    .rebbify-ride-app.is-service-selection .find_driver_wrapper,
    .rebbify-ride-app.is-service-selection .rebbify-map-panel {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }
}

/* Detalhamento do preço do serviço selecionado. */
body.rebbify-price-modal-open { overflow: hidden !important; }
.rebbify-price-detail-modal[hidden] { display: none !important; }
.rebbify-price-detail-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.rebbify-price-detail-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .52);
}
.rebbify-price-detail-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 620px);
    max-height: min(86vh, 760px);
    overflow-y: auto;
    border-radius: 22px;
    background: var(--rb-solid, #fff);
    color: var(--rb-text, #111);
    padding: 28px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}
.rebbify-price-detail-modal__dialog h2 {
    margin: 0 44px 8px 0;
    font-size: 25px;
    line-height: 1.15;
    font-weight: 850;
}
.rebbify-price-detail-modal__intro,
.rebbify-price-detail-modal__note {
    margin: 0;
    color: var(--rb-text, #4b5563);
    font-size: 14px;
    line-height: 1.55;
}
.rebbify-price-detail-modal__service {
    margin: 20px 0 10px;
    font-size: 16px;
    font-weight: 800;
    color: hsl(var(--base));
}
.rebbify-price-detail-modal__rows {
    margin: 0 0 18px;
    border-top: 1px solid var(--rb-border, #ececec);
}
.rebbify-price-detail-modal__rows > div,
.rebbify-price-detail-modal__additional-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--rb-border, #ececec);
}
.rebbify-price-detail-modal__rows span,
.rebbify-price-detail-modal__additional-row span { color: var(--rb-text, #374151); }
.rebbify-price-detail-modal__rows strong,
.rebbify-price-detail-modal__additional-row strong { color: var(--rb-text, #111); white-space: nowrap; }
.rebbify-price-detail-modal__extra { margin: 0 0 18px; }
.rebbify-price-detail-modal__extra h3 { margin: 0 0 4px; font-size: 15px; font-weight: 800; }
.rebbify-price-detail-modal__x {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: var(--rb-soft, #f1f3f5);
    color: var(--rb-text, #111);
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}
.rebbify-price-detail-modal__close {
    width: 100%;
    margin-top: 22px;
    border: 0;
    border-radius: 12px;
    background: hsl(var(--base));
    color: #fff;
    padding: 13px 18px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
}
@media (max-width: 600px) {
    .rebbify-price-detail-modal { align-items: flex-end; padding: 0; }
    .rebbify-price-detail-modal__dialog {
        width: 100%;
        max-height: 88vh;
        border-radius: 22px 22px 0 0;
        padding: 22px 18px max(22px, env(safe-area-inset-bottom));
    }
}

/* ========================================================================
   2026-09-05 — escolha de viagem compacta / responsiva
   Escopo: somente /user/ride/process-step durante a seleção de serviços.
   Mantém mapa, origem/destino e catálogo existente; reorganiza densidade e
   fixa as ações sem alterar a lógica da corrida.
   ======================================================================== */
.rebbify-ride-app.is-service-selection {
    --rebbify-actionbar-height: 92px;
}

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

.rebbify-ride-app.is-service-selection .rebbify-service-group__title {
    margin: 0 0 6px !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    color: var(--rb-text, #111827) !important;
}

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

.rebbify-ride-app.is-service-selection .rebbify-service-item {
    margin: 0 !important;
    border: 1px solid var(--rb-border, #e5e7eb) !important;
    border-radius: 13px !important;
    background: var(--rb-solid, #fff) !important;
    overflow: hidden !important;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-item:hover {
    background: var(--rb-solid, #fafafa) !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-item.is-selected {
    border-color: #7c4dff !important;
    background: var(--rb-soft, #faf8ff) !important;
    box-shadow: 0 0 0 1px rgba(124, 77, 255, .16) !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-label,
.rebbify-service-label {
    display: grid !important;
    grid-template-columns: 104px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 86px !important;
    padding: 7px 10px !important;
    cursor: pointer !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-image,
.rebbify-service-image {
    width: 104px !important;
    height: 72px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-image img,
.rebbify-service-image img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 104px !important;
    max-height: 72px !important;
    object-fit: contain !important;
    object-position: center !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-copy {
    min-width: 0 !important;
    align-self: center !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-name-row {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 4px 7px !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-name {
    font-size: 16px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-capacity {
    font-size: 11px !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;
    max-width: 100% !important;
    margin-top: 2px !important;
    font-size: 11.5px !important;
    line-height: 1.28 !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-description {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-price {
    align-self: center !important;
    min-width: 82px !important;
    text-align: right !important;
    white-space: nowrap !important;
}

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

/* Barra de ação: sticky no scroll próprio da coluna de serviços. */
.rebbify-ride-app.is-service-selection .find_driver_wrapper {
    position: sticky !important;
    bottom: 0 !important;
    z-index: 40 !important;
    display: block;
    width: 100% !important;
    margin-top: 10px !important;
    background: transparent !important;
}

.rebbify-booking-action-card,
.rebbify-booking-action-card.common-card {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: var(--rb-solid, #fff) !important;
    box-shadow: 0 -10px 30px rgba(17, 24, 39, .09) !important;
}

.rebbify-payment-native-select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.rebbify-booking-actionbar {
    display: grid !important;
    grid-template-columns: auto minmax(120px, .8fr) minmax(105px, .65fr) minmax(180px, 1.25fr) !important;
    align-items: stretch !important;
    gap: 8px !important;
    padding: 9px !important;
    border: 1px solid var(--rb-border, #e5e7eb) !important;
    border-radius: 14px !important;
    background: var(--rb-solid, #fff) !important;
}

.rebbify-actionbar-profile,
.rebbify-actionbar-option {
    min-width: 0 !important;
    min-height: 52px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 7px 9px !important;
    border: 1px solid var(--rb-border, #eceff3) !important;
    border-radius: 10px !important;
    background: var(--rb-solid, #fff) !important;
    color: var(--rb-text, #111827) !important;
}

.rebbify-actionbar-option {
    cursor: pointer !important;
    text-align: left !important;
}

.rebbify-actionbar-option:hover,
.rebbify-actionbar-option:focus {
    background: var(--rb-soft, #f8f7ff) !important;
    border-color: var(--rb-border, #d8ccff) !important;
}

.rebbify-actionbar-profile__avatar,
.rebbify-actionbar-profile__icon,
.rebbify-actionbar-option__icon {
    width: 30px !important;
    height: 30px !important;
    flex: 0 0 30px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--rb-brand-soft, #f3f0ff) !important;
    color: #6d28d9 !important;
    object-fit: cover !important;
}

.rebbify-actionbar-profile__copy,
.rebbify-actionbar-option__copy {
    display: flex !important;
    min-width: 0 !important;
    flex-direction: column !important;
}

.rebbify-actionbar-profile__copy small,
.rebbify-actionbar-option__copy small {
    font-size: 10px !important;
    line-height: 1.1 !important;
    color: var(--rb-muted, #6b7280) !important;
}

.rebbify-actionbar-profile__copy strong,
.rebbify-actionbar-option__copy strong {
    margin-top: 2px !important;
    max-width: 150px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    color: var(--rb-text, #111827) !important;
}

.rebbify-actionbar-submit {
    min-width: 0 !important;
    min-height: 52px !important;
    margin: 0 !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    white-space: normal !important;
    line-height: 1.2 !important;
}

/* Modal de pagamento/cupom */
body.rebbify-payment-modal-open { overflow: hidden !important; }
.rebbify-payment-modal[hidden] { display: none !important; }
.rebbify-payment-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 1120 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 18px !important;
}
.rebbify-payment-modal__backdrop {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(17, 24, 39, .52) !important;
}
.rebbify-payment-modal__dialog {
    position: relative !important;
    z-index: 1 !important;
    width: min(100%, 540px) !important;
    max-height: min(90vh, 760px) !important;
    overflow-y: auto !important;
    padding: 22px !important;
    border-radius: 20px !important;
    background: var(--rb-solid, #fff) !important;
    color: var(--rb-text, #111827) !important;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .28) !important;
}
.rebbify-payment-modal__header {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 14px !important;
    margin-bottom: 14px !important;
}
.rebbify-payment-modal__header h2 {
    margin: 0 !important;
    font-size: 24px !important;
    font-weight: 900 !important;
}
.rebbify-payment-modal__header p {
    margin: 4px 0 0 !important;
    font-size: 13px !important;
    color: var(--rb-muted, #6b7280) !important;
}
.rebbify-payment-modal__x {
    width: 38px !important;
    height: 38px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: var(--rb-soft, #f3f4f6) !important;
    color: var(--rb-text, #111827) !important;
}
.rebbify-payment-options {
    display: grid !important;
    gap: 7px !important;
}
.rebbify-payment-option {
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) 22px !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 58px !important;
    margin: 0 !important;
    padding: 9px 11px !important;
    border: 1px solid var(--rb-border, #e5e7eb) !important;
    border-radius: 12px !important;
    background: var(--rb-solid, #fff) !important;
    color: var(--rb-text, #111827) !important;
    text-decoration: none !important;
    cursor: pointer !important;
}
.rebbify-payment-option:has(input:checked) {
    border-color: #7c4dff !important;
    background: var(--rb-soft, #faf8ff) !important;
}
.rebbify-payment-option.is-disabled {
    opacity: .45 !important;
    cursor: not-allowed !important;
}
.rebbify-payment-option input {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.rebbify-payment-option__icon {
    width: 38px !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 10px !important;
    background: var(--rb-brand-soft, #f3f0ff) !important;
    color: #6d28d9 !important;
    font-size: 20px !important;
}
.rebbify-payment-option > span:nth-child(3),
.rebbify-payment-option--login > span:nth-child(2) {
    display: flex !important;
    min-width: 0 !important;
    flex-direction: column !important;
}
.rebbify-payment-option strong { font-size: 14px !important; }
.rebbify-payment-option small { margin-top: 2px !important; font-size: 11px !important; color: var(--rb-muted, #6b7280) !important; }
.rebbify-payment-option__check {
    width: 18px !important;
    height: 18px !important;
    border: 2px solid var(--rb-border, #cbd5e1) !important;
    border-radius: 50% !important;
}
.rebbify-payment-option:has(input:checked) .rebbify-payment-option__check {
    border: 5px solid #7c4dff !important;
}
.rebbify-payment-modal__section {
    margin-top: 16px !important;
    padding-top: 14px !important;
    border-top: 1px solid var(--rb-border, #e5e7eb) !important;
}
.rebbify-payment-modal__section-title {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 8px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}
.rebbify-payment-credit-summary {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin-top: 14px !important;
    padding: 12px !important;
    border-radius: 12px !important;
    background: var(--rb-brand-soft, #f7f5ff) !important;
}
.rebbify-payment-credit-summary span {
    display: flex !important;
    flex-direction: column !important;
}
.rebbify-payment-credit-summary small { color: var(--rb-muted, #6b7280) !important; font-size: 11px !important; }
.rebbify-payment-save { min-height: 48px !important; margin-top: 16px !important; border-radius: 11px !important; }

@media (min-width: 1200px) {
    body:has(.rebbify-ride-app.is-service-selection) { overflow: hidden !important; }

    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        height: calc(100vh - var(--ride-topbar-height)) !important;
        min-height: 560px !important;
        padding: 16px clamp(18px, 2vw, 34px) 12px !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        width: 100% !important;
        max-width: none !important;
        height: 100% !important;
        display: grid !important;
        grid-template-columns: minmax(720px, 1.55fr) minmax(360px, .95fr) !important;
        gap: clamp(16px, 1.5vw, 26px) !important;
        align-items: stretch !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        width: 100% !important;
        max-width: none !important;
        height: 100% !important;
        display: grid !important;
        grid-template-columns: clamp(250px, 18vw, 305px) minmax(410px, 1fr) !important;
        grid-template-rows: minmax(0, 1fr) !important;
        gap: 0 clamp(14px, 1.3vw, 22px) !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper {
        display: block !important;
        grid-column: 1 !important;
        min-width: 0 !important;
        align-self: start !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-flow {
        grid-column: 2 !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: 100% !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        padding: 0 4px 4px 0 !important;
        scrollbar-width: thin !important;
        overscroll-behavior: contain !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results {
        min-width: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 0 8px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results__header {
        position: sticky !important;
        top: 0 !important;
        z-index: 15 !important;
        margin: 0 0 8px !important;
        padding: 2px 0 8px !important;
        background: var(--rb-solid, #fff) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-title-row {
        margin: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-title-row h1 {
        font-size: clamp(22px, 1.8vw, 28px) !important;
        line-height: 1.05 !important;
    }

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

@media (max-width: 1199px) {
    .rebbify-ride-app.is-service-selection {
        --rebbify-actionbar-height: 112px;
    }

    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        height: auto !important;
        min-height: calc(100vh - var(--ride-topbar-height)) !important;
        padding: 10px 12px calc(var(--rebbify-actionbar-height) + 14px) !important;
        overflow: visible !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        grid-template-areas: "map" "panel" !important;
        gap: 12px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-map-panel {
        grid-area: map !important;
        display: block !important;
        width: 100% !important;
        height: clamp(210px, 32vh, 310px) !important;
        min-height: 210px !important;
    }

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

    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        grid-area: panel !important;
        width: 100% !important;
        max-width: none !important;
        display: block !important;
        overflow: visible !important;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper {
        display: block !important;
        width: 100% !important;
        margin-bottom: 10px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-flow {
        display: block !important;
        width: 100% !important;
        max-height: none !important;
        overflow: visible !important;
        padding-bottom: 8px !important;
    }

    .rebbify-ride-app.is-service-selection .find_driver_wrapper {
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        z-index: 1000 !important;
        margin: 0 !important;
        padding: 7px max(10px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)) !important;
        background: rgba(255, 255, 255, .98) !important;
        border-top: 1px solid var(--rb-border, #e5e7eb) !important;
        box-shadow: 0 -8px 26px rgba(17, 24, 39, .10) !important;
    }

    .rebbify-booking-action-card,
    .rebbify-booking-action-card.common-card {
        box-shadow: none !important;
    }

    .rebbify-booking-actionbar {
        grid-template-columns: minmax(0, .9fr) minmax(0, .8fr) minmax(140px, 1.2fr) !important;
        padding: 0 !important;
        border: 0 !important;
    }

    .rebbify-actionbar-profile { display: none !important; }
    .rebbify-actionbar-option,
    .rebbify-actionbar-submit { min-height: 54px !important; }
}

@media (max-width: 767px) {
    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

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

    .rebbify-ride-app.is-service-selection .rebbify-service-image,
    .rebbify-service-image {
        grid-column: auto !important;
        grid-row: auto !important;
        width: 92px !important;
        height: 66px !important;
    }

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

    .rebbify-service-copy,
    .rebbify-service-price {
        grid-column: auto !important;
        grid-row: auto !important;
        align-self: center !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-name { font-size: 14px !important; }
    .rebbify-ride-app.is-service-selection .rebbify-service-meta,
    .rebbify-ride-app.is-service-selection .rebbify-service-description { font-size: 10.5px !important; }
    .rebbify-ride-app.is-service-selection .rebbify-service-price { min-width: 66px !important; }
    .rebbify-ride-app.is-service-selection .rebbify-service-price strong { font-size: 13px !important; }

    .rebbify-actionbar-option {
        gap: 5px !important;
        padding: 5px 7px !important;
    }
    .rebbify-actionbar-option__icon { display: none !important; }
    .rebbify-actionbar-option > .la-angle-up { display: none !important; }
    .rebbify-actionbar-option__copy strong { max-width: 100px !important; font-size: 11px !important; }
    .rebbify-actionbar-option__copy small { font-size: 9px !important; }
    .rebbify-actionbar-submit { font-size: 12px !important; padding: 6px 8px !important; }

    .rebbify-payment-modal {
        align-items: flex-end !important;
        padding: 0 !important;
    }
    .rebbify-payment-modal__dialog {
        width: 100% !important;
        max-width: none !important;
        max-height: 92vh !important;
        padding: 18px 16px max(18px, env(safe-area-inset-bottom)) !important;
        border-radius: 22px 22px 0 0 !important;
    }
}

@media (max-width: 420px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-label,
    .rebbify-service-label {
        grid-template-columns: 80px minmax(0, 1fr) auto !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-image,
    .rebbify-service-image {
        width: 80px !important;
        height: 60px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-image img,
    .rebbify-service-image img {
        max-width: 80px !important;
        max-height: 60px !important;
    }
    .rebbify-booking-actionbar {
        grid-template-columns: minmax(0, .85fr) minmax(0, .72fr) minmax(118px, 1.25fr) !important;
        gap: 5px !important;
    }
}

/* ========================================================================
   2026-09-05 — painel "Peça uma viagem" compacto conforme referência
   Escopo restrito ao formulário de origem/destino. Não altera mapa/serviços.
   ======================================================================== */
body.rebbify-fast-promo-open { overflow: hidden !important; }

.rebbify-request-card .rebbify-request-fields {
    gap: 0 !important;
}

.rebbify-request-card__heading {
    order: 0;
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    margin: 0 0 9px;
}

.rebbify-request-card__heading-icon {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--rb-text, #111);
}

.rebbify-request-card__heading-icon svg {
    width: 18px;
    height: 18px;
    display: block;
}

.rebbify-request-card .rebbify-request-card__title {
    margin: 0 !important;
    color: var(--rb-text, #111) !important;
    font-size: clamp(20px, 1.45vw, 24px) !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    letter-spacing: -.025em !important;
}

.rebbify-fast-promo-card {
    order: 1;
    width: 100%;
    min-width: 0;
    min-height: 42px;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) 20px;
    align-items: center;
    gap: 7px;
    margin: 0 0 13px;
    padding: 7px 9px;
    border: 0;
    border-radius: 8px;
    background: var(--rb-soft, #f2f2f2);
    color: var(--rb-text, #111);
    text-align: left;
    cursor: pointer;
}

.rebbify-fast-promo-card:hover,
.rebbify-fast-promo-card:focus-visible {
    background: var(--rb-soft, #ececec);
}

.rebbify-fast-promo-card:focus-visible {
    outline: 2px solid hsl(var(--base));
    outline-offset: 2px;
}

.rebbify-fast-promo-card__discount,
.rebbify-fast-promo-card__info {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--rb-text, #111);
}

.rebbify-fast-promo-card__discount svg {
    width: 21px;
    height: 21px;
}

.rebbify-fast-promo-card__info {
    color: hsl(var(--base));
}

.rebbify-fast-promo-card__info svg {
    width: 18px;
    height: 18px;
}

.rebbify-fast-promo-card__copy {
    display: block;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 11.5px;
    line-height: 1.25;
    font-weight: 600;
}

.rebbify-request-card .ride-location-field[data-location-field="pickup"] { order: 2 !important; }
.rebbify-request-card .ride-location-field[data-location-field="destination"] { order: 3 !important; }
.rebbify-request-card .ride-stops-container { order: 4 !important; }
.rebbify-request-card .rebbify-request-time { order: 5 !important; }
.rebbify-request-card .rebbify-delivery-note-field { order: 6 !important; }
.rebbify-request-card .rebbify-search-actions { order: 7 !important; }

.rebbify-request-card .ride-location-field {
    display: block !important;
    position: relative !important;
    min-height: 0 !important;
    margin: 0 0 11px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
}

.rebbify-request-card .rebbify-field-caption {
    display: block !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
    color: var(--rb-text, #555) !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    font-weight: 750 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
}

.rebbify-request-card .rebbify-location-control {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: center;
    gap: 3px;
    padding: 0 7px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: var(--rb-soft, #f3f3f3);
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.rebbify-request-card .ride-location-field:focus-within .rebbify-location-control,
.rebbify-request-card .ride-location-field.is-search-open .rebbify-location-control {
    border-color: rgba(124, 77, 255, .45);
    background: var(--rb-solid, #fff);
    box-shadow: 0 0 0 2px rgba(124, 77, 255, .08);
}

.rebbify-request-card .rebbify-location-control .input-group-custom__icon,
.rebbify-request-card .rebbify-location-control .location__icon {
    width: 28px !important;
    min-width: 28px !important;
    height: 42px !important;
    min-height: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

.rebbify-request-card .rebbify-location-control .rebbify-route-location-icon {
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    max-width: 17px !important;
    max-height: 17px !important;
    object-fit: contain !important;
}

.rebbify-request-card .rebbify-location-control .input-group-custom__wrapper {
    min-width: 0 !important;
    height: 42px !important;
    display: flex !important;
    align-items: center !important;
    overflow: hidden !important;
}

.rebbify-request-card .rebbify-location-control .input-group-custom__input {
    width: 100% !important;
    min-width: 0 !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    color: var(--rb-text, #111) !important;
    font-size: 13px !important;
    line-height: 42px !important;
    font-weight: 500 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
}

.rebbify-request-card .rebbify-location-control .input-group-custom__input::placeholder {
    color: var(--rb-text, #676767) !important;
    opacity: 1 !important;
}

.rebbify-request-card .rebbify-location-control .icon-clear,
.rebbify-request-card .rebbify-location-control .ride-add-stop-circle,
.rebbify-request-card .rebbify-location-control .rebbify-pickup-gps-btn {
    flex: 0 0 auto !important;
}

.rebbify-request-card .rebbify-location-control .icon-clear {
    width: 18px !important;
    height: 18px !important;
    padding: 1px !important;
    color: var(--rb-text, #111) !important;
}

.rebbify-request-card .rebbify-pickup-gps-btn,
.rebbify-request-card .ride-add-stop-circle {
    width: 27px !important;
    min-width: 27px !important;
    height: 27px !important;
    min-height: 27px !important;
    border-radius: 50% !important;
}

.rebbify-request-card .rebbify-pickup-gps-btn img {
    width: 16px !important;
    height: 16px !important;
}

.rebbify-request-card .ride-add-stop-circle svg {
    width: 16px !important;
    height: 16px !important;
}

.rebbify-request-card .rebbify-request-time {
    margin: 0 0 11px !important;
}

.rebbify-request-card .rebbify-time-summary {
    min-height: 44px !important;
    height: 44px !important;
    grid-template-columns: 28px minmax(0, 1fr) 18px !important;
    gap: 5px !important;
    padding: 0 9px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    background: var(--rb-soft, #f3f3f3) !important;
}

.rebbify-request-card .rebbify-time-summary:hover,
.rebbify-request-card .rebbify-time-summary:focus-visible {
    background: var(--rb-soft, #ececec) !important;
}

.rebbify-request-card .rebbify-time-summary__icon,
.rebbify-request-card .rebbify-time-summary__chevron {
    width: 22px !important;
    height: 22px !important;
}

.rebbify-request-card .rebbify-time-summary__icon svg {
    width: 18px !important;
    height: 18px !important;
}

.rebbify-request-card .rebbify-time-summary__copy strong {
    display: block !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 650 !important;
}

.rebbify-request-card .rebbify-time-summary__copy small {
    display: none !important;
}

.rebbify-request-card .rebbify-search-actions {
    margin: 0 !important;
}

.rebbify-request-card #rideSearchBtn,
.rebbify-request-card .rebbify-search-ride-btn {
    width: 100% !important;
    min-height: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
}

/* Promoção informativa solicitada para este painel. */
.rebbify-fast-promo-modal[hidden] { display: none !important; }
.rebbify-fast-promo-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.rebbify-fast-promo-modal__backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(0, 0, 0, .52);
    cursor: default;
}

.rebbify-fast-promo-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 570px);
    max-height: min(86vh, 720px);
    overflow-y: auto;
    padding: 26px;
    border-radius: 18px;
    background: var(--rb-solid, #fff);
    color: var(--rb-text, #111);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}

.rebbify-fast-promo-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--rb-soft, #f1f1f1);
    color: var(--rb-text, #111);
    cursor: pointer;
}

.rebbify-fast-promo-modal__icon {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 12px;
    border-radius: 10px;
    background: var(--rb-brand-soft, #f3efff);
    color: hsl(var(--base));
}

.rebbify-fast-promo-modal__dialog h2 {
    max-width: 470px;
    margin: 0 42px 20px 0;
    font-size: 22px;
    line-height: 1.25;
    font-weight: 850;
    letter-spacing: -.02em;
}

.rebbify-fast-promo-modal__section + .rebbify-fast-promo-modal__section {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--rb-border, #e8e8e8);
}

.rebbify-fast-promo-modal__section h3 {
    margin: 0 0 7px;
    font-size: 15px;
    line-height: 1.25;
    font-weight: 800;
}

.rebbify-fast-promo-modal__section p,
.rebbify-fast-promo-modal__section li {
    color: var(--rb-text, #4b5563);
    font-size: 13px;
    line-height: 1.5;
}

.rebbify-fast-promo-modal__section p { margin: 0; }
.rebbify-fast-promo-modal__section ul {
    margin: 0;
    padding-left: 19px;
}
.rebbify-fast-promo-modal__section li + li { margin-top: 6px; }

@media (min-width: 1200px) {
    .rebbify-ride-app:not(.is-service-selection) .rebbify-booking-panel {
        width: clamp(305px, 24vw, 350px) !important;
        flex-basis: clamp(305px, 24vw, 350px) !important;
    }

    .rebbify-request-card,
    .booking-location-box {
        max-width: 350px !important;
    }
}

@media (max-width: 991px) {
    .rebbify-request-card .rebbify-request-card__title {
        font-size: 20px !important;
    }

    .rebbify-request-card .rebbify-location-control {
        min-height: 46px;
        grid-template-columns: 30px minmax(0, 1fr) auto;
    }

    .rebbify-request-card .rebbify-location-control .input-group-custom__icon,
    .rebbify-request-card .rebbify-location-control .location__icon,
    .rebbify-request-card .rebbify-location-control .input-group-custom__wrapper,
    .rebbify-request-card .rebbify-location-control .input-group-custom__input {
        height: 44px !important;
        min-height: 44px !important;
    }

    .rebbify-request-card .rebbify-location-control .input-group-custom__input {
        font-size: 16px !important;
        line-height: 44px !important;
    }
}

@media (max-width: 600px) {
    .rebbify-fast-promo-modal {
        align-items: flex-end;
        padding: 0;
    }

    .rebbify-fast-promo-modal__dialog {
        width: 100%;
        max-height: 88vh;
        padding: 22px 18px max(22px, env(safe-area-inset-bottom));
        border-radius: 20px 20px 0 0;
    }

    .rebbify-fast-promo-modal__dialog h2 {
        margin-right: 38px;
        font-size: 19px;
    }

    .rebbify-fast-promo-card__copy {
        font-size: 11px;
    }
}

/* Keep focus indication on the compact inner control only. */
.rebbify-request-card .ride-location-field:focus-within,
.rebbify-request-card .ride-location-field.is-search-open {
    box-shadow: none !important;
}


/* ========================================================================
   2026-09-05 — opções de corrida: imagem real + ETA + desconto por serviço
   ======================================================================== */
.rebbify-ride-app.is-service-selection .rebbify-service-label {
    grid-template-columns: 286px minmax(0,1fr) auto !important;
    min-height: 266px !important;
    gap: 14px !important;
    padding: 8px 12px !important;
}
.rebbify-ride-app.is-service-selection .rebbify-service-image {
    width: 286px !important;
    height: 250px !important;
    max-width: 100% !important;
    aspect-ratio: 286 / 250 !important;
}
.rebbify-ride-app.is-service-selection .rebbify-service-image img {
    width: 100% !important;
    height: 100% !important;
    max-width: 286px !important;
    max-height: 250px !important;
    object-fit: contain !important;
    object-position: center !important;
}
.rebbify-service-price {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    justify-content: center !important;
    gap: 2px !important;
}
.rebbify-service-price__current {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 5px !important;
}
.rebbify-service-discount-icon {
    width: 17px !important;
    height: 17px !important;
    color: #16a34a !important;
    flex: 0 0 17px !important;
}
.rebbify-service-price__original {
    color: var(--rb-muted, #8b8b93) !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
    text-decoration-thickness: 1.4px !important;
}
@media (max-width: 900px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        grid-template-columns: 172px minmax(0,1fr) auto !important;
        min-height: 166px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-image {
        width: 172px !important;
        height: auto !important;
        aspect-ratio: 286 / 250 !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        max-width: 172px !important;
        max-height: 150px !important;
    }
}
@media (max-width: 640px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-label,
    .rebbify-service-label {
        grid-template-columns: 118px minmax(0,1fr) auto !important;
        min-height: 116px !important;
        gap: 8px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-image,
    .rebbify-service-image {
        width: 118px !important;
        height: auto !important;
        aspect-ratio: 286 / 250 !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-image img,
    .rebbify-service-image img {
        width: 100% !important;
        height: 100% !important;
        max-width: 118px !important;
        max-height: 103px !important;
        object-fit: contain !important;
    }
}


/* 2026-09-05 — contenção final da seleção de serviços: sem sobreposição/overflow. */
.rebbify-ride-app.is-service-selection,
.rebbify-ride-app.is-service-selection .rebbify-ride-stage,
.rebbify-ride-app.is-service-selection .rebbify-booking-wrapper { max-width: 100vw !important; overflow-x: hidden !important; }
.rebbify-ride-app.is-service-selection .rebbify-booking-panel,
.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; max-width: 100% !important; }
.rebbify-ride-app.is-service-selection .rebbify-booking-actionbar { min-width: 0 !important; max-width: 100% !important; }
@media (max-width: 991px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper { width: 100% !important; max-width: 100% !important; }
    .rebbify-ride-app.is-service-selection .rebbify-booking-panel { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
    .rebbify-ride-app.is-service-selection .rebbify-booking-actionbar { grid-template-columns: 1fr !important; gap: 8px !important; }
}

/* ========================================================================
   2026-09-06 — Espere e Economize: espera ocupa toda a área do mapa
   ======================================================================== */
.rebbify-ride-app.has-wait-save-overlay .rebbify-map-panel {
    position: relative !important;
    isolation: isolate;
}

.rebbify-ride-app.has-wait-save-overlay .rebbify-wait-save-map {
    position: absolute;
    inset: 0;
    z-index: 40;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
    height: 100%;
    min-height: 500px;
    padding: clamp(44px, 6vh, 72px) clamp(28px, 3.2vw, 52px);
    overflow: auto;
    border-radius: 12px;
    background: linear-gradient(90deg, rgba(248, 248, 250, .94) 0%, rgba(248, 248, 250, .82) 42%, rgba(248, 248, 250, .25) 70%, rgba(248, 248, 250, 0) 100%);
    color: var(--rb-text, #111);
    pointer-events: none;
    transition: opacity .6s ease, visibility .6s ease;
}

.rebbify-ride-app.has-wait-save-overlay .rebbify-wait-save-map.is-finishing {
    opacity: 0;
    visibility: hidden;
}

.rebbify-wait-save-map__content {
    width: min(760px, 100%);
    max-width: 760px;
    padding: clamp(22px, 2.4vw, 34px);
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 22px;
    background: rgba(255, 255, 255, .84);
    box-shadow: 0 22px 70px rgba(31, 20, 68, .16);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

.rebbify-wait-save-map__title {
    margin: 0;
    max-width: 1050px;
    color: var(--rb-text, #050505);
    font-size: clamp(30px, 3vw, 46px);
    font-weight: 800;
    line-height: 1.14;
    letter-spacing: -0.035em;
}

.rebbify-wait-save-map__time {
    display: inline;
    color: #7C4DFF;
    white-space: nowrap;
}

.rebbify-wait-save-map__lead {
    max-width: 980px;
    margin: 14px 0 0;
    color: var(--rb-text, #111);
    font-size: clamp(16px, 1.35vw, 20px);
    font-weight: 700;
    line-height: 1.45;
    opacity: 1;
    transform: translateY(0);
    transition: opacity .18s ease, transform .18s ease;
}

[data-wait-save-message] {
    transition: opacity .18s ease, transform .18s ease;
}

.rebbify-wait-save-map__lead.is-changing,
[data-wait-save-message].is-changing {
    opacity: 0;
    transform: translateY(4px);
}

.rebbify-wait-save-map__note {
    max-width: 900px;
    margin: 26px 0 0;
    color: var(--rb-text, #4b4b4b);
    font-size: clamp(14px, 1.05vw, 17px);
    font-weight: 500;
    line-height: 1.55;
}

/* Durante a espera, os dados da viagem continuam no painel esquerdo;
   somente o aviso/contador sai do card pequeno e passa para a área principal. */
.rebbify-ride-app.has-wait-save-overlay .rideDetailDiv[data-wait-save="1"] > .ride-booking__calculation > .heading {
    display: none !important;
}

.rebbify-ride-app.has-wait-save-overlay .rideDetailDiv[data-wait-save="1"] {
    margin-top: 0 !important;
}

.rebbify-ride-app.has-wait-save-overlay .rideDetailDiv[data-wait-save="1"] .ride-booking__calculation {
    margin-top: 0 !important;
}

@media (max-width: 991px) {
    .rebbify-ride-app.has-wait-save-overlay .rebbify-wait-save-map {
        min-height: 360px;
        padding: 30px 24px;
        border-radius: 10px;
    }

    .rebbify-wait-save-map__title {
        font-size: clamp(25px, 6vw, 34px);
        line-height: 1.18;
    }

    .rebbify-wait-save-map__lead {
        margin-top: 12px;
        font-size: 16px;
    }

    .rebbify-wait-save-map__note {
        margin-top: 20px;
        font-size: 14px;
    }
}

@media (max-width: 575px) {
    .rebbify-ride-app.has-wait-save-overlay .rebbify-wait-save-map {
        min-height: 320px;
        padding: 24px 18px;
        border-radius: 8px;
    }

    .rebbify-wait-save-map__title {
        font-size: 26px;
    }
}


/* Rebbify 2026-09-06: autocomplete alinhado também na tela de solicitar corrida */
.rebbify-request-card .rebbify-location-dropdown .search-input-dropdown__item {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
.rebbify-request-card .rebbify-location-dropdown .location__icon,
.rebbify-request-card .rebbify-location-dropdown .menu-icon {
    margin: 0 !important;
    align-self: center !important;
}
.rebbify-request-card .rebbify-location-dropdown .location-result-copy {
    min-width: 0 !important;
    flex: 1 1 auto !important;
}
.rebbify-request-card .rebbify-location-dropdown .location-distance {
    flex: 0 0 auto !important;
    margin-left: auto !important;
    align-self: center !important;
}

/* ========================================================================
   2026-09-07 — conta, campos de rota, agendamento e desconto
   Escopo restrito à tela /user/ride/process-step.
   ======================================================================== */
.rebbify-profile-menu-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.rebbify-profile-menu-wrap .rebbify-profile-menu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 320;
    width: min(300px, calc(100vw - 24px));
    min-width: 260px;
    display: none;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--rb-border, #e5e7eb);
    border-radius: 16px;
    background: var(--rb-solid, #fff);
    color: var(--rb-text, #111827);
    box-shadow: 0 18px 46px rgba(17,24,39,.18);
}

.rebbify-profile-menu-wrap.is-open .rebbify-profile-menu {
    display: block;
}

.rebbify-profile-menu__header {
    display: grid;
    grid-template-columns: 44px minmax(0,1fr);
    align-items: center;
    gap: 11px;
    padding: 14px;
    border-bottom: 1px solid var(--rb-border, #eef0f3);
}

.rebbify-profile-menu__header > img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--rb-soft, #f3f4f6);
}

.rebbify-profile-menu__header span {
    min-width: 0;
}

.rebbify-profile-menu__header strong,
.rebbify-profile-menu__header small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rebbify-profile-menu__header strong {
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
}

.rebbify-profile-menu__header small {
    margin-top: 2px;
    color: var(--rb-muted, #6b7280);
    font-size: 12px;
    line-height: 1.3;
}

.rebbify-profile-menu__links {
    display: grid;
    gap: 2px;
    padding: 7px;
}

.rebbify-profile-menu__item,
.rebbify-profile-menu__logout {
    width: 100%;
    min-height: 42px;
    display: grid;
    grid-template-columns: 24px minmax(0,1fr);
    align-items: center;
    gap: 9px;
    padding: 9px 11px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--rb-text, #111827);
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
}

.rebbify-profile-menu__item i,
.rebbify-profile-menu__logout i {
    font-size: 20px;
    text-align: center;
}

.rebbify-profile-menu__item:hover,
.rebbify-profile-menu__item:focus-visible {
    background: var(--rb-brand-soft, #f5f3ff);
    color: #5b35d5;
}

.rebbify-profile-menu__logout {
    margin: 0;
    padding: 12px 18px;
    border-top: 1px solid var(--rb-border, #eef0f3);
    border-radius: 0;
    color: #b42318;
}

.rebbify-profile-menu__logout:hover,
.rebbify-profile-menu__logout:focus-visible {
    background: var(--rb-soft, #fff5f5);
    color: #9b1c12;
}

/* O label e o campo ocupam linhas próprias. Isso impede que "Ponto de partida"
   e "Local de chegada" disputem a mesma largura com o texto digitado. */
.rebbify-request-card .rebbify-location-control {
    grid-template-columns: 32px minmax(0,1fr) auto !important;
    gap: 6px !important;
    min-width: 0 !important;
    padding-inline: 8px !important;
}

.rebbify-request-card .rebbify-location-control .input-group-custom__wrapper,
.rebbify-request-card .rebbify-location-control .rebbify-location-field__input {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 44px !important;
    display: grid !important;
    grid-template-rows: auto minmax(22px,1fr) !important;
    align-content: center !important;
    align-items: center !important;
    overflow: visible !important;
    padding: 5px 0 4px !important;
}

.rebbify-request-card .rebbify-location-control .input-group-custom__wrapper > label,
.rebbify-request-card .rebbify-location-control .rebbify-location-field__input > label {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 4px 1px !important;
    color: var(--rb-muted, #6b7280) !important;
    font-size: 9.5px !important;
    line-height: 1.15 !important;
    font-weight: 750 !important;
    letter-spacing: .025em !important;
    text-transform: uppercase !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.rebbify-request-card .rebbify-location-control .input-group-custom__input {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 23px !important;
    min-height: 23px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    line-height: 23px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* Na seleção de serviços a coluna da rota não pode ser reduzida até esmagar os campos. */
@media (min-width: 1200px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        grid-template-columns: clamp(320px, 22vw, 390px) minmax(420px,1fr) !important;
    }
    .rebbify-ride-app.is-service-selection .ride_location_wrapper,
    .rebbify-ride-app.is-service-selection .rebbify-request-card,
    .rebbify-ride-app.is-service-selection .booking-location-box {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }
}

@media (max-width: 991px) {
    .rebbify-request-card .rebbify-location-control .input-group-custom__wrapper,
    .rebbify-request-card .rebbify-location-control .rebbify-location-field__input {
        min-height: 48px !important;
        padding-block: 5px !important;
    }
    .rebbify-request-card .rebbify-location-control .input-group-custom__input {
        height: 25px !important;
        min-height: 25px !important;
        font-size: 16px !important;
        line-height: 25px !important;
    }
    .rebbify-profile-menu-wrap .rebbify-profile-menu {
        position: fixed;
        top: calc(var(--ride-topbar-height) + 8px);
        right: 12px;
        width: min(300px, calc(100vw - 24px));
        min-width: 0;
    }
}

/* Agendamento: toda a linha é clicável e os controles nativos permanecem acima
   de qualquer overlay do card. */
.rebbify-schedule-picker {
    grid-template-columns: 26px minmax(62px,auto) minmax(0,1fr) !important;
    isolation: isolate;
}
.rebbify-schedule-picker input[type="date"],
.rebbify-schedule-picker input[type="time"] {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    pointer-events: auto !important;
}
.rebbify-time-summary,
.rebbify-schedule-advance,
.rebbify-schedule-back,
.rebbify-schedule-clear {
    cursor: pointer !important;
    touch-action: manipulation;
}

/* ========================================================================
   2026-09-07 — acabamento final dos campos/colunas do pedido
   ======================================================================== */
.rebbify-request-card .ride-location-field {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
}

.rebbify-request-card .rebbify-location-control {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.rebbify-request-card .rebbify-location-field__input,
.rebbify-request-card .rebbify-location-field__input input {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

@media (min-width: 1200px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        grid-template-columns: minmax(0, 2.15fr) minmax(320px, .85fr) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        grid-template-columns: clamp(340px, 24vw, 390px) minmax(0, 1fr) !important;
        gap: 0 clamp(20px, 1.6vw, 28px) !important;
    }
}

@media (max-width: 1279px) and (min-width: 1200px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        gap: 20px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        grid-template-columns: 340px minmax(0, 1fr) !important;
        gap: 0 18px !important;
    }
}

.rebbify-schedule-advance {
    min-height: 46px !important;
    width: 100% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
}


/* ========================================================================
   2026-09-10 — acabamento responsivo final: pedido / serviços / mapa
   ======================================================================== */
.rebbify-ride-app,
.rebbify-ride-stage,
.rebbify-booking-wrapper,
.rebbify-booking-panel,
.rebbify-service-flow,
.rebbify-service-results,
.rebbify-map-panel,
.ride_location_wrapper {
    min-width: 0 !important;
    max-width: 100%;
    box-sizing: border-box;
}

.rebbify-route-summary__location,
.rebbify-route-summary__location strong,
.rebbify-route-summary__location small {
    min-width: 0;
    max-width: 100%;
}

.rebbify-route-summary__location strong {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* Tablet e notebooks estreitos: rota + serviços usam toda a largura e o mapa
   desce para baixo. Assim nenhum endereço é esmagado para manter o mapa lateral. */
@media (min-width: 768px) and (max-width: 1199px) {
    .rebbify-ride-stage,
    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        height: auto !important;
        min-height: calc(100dvh - var(--ride-topbar-height, 54px));
        overflow: visible !important;
        padding: 18px clamp(16px, 3vw, 30px) 28px !important;
    }

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

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

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

    .rebbify-ride-app.is-service-selection .rebbify-service-flow {
        grid-column: 2 !important;
        grid-row: 1 !important;
        width: 100% !important;
        max-height: none !important;
        overflow: visible !important;
        padding-right: 0 !important;
    }

    .rebbify-map-panel,
    .rebbify-ride-app.is-service-selection .rebbify-map-panel {
        width: 100% !important;
        height: clamp(320px, 44vh, 440px) !important;
        min-height: 320px !important;
    }

    .booking-wrapper__right #map,
    .rebbify-map-panel #map {
        width: 100% !important;
        height: 100% !important;
        min-height: 320px !important;
    }
}

/* Celular: tudo vira uma coluna, sem largura fixa ou rolagem horizontal. */
@media (max-width: 767px) {
    html,
    body {
        max-width: 100%;
        overflow-x: clip !important;
    }

    .rebbify-ride-stage,
    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        width: 100% !important;
        height: auto !important;
        min-height: calc(100dvh - var(--ride-topbar-height, 54px));
        overflow: visible !important;
        padding: 12px 12px calc(24px + env(safe-area-inset-bottom)) !important;
    }

    .rebbify-booking-wrapper,
    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper,
    .rebbify-booking-panel,
    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        width: 100% !important;
        height: auto !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: auto !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 {
        grid-column: 1 !important;
        grid-row: auto !important;
        width: 100% !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 !important;
    }

    .rebbify-service-results,
    .serviceDiv,
    .rebbify-service-label,
    .rebbify-request-card,
    .booking-location-box {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .rebbify-service-label {
        grid-template-columns: 74px minmax(0, 1fr) auto !important;
        gap: 9px !important;
    }

    .rebbify-service-image,
    .rebbify-service-image img {
        width: 74px !important;
        max-width: 74px !important;
    }

    .rebbify-route-summary__locations {
        min-width: 0 !important;
        width: 100% !important;
    }

    .rebbify-map-panel,
    .rebbify-ride-app.is-service-selection .rebbify-map-panel {
        width: 100% !important;
        height: clamp(280px, 42vh, 380px) !important;
        min-height: 280px !important;
    }

    .booking-wrapper__right #map,
    .rebbify-map-panel #map {
        width: 100% !important;
        height: 100% !important;
        min-height: 280px !important;
    }
}

@media (max-width: 420px) {
    .rebbify-ride-stage,
    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        padding-inline: 10px !important;
    }

    .rebbify-service-label {
        grid-template-columns: 64px minmax(0, 1fr) auto !important;
        gap: 7px !important;
        padding-inline: 8px !important;
    }

    .rebbify-service-image,
    .rebbify-service-image img {
        width: 64px !important;
        max-width: 64px !important;
        height: 58px !important;
        max-height: 58px !important;
    }

    .rebbify-service-name {
        font-size: 15px !important;
    }

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


/* ========================================================================
   2026-09-15 — acabamento pontual solicitado
   - Desktop: origem/destino permanecem na coluna lateral, com largura útil.
   - Mobile: aumenta somente o espaço vertical do cabeçalho para Viagem/Envios
     não cobrirem logo, login/conta ou localização.
   ======================================================================== */
@media (min-width: 1200px) {
    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        grid-template-columns: minmax(750px, 1.65fr) minmax(340px, .85fr) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        grid-template-columns: clamp(350px, 27vw, 420px) minmax(360px, 1fr) !important;
        gap: 0 clamp(18px, 1.6vw, 28px) !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;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper .rebbify-request-card,
    .rebbify-ride-app.is-service-selection .ride_location_wrapper .booking-location-box {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
    }

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

    /* No desktop a rota já está editável na lateral; não duplica Partida/Destino
       acima dos serviços. */
    .rebbify-ride-app.is-service-selection .rebbify-route-summary,
    .rebbify-ride-app.is-service-selection .rebbify-edit-route-btn {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .rebbify-ride-app {
        --ride-topbar-height: 126px !important;
    }

    .rebbify-ride-topbar {
        height: var(--ride-topbar-height) !important;
        min-height: var(--ride-topbar-height) !important;
        padding: 10px 14px 62px !important;
        align-items: flex-start !important;
    }

    .rebbify-ride-topbar__left,
    .rebbify-ride-topbar__right {
        min-height: 48px !important;
        align-items: center !important;
    }

    .rebbify-ride-modes {
        left: 12px !important;
        right: 12px !important;
        bottom: 9px !important;
        height: 44px !important;
    }

    .rebbify-mode-tab {
        height: 38px !important;
    }

    .rebbify-ride-stage,
    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        min-height: calc(100vh - var(--ride-topbar-height)) !important;
        min-height: calc(100dvh - var(--ride-topbar-height)) !important;
    }
}

@media (max-width: 420px) {
    .rebbify-ride-app {
        --ride-topbar-height: 124px !important;
    }

    .rebbify-ride-topbar {
        padding-inline: 10px !important;
        padding-bottom: 60px !important;
    }

    .rebbify-ride-modes {
        left: 10px !important;
        right: 10px !important;
    }
}


/* 2026-09-20 — camadas e fluxo seguro de formas de pagamento */
body.rebbify-payment-modal-open .rebbify-booking-action-card,
body.rebbify-payment-modal-open .rebbify-booking-actionbar,
body.rebbify-payment-modal-open .findDriverBtn { visibility: hidden !important; pointer-events: none !important; }
.rebbify-payment-modal { z-index: 1120 !important; }
.rebbify-payment-add { width: 100% !important; border: 1px solid var(--rb-border, #e5e7eb) !important; text-align: left !important; }
.rebbify-payment-subview[hidden] { display: none !important; }
.rebbify-payment-subview { display: grid; gap: 12px; }
.rebbify-payment-subview h3 { margin: 0 0 4px; font-size: 21px; font-weight: 900; }
.rebbify-payment-subview label { display: grid; gap: 6px; font-size: 13px; font-weight: 800; }
.rebbify-payment-subview__back { width: max-content; border: 0; background: transparent; padding: 4px 0; font-weight: 800; }
.rebbify-payment-method-row { width: 100%; min-height: 58px; display:flex; align-items:center; justify-content:space-between; gap:10px; border: 1px solid var(--rb-border, #e5e7eb); border-radius:12px; background: var(--rb-solid, #fff); padding:12px; font-weight:800; }
.rebbify-card-form-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.rebbify-service-description { display:block !important; max-width:100% !important; white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; }
@media (max-width: 520px) { .rebbify-card-form-row { grid-template-columns:1fr 1fr; } }


/* ========================================================================
   2026-09-20 — resumo da corrida em espera (process-step)
   Evita que origem/destino/categoria/pagamento/valor/distância/tempo sejam
   comprimidos em uma única linha na coluna lateral.
   ======================================================================== */
.rebbify-ride-app.has-wait-save-overlay
.rideDetailDiv[data-wait-save="1"]
.ride-booking__calculation-container {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 0 !important;
    margin: 14px 0 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 1px solid var(--rb-border, #ececf2) !important;
    border-radius: 12px !important;
    background: var(--rb-soft, #f8f8fb) !important;
}

.rebbify-ride-app.has-wait-save-overlay
.rideDetailDiv[data-wait-save="1"]
.ride-booking__calculation-item {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    text-align: left !important;
    padding: 12px 14px !important;
    border-bottom: 1px solid var(--rb-border, #ececf2) !important;
    box-sizing: border-box !important;
}

.rebbify-ride-app.has-wait-save-overlay
.rideDetailDiv[data-wait-save="1"]
.ride-booking__calculation-item:nth-last-child(-n + 2) {
    border-bottom-color: transparent !important;
}

.rebbify-ride-app.has-wait-save-overlay
.rideDetailDiv[data-wait-save="1"]
.ride-booking__calculation-item--location {
    grid-column: 1 / -1 !important;
    border-bottom: 1px solid var(--rb-border, #ececf2) !important;
}

.rebbify-ride-app.has-wait-save-overlay
.rideDetailDiv[data-wait-save="1"]
.ride-booking__calculation-item::after {
    display: none !important;
    content: none !important;
}

.rebbify-ride-app.has-wait-save-overlay
.rideDetailDiv[data-wait-save="1"]
.ride-booking__value,
.rebbify-ride-app.has-wait-save-overlay
.rideDetailDiv[data-wait-save="1"]
.ride-booking__label {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    text-align: left !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
}

.rebbify-ride-app.has-wait-save-overlay
.rideDetailDiv[data-wait-save="1"]
.ride-booking__value {
    margin: 0 0 4px !important;
    color: #5f3df5 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    white-space: normal !important;
}

.rebbify-ride-app.has-wait-save-overlay
.rideDetailDiv[data-wait-save="1"]
.ride-booking__label {
    margin: 0 !important;
    color: var(--rb-muted, #6b7280) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    white-space: normal !important;
}

@media (max-width: 575px) {
    .rebbify-ride-app.has-wait-save-overlay
    .rideDetailDiv[data-wait-save="1"]
    .ride-booking__calculation-container {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .rebbify-ride-app.has-wait-save-overlay
    .rideDetailDiv[data-wait-save="1"]
    .ride-booking__calculation-item {
        grid-column: 1 !important;
        border-bottom: 1px solid var(--rb-border, #ececf2) !important;
    }

    .rebbify-ride-app.has-wait-save-overlay
    .rideDetailDiv[data-wait-save="1"]
    .ride-booking__calculation-item:last-child {
        border-bottom: 0 !important;
    }
}


/* ========================================================================
   2026-09-20 — checkout antes da corrida (Asaas / Rebbify Bank)
   O seletor de forma de pagamento é compacto. Pix e cartão abrem telas
   próprias e responsivas, sem formulários aninhados em bottom sheet/modal.
   ======================================================================== */
.rebbify-payment-option__copy {
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}
.rebbify-payment-option__copy strong,
.rebbify-payment-option__copy small {
    max-width: 100% !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}
.rebbify-payment-modal__dialog {
    width: min(520px, calc(100vw - 32px)) !important;
    max-width: 520px !important;
    max-height: min(760px, calc(100dvh - 32px)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
}
.rebbify-payment-options {
    min-width: 0 !important;
}
.rebbify-payment-option {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

body.rebbify-checkout-open {
    overflow: hidden !important;
}
.rebbify-checkout-screen[hidden] {
    display: none !important;
}
.rebbify-checkout-screen {
    position: fixed !important;
    inset: 0 !important;
    z-index: 1140 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
    background: rgba(17, 24, 39, .48) !important;
    backdrop-filter: blur(2px);
    box-sizing: border-box !important;
}
.rebbify-checkout-screen__panel {
    width: min(620px, 100%) !important;
    max-height: calc(100dvh - 48px) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    border-radius: 20px !important;
    background: var(--rb-solid, #fff) !important;
    color: var(--rb-text, #111827) !important;
    box-shadow: 0 28px 90px rgba(0, 0, 0, .28) !important;
}
.rebbify-checkout-screen__header {
    flex: 0 0 auto !important;
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 12px !important;
    padding: 22px 24px 16px !important;
    border-bottom: 1px solid var(--rb-border, #ececf2) !important;
}
.rebbify-checkout-screen__header h2 {
    margin: 0 !important;
    font-size: clamp(21px, 4vw, 28px) !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
}
.rebbify-checkout-screen__header p {
    margin: 6px 0 0 !important;
    color: var(--rb-muted, #6b7280) !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
}
.rebbify-checkout-screen__back {
    width: 40px !important;
    height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: var(--rb-text, #111827) !important;
    font-size: 24px !important;
}
.rebbify-checkout-screen__back:hover,
.rebbify-checkout-screen__back:focus-visible {
    background: var(--rb-soft, #f3f4f6) !important;
}
.rebbify-checkout-screen__body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 20px 24px 24px !important;
    box-sizing: border-box !important;
}
.rebbify-checkout-amount {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    margin-bottom: 20px !important;
    padding: 15px 16px !important;
    border-radius: 14px !important;
    background: var(--rb-brand-soft, #f7f5ff) !important;
}
.rebbify-checkout-amount span {
    color: var(--rb-muted, #6b7280) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}
.rebbify-checkout-amount strong {
    white-space: nowrap !important;
    color: #6d28d9 !important;
    font-size: 20px !important;
    font-weight: 900 !important;
}
.rebbify-checkout-identification {
    display: grid !important;
    gap: 10px !important;
}
.rebbify-checkout-identification[hidden],
.rebbify-pix-payment[hidden],
.rebbify-payment-status[hidden],
.rebbify-checkout-loader[hidden] {
    display: none !important;
}
.rebbify-checkout-identification label,
.rebbify-pix-payment > label,
.rebbify-field > span {
    color: var(--rb-text, #111827) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}
.rebbify-checkout-identification small,
.rebbify-checkout-help {
    color: var(--rb-muted, #6b7280) !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
}
.rebbify-pix-payment {
    display: grid !important;
    gap: 14px !important;
}
.rebbify-pix-qr {
    width: min(300px, 76vw) !important;
    aspect-ratio: 1 !important;
    margin: 0 auto 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    border: 1px solid var(--rb-border, #e5e7eb) !important;
    border-radius: 18px !important;
    background: var(--rb-solid, #fff) !important;
}
.rebbify-pix-qr img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: 10px !important;
    box-sizing: border-box !important;
}
.rebbify-checkout-loader {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    padding: 20px !important;
    text-align: center !important;
}
.rebbify-pix-copy-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 10px !important;
    align-items: stretch !important;
}
.rebbify-pix-copy-row textarea {
    min-width: 0 !important;
    min-height: 76px !important;
    resize: none !important;
    overflow-wrap: anywhere !important;
    font-size: 12px !important;
}
.rebbify-pix-copy-row .btn {
    min-width: 96px !important;
}
.rebbify-payment-status {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    padding: 12px 14px !important;
    border-radius: 12px !important;
    box-sizing: border-box !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}
.rebbify-payment-status.is-pending {
    background: var(--rb-soft, #fff7ed) !important;
    color: #9a3412 !important;
}
.rebbify-payment-status.is-success {
    background: var(--rb-soft, #ecfdf5) !important;
    color: #047857 !important;
}
.rebbify-payment-status.is-error {
    background: var(--rb-soft, #fef2f2) !important;
    color: #b91c1c !important;
}
.rebbify-card-checkout-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
}
.rebbify-field {
    min-width: 0 !important;
    display: grid !important;
    gap: 7px !important;
}
.rebbify-field--full {
    grid-column: 1 / -1 !important;
}
.rebbify-field .form--control,
.rebbify-checkout-identification .form--control {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
.rebbify-card-pay-button {
    min-height: 52px !important;
    margin-top: 18px !important;
    border-radius: 12px !important;
    font-weight: 900 !important;
}
#rebbifyCardStatus {
    margin-top: 16px !important;
}

@media (max-width: 640px) {
    .rebbify-payment-modal {
        align-items: flex-end !important;
    }
    .rebbify-payment-modal__dialog {
        width: 100% !important;
        max-width: none !important;
        max-height: min(86dvh, 760px) !important;
        margin: 0 !important;
        border-radius: 20px 20px 0 0 !important;
        padding-bottom: max(16px, env(safe-area-inset-bottom)) !important;
    }
    .rebbify-payment-option {
        grid-template-columns: 40px minmax(0, 1fr) 22px !important;
        gap: 10px !important;
        min-height: 64px !important;
        padding: 10px 12px !important;
    }
    .rebbify-payment-option strong {
        font-size: 14px !important;
        line-height: 1.25 !important;
    }
    .rebbify-payment-option small {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    .rebbify-checkout-screen {
        padding: 0 !important;
        align-items: stretch !important;
        background: var(--rb-solid, #fff) !important;
    }
    .rebbify-checkout-screen__panel {
        width: 100% !important;
        height: 100dvh !important;
        max-height: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    .rebbify-checkout-screen__header {
        padding: max(14px, env(safe-area-inset-top)) 16px 14px !important;
        grid-template-columns: 40px minmax(0, 1fr) !important;
        gap: 8px !important;
    }
    .rebbify-checkout-screen__body {
        padding: 16px 16px max(24px, env(safe-area-inset-bottom)) !important;
    }
    .rebbify-card-checkout-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
    }
    .rebbify-field--full {
        grid-column: 1 !important;
    }
    .rebbify-pix-copy-row {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    .rebbify-pix-copy-row .btn {
        width: 100% !important;
        min-height: 48px !important;
    }
    .rebbify-checkout-amount {
        margin-bottom: 16px !important;
    }
}

/* ========================================================================
   2026-09-20 — Redesign completo das formas de pagamento (referência enviada)
   ======================================================================== */
.rebbify-payment-modal {
    z-index: 1120 !important;
    padding: 24px !important;
}
.rebbify-payment-sheet {
    position: relative !important;
    width: min(100%, 400px) !important;
    max-width: 400px !important;
    max-height: min(92vh, 780px) !important;
    padding: 16px 18px 18px !important;
    border-radius: 18px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-width: thin !important;
}
.rebbify-payment-sheet__view[hidden] { display: none !important; }
.rebbify-payment-sheet__topbar,
.rebbify-payment-sheet__subtopbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
}
.rebbify-payment-sheet__topbar { padding-right: 48px !important; }
.rebbify-payment-sheet__topbar h2,
.rebbify-payment-sheet__subtopbar h3 {
    margin: 0 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--rb-text, #111) !important;
}
.rebbify-payment-sheet__action {
    min-height: 32px !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--rb-soft, #f3f3f3) !important;
    color: var(--rb-text, #111) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}
.rebbify-payment-sheet__close,
.rebbify-payment-sheet__back {
    width: 32px !important;
    height: 32px !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--rb-text, #111) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    box-shadow: none !important;
}
.rebbify-payment-sheet__close {
    position: absolute !important;
    top: 52px !important;
    left: 14px !important;
}
.rebbify-payment-sheet__close i,
.rebbify-payment-sheet__back i {
    font-size: 24px !important;
    line-height: 1 !important;
}
.rebbify-payment-sheet__section {
    margin-top: 18px !important;
    margin-bottom: 10px !important;
    padding-left: 0 !important;
}
.rebbify-payment-sheet__section h3,
.rebbify-payment-cardform h2 {
    margin: 0 !important;
    color: var(--rb-text, #000) !important;
    font-size: 26px !important;
    font-weight: 800 !important;
    line-height: 1.08 !important;
}
.rebbify-payment-method-card,
.rebbify-payment-method-row {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) 22px !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    min-height: 58px !important;
    margin: 0 !important;
    padding: 10px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--rb-border, #ececec) !important;
    border-radius: 0 !important;
    background: transparent !important;
    cursor: pointer !important;
}
.rebbify-payment-method-card input,
.rebbify-payment-method-row input {
    position: absolute !important;
    opacity: 0 !important;
    inset: 0 !important;
    pointer-events: none !important;
}
.rebbify-payment-method-card__media,
.rebbify-payment-method-row__icon,
.rebbify-payment-method-row__brand {
    width: 32px !important;
    height: 32px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 8px !important;
    background: transparent !important;
    overflow: hidden !important;
}
.rebbify-payment-method-card__media img,
.rebbify-payment-method-row__brand img {
    width: 32px !important;
    height: 32px !important;
    object-fit: contain !important;
}
.rebbify-payment-method-row__icon--cash {
    background: #99c14b !important;
    color: #fff !important;
}
.rebbify-payment-method-row__icon--pix {
    background: var(--rb-soft, #d9f4ee) !important;
    color: #08a788 !important;
}
.rebbify-payment-method-row__icon i { font-size: 18px !important; }
.rebbify-payment-method-card__copy,
.rebbify-payment-method-row__copy {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
}
.rebbify-payment-method-card__copy strong,
.rebbify-payment-method-row__copy strong {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: var(--rb-text, #111) !important;
}
.rebbify-payment-method-card__copy small,
.rebbify-payment-method-row__copy small {
    margin-top: 2px !important;
    font-size: 14px !important;
    color: var(--rb-text, #111) !important;
    opacity: .88 !important;
}
.rebbify-payment-method-card__check,
.rebbify-payment-method-row__check {
    width: 18px !important;
    height: 18px !important;
    border: 2px solid var(--rb-border, #111) !important;
    border-radius: 999px !important;
    background: var(--rb-solid, #fff) !important;
    transition: all .18s ease !important;
}
.rebbify-payment-method-card:has(input:checked) .rebbify-payment-method-card__check,
.rebbify-payment-method-row:has(input:checked) .rebbify-payment-method-row__check {
    border-width: 6px !important;
}
.rebbify-payment-method-card.is-disabled,
.rebbify-payment-method-row.is-disabled {
    opacity: .4 !important;
    cursor: not-allowed !important;
}
.rebbify-payment-sheet__list { margin-top: 2px !important; }
.rebbify-payment-inline-alert {
    margin: 12px 0 0 !important;
    padding: 12px 14px !important;
    border-radius: 12px !important;
    background: var(--rb-soft, #fff7e8) !important;
    color: #8a6116 !important;
    font-size: 13px !important;
}
.rebbify-payment-save {
    min-height: 40px !important;
    margin-top: 18px !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    background: #7C4DFF !important;
    border-color: #7C4DFF !important;
}
.rebbify-payment-add-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 12px !important;
    margin-top: 18px !important;
}
.rebbify-payment-add-tile {
    min-height: 92px !important;
    padding: 14px 10px !important;
    border: 1px solid var(--rb-border, #ececec) !important;
    border-radius: 12px !important;
    background: var(--rb-soft, #f6f6f6) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 10px !important;
    color: var(--rb-text, #111) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
}
.rebbify-payment-add-tile__icon img {
    width: 56px !important;
    height: 32px !important;
    object-fit: contain !important;
}
.rebbify-payment-cardform { margin-top: 18px !important; }
.rebbify-payment-cardform__grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 16px 12px !important;
    margin-top: 28px !important;
}
.rebbify-payment-cardform__field { display: flex !important; flex-direction: column !important; gap: 8px !important; min-width: 0 !important; }
.rebbify-payment-cardform__field--full { grid-column: 1 / -1 !important; }
.rebbify-payment-cardform__field > span {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--rb-text, #111) !important;
}
.rebbify-payment-cardform__field .form--control {
    min-height: 30px !important;
    padding: 10px 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--rb-soft, #f2f2f2) !important;
    box-shadow: none !important;
    font-size: 15px !important;
}
.rebbify-card-input-wrap {
    position: relative !important;
    display: block !important;
}
.rebbify-card-input-wrap .form--control {
    padding-right: 48px !important;
}
.rebbify-card-input-wrap img {
    position: absolute !important;
    right: 12px !important;
    top: 50% !important;
    width: 28px !important;
    height: 20px !important;
    transform: translateY(-50%) !important;
    object-fit: contain !important;
}
.rebbify-payment-sheet__cancel-link {
    display: block !important;
    width: 100% !important;
    margin-top: 18px !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--rb-text, #111) !important;
    font-size: 16px !important;
    font-weight: 500 !important;
}
@media (max-width: 640px) {
    .rebbify-payment-modal {
        align-items: stretch !important;
        padding: 0 !important;
    }
    .rebbify-payment-sheet {
        width: 100% !important;
        max-width: none !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
        padding: max(16px, env(safe-area-inset-top)) 16px max(18px, env(safe-area-inset-bottom)) !important;
    }
    .rebbify-payment-sheet__close {
        top: max(48px, calc(env(safe-area-inset-top) + 32px)) !important;
        left: 10px !important;
    }
    .rebbify-payment-sheet__section h3,
    .rebbify-payment-cardform h2 {
        font-size: 22px !important;
    }
    .rebbify-payment-cardform__grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
    .rebbify-payment-add-grid {
        grid-template-columns: 1fr !important;
    }
}

/* 2026-09-20 — ações de pagamento Rebbify em roxo */
.rebbify-payment-save,
.rebbify-payment-cardform .btn--base,
.rebbify-card-pay-button,
#rebbifyGeneratePix,
#rebbifyCopyPix {
    background: #7C4DFF !important;
    border-color: #7C4DFF !important;
    color: #fff !important;
}
.rebbify-payment-save:hover,
.rebbify-payment-cardform .btn--base:hover,
.rebbify-card-pay-button:hover,
#rebbifyGeneratePix:hover,
#rebbifyCopyPix:hover {
    background: #6D3EF0 !important;
    border-color: #6D3EF0 !important;
}


.rebbify-payment-method-row__icon img {
    width: 32px !important;
    height: 32px !important;
    object-fit: contain !important;
}
.rebbify-payment-method-row__icon--cash,
.rebbify-payment-method-row__icon--pix {
    background: transparent !important;
}

/* ========================================================================
   2026-09-20 — Agendamento em modal independente (corrige sobreposição)
   ======================================================================== */
body.rebbify-schedule-modal-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
}

.rebbify-schedule-modal-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 1000 !important;
    display: none !important;
    background: rgba(17, 17, 17, .52) !important;
    backdrop-filter: blur(1.5px);
    -webkit-backdrop-filter: blur(1.5px);
}

.rebbify-schedule-modal-backdrop.is-open {
    display: block !important;
}

/* Quando aberto, o editor sai do card de localização e vira uma camada própria. */
#rideScheduleEditor.rebbify-schedule-editor.is-modal-open {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 1140 !important;
    display: block !important;
    width: min(440px, calc(100vw - 32px)) !important;
    max-width: 440px !important;
    max-height: min(760px, calc(100dvh - 32px)) !important;
    margin: 0 !important;
    padding: 20px 22px 22px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: translate(-50%, -50%) !important;
    border: 0 !important;
    border-radius: 20px !important;
    background: var(--rb-solid, #fff) !important;
    color: var(--rb-text, #111) !important;
    box-shadow: 0 26px 90px rgba(0, 0, 0, .30) !important;
    box-sizing: border-box !important;
    isolation: isolate !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
}

#rideScheduleEditor.is-modal-open .rebbify-schedule-editor__topbar {
    position: sticky !important;
    top: -20px !important;
    z-index: 4 !important;
    margin: -20px -22px 12px !important;
    padding: 16px 22px 10px !important;
    background: var(--rb-solid, #fff) !important;
}

#rideScheduleEditor.is-modal-open .rebbify-schedule-back {
    background: transparent !important;
    border-radius: 999px !important;
}

#rideScheduleEditor.is-modal-open .rebbify-schedule-editor__title {
    margin: 0 0 20px !important;
    font-size: 28px !important;
    line-height: 1.08 !important;
    font-weight: 900 !important;
    letter-spacing: -.55px !important;
}

#rideScheduleEditor.is-modal-open .ride-schedule-fields {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin: 0 !important;
}

#rideScheduleEditor.is-modal-open .rebbify-schedule-picker {
    min-height: 58px !important;
    padding: 7px 14px !important;
    border: 1px solid var(--rb-border, #ececf1) !important;
    border-radius: 12px !important;
    background: var(--rb-soft, #f7f7f8) !important;
    grid-template-columns: 28px 76px minmax(0,1fr) !important;
    gap: 10px !important;
}

#rideScheduleEditor.is-modal-open .rebbify-schedule-picker input[type="date"],
#rideScheduleEditor.is-modal-open .rebbify-schedule-picker input[type="time"] {
    height: 44px !important;
    min-height: 44px !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 44px !important;
}

#rideScheduleEditor.is-modal-open .rebbify-reserve-info {
    margin-top: 18px !important;
}

#rideScheduleEditor.is-modal-open .rebbify-reserve-info__item {
    padding: 14px 4px !important;
    grid-template-columns: 40px minmax(0,1fr) !important;
    gap: 10px !important;
    align-items: center !important;
}

#rideScheduleEditor.is-modal-open .rebbify-reserve-info__icon {
    width: 40px !important;
    height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 12px !important;
    background: var(--rb-brand-soft, #f3e9ff) !important;
    color: var(--rb-text, #111) !important;
}

#rideScheduleEditor.is-modal-open .rebbify-reserve-terms-link {
    margin-top: 14px !important;
}

#rideScheduleEditor.is-modal-open .rebbify-schedule-advance {
    position: sticky !important;
    bottom: -22px !important;
    z-index: 4 !important;
    min-height: 50px !important;
    margin-top: 18px !important;
    margin-bottom: -22px !important;
    padding-bottom: max(0px, env(safe-area-inset-bottom)) !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #7C4DFF !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    box-shadow: 0 -12px 18px #fff !important;
}

/* O resumo continua no card original, mas nunca pode atravessar o modal. */
body.rebbify-schedule-modal-open #rideRequestTime,
body.rebbify-schedule-modal-open .rebbify-location-field,
body.rebbify-schedule-modal-open .rebbify-booking-actionbar,
body.rebbify-schedule-modal-open .findDriverBtn {
    pointer-events: none !important;
}

@media (max-width: 640px) {
    .rebbify-schedule-modal-backdrop.is-open {
        background: var(--rb-solid, #fff) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    #rideScheduleEditor.rebbify-schedule-editor.is-modal-open {
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        max-width: none !important;
        height: 100dvh !important;
        max-height: none !important;
        padding: max(14px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom)) !important;
        transform: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    #rideScheduleEditor.is-modal-open .rebbify-schedule-editor__topbar {
        top: -14px !important;
        margin: -14px -18px 14px !important;
        padding: max(14px, env(safe-area-inset-top)) 18px 8px !important;
    }

    #rideScheduleEditor.is-modal-open .rebbify-schedule-editor__title {
        font-size: 30px !important;
        margin-bottom: 22px !important;
    }

    #rideScheduleEditor.is-modal-open .rebbify-schedule-picker {
        min-height: 64px !important;
        grid-template-columns: 28px 72px minmax(0, 1fr) !important;
        padding: 8px 14px !important;
    }

    #rideScheduleEditor.is-modal-open .rebbify-schedule-advance {
        bottom: -18px !important;
        margin-left: -2px !important;
        margin-right: -2px !important;
        margin-bottom: -18px !important;
        min-height: 56px !important;
    }
}


/* ========================================================================
   2026-09-20 — hotfix mobile: preço da categoria sempre na horizontal
   ======================================================================== */
@media (max-width: 767px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-label,
    .rebbify-service-label {
        grid-template-columns: 74px minmax(0, 1fr) 92px !important;
        align-items: center !important;
        column-gap: 8px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image,
    .rebbify-service-image,
    .rebbify-ride-app.is-service-selection .rebbify-service-image img,
    .rebbify-service-image img {
        width: 74px !important;
        min-width: 74px !important;
        max-width: 74px !important;
        height: 56px !important;
        max-height: 56px !important;
    }

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

    .rebbify-ride-app.is-service-selection .rebbify-service-name-row,
    .rebbify-service-name-row {
        flex-wrap: nowrap !important;
        min-width: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-name,
    .rebbify-service-name {
        min-width: 0 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-meta,
    .rebbify-ride-app.is-service-selection .rebbify-service-description,
    .rebbify-service-meta,
    .rebbify-service-description {
        display: block !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price,
    .rebbify-service-price {
        grid-column: 3 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        width: 92px !important;
        min-width: 92px !important;
        margin-left: auto !important;
        text-align: right !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price strong,
    .rebbify-service-price strong {
        font-size: 15px !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 420px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-label,
    .rebbify-service-label {
        grid-template-columns: 64px minmax(0, 1fr) 88px !important;
        padding: 7px 8px !important;
    }

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

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

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

/* 2026-09-21 — espaçamento entre o último campo e o botão Adicionar cartão */
#rideAddCardSaveBtn {
    margin-top: 22px !important;
}
@media (max-width: 640px) {
    #rideAddCardSaveBtn {
        margin-top: 24px !important;
    }
}

/* ========================================================================
   2026-09-21 — responsividade final: pagamento, cartão, agendamento e cards
   ======================================================================== */

/* --- Pagamentos: estrutura limpa no mobile --- */
.rebbify-payment-sheet {
    box-sizing: border-box !important;
}
.rebbify-payment-sheet__topbar {
    padding-right: 0 !important;
}
.rebbify-payment-sheet__close {
    position: static !important;
    top: auto !important;
    left: auto !important;
    margin: 10px 0 2px !important;
}
.rebbify-payment-sheet__section {
    margin-top: 0 !important;
    clear: both !important;
}
.rebbify-payment-cardform {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
.rebbify-payment-cardform__grid,
.rebbify-payment-cardform__field,
.rebbify-card-input-wrap,
.rebbify-payment-cardform__field .form--control {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
#rideAddCardSaveBtn {
    margin-top: 26px !important;
}
.rebbify-payment-sheet__cancel-link {
    margin-top: 20px !important;
    margin-bottom: 4px !important;
}

@media (max-width: 640px) {
    .rebbify-payment-modal {
        inset: 0 !important;
        width: 100vw !important;
        height: 100dvh !important;
        padding: 0 !important;
        align-items: stretch !important;
        justify-content: stretch !important;
        background: var(--rb-solid, #fff) !important;
    }
    .rebbify-payment-modal__backdrop {
        display: none !important;
    }
    .rebbify-payment-sheet {
        width: 100vw !important;
        max-width: none !important;
        min-height: 100dvh !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        margin: 0 !important;
        padding: max(18px, env(safe-area-inset-top)) 18px max(22px, env(safe-area-inset-bottom)) !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
    }
    .rebbify-payment-sheet__topbar,
    .rebbify-payment-sheet__subtopbar {
        min-height: 44px !important;
        gap: 10px !important;
    }
    .rebbify-payment-sheet__topbar h2,
    .rebbify-payment-sheet__subtopbar h3 {
        font-size: 18px !important;
        line-height: 1.2 !important;
    }
    .rebbify-payment-sheet__action {
        flex: 0 0 auto !important;
        min-height: 38px !important;
        padding: 0 16px !important;
        font-size: 15px !important;
    }
    .rebbify-payment-sheet__close {
        width: 36px !important;
        height: 36px !important;
        margin: 8px 0 2px !important;
    }
    .rebbify-payment-sheet__section h3,
    .rebbify-payment-cardform h2 {
        font-size: clamp(26px, 7.2vw, 34px) !important;
        line-height: 1.05 !important;
        letter-spacing: -.45px !important;
    }
    .rebbify-payment-method-card,
    .rebbify-payment-method-row {
        grid-template-columns: 42px minmax(0, 1fr) 24px !important;
        gap: 12px !important;
        min-height: 66px !important;
        padding: 12px 0 !important;
    }
    .rebbify-payment-method-card__media,
    .rebbify-payment-method-row__icon,
    .rebbify-payment-method-row__brand,
    .rebbify-payment-method-card__media img,
    .rebbify-payment-method-row__icon img,
    .rebbify-payment-method-row__brand img {
        width: 38px !important;
        height: 38px !important;
        border-radius: 10px !important;
    }
    .rebbify-payment-method-card__copy strong,
    .rebbify-payment-method-row__copy strong {
        font-size: 17px !important;
        line-height: 1.2 !important;
    }
    .rebbify-payment-method-card__copy small,
    .rebbify-payment-method-row__copy small {
        font-size: 14px !important;
        line-height: 1.3 !important;
    }
    .rebbify-payment-save {
        min-height: 52px !important;
        margin-top: 20px !important;
        border-radius: 12px !important;
        background: #7C4DFF !important;
        border-color: #7C4DFF !important;
        color: #fff !important;
        font-size: 17px !important;
    }
    .rebbify-payment-cardform {
        margin-top: 20px !important;
    }
    .rebbify-payment-cardform__grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
        margin-top: 30px !important;
    }
    .rebbify-payment-cardform__field {
        gap: 8px !important;
    }
    .rebbify-payment-cardform__field > span {
        font-size: 16px !important;
        line-height: 1.2 !important;
    }
    .rebbify-payment-cardform__field .form--control {
        min-height: 52px !important;
        padding: 12px 14px !important;
        font-size: 17px !important;
        line-height: 1.25 !important;
    }
    .rebbify-card-input-wrap .form--control {
        padding-right: 58px !important;
    }
    .rebbify-card-input-wrap img {
        right: 14px !important;
        width: 38px !important;
        height: 30px !important;
    }
    #rideAddCardSaveBtn {
        min-height: 52px !important;
        margin-top: 28px !important;
        border-radius: 12px !important;
        background: #7C4DFF !important;
        border-color: #7C4DFF !important;
        color: #fff !important;
        font-size: 17px !important;
    }
    .rebbify-payment-sheet__cancel-link {
        margin-top: 22px !important;
        padding: 8px 0 !important;
        font-size: 17px !important;
    }
}

/* --- Agendamento: nada da tela principal pode atravessar a camada modal --- */
.rebbify-schedule-modal-backdrop {
    z-index: 1000 !important;
}
#rideScheduleEditor.rebbify-schedule-editor.is-modal-open {
    z-index: 1010 !important;
}
body.rebbify-schedule-modal-open #rebbifyRideApp {
    visibility: hidden !important;
    pointer-events: none !important;
}
body.rebbify-schedule-modal-open #rideScheduleEditor {
    visibility: visible !important;
    pointer-events: auto !important;
}

@media (max-width: 640px) {
    .rebbify-schedule-modal-backdrop.is-open {
        display: block !important;
        position: fixed !important;
        inset: 0 !important;
        width: 100vw !important;
        height: 100dvh !important;
        background: var(--rb-solid, #fff) !important;
    }
    #rideScheduleEditor.rebbify-schedule-editor.is-modal-open {
        position: fixed !important;
        inset: 0 !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        height: 100dvh !important;
        max-width: none !important;
        max-height: none !important;
        padding: max(16px, env(safe-area-inset-top)) 18px max(22px, env(safe-area-inset-bottom)) !important;
        transform: none !important;
        border-radius: 0 !important;
        background: var(--rb-solid, #fff) !important;
        box-shadow: none !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }
    #rideScheduleEditor.is-modal-open .rebbify-schedule-editor__topbar {
        position: sticky !important;
        top: -16px !important;
        margin: -16px -18px 12px !important;
        padding: max(16px, env(safe-area-inset-top)) 18px 10px !important;
        background: var(--rb-solid, #fff) !important;
        z-index: 5 !important;
    }
    #rideScheduleEditor.is-modal-open .rebbify-schedule-editor__title {
        margin: 8px 0 22px !important;
        font-size: clamp(28px, 8vw, 36px) !important;
        line-height: 1.05 !important;
    }
    #rideScheduleEditor.is-modal-open .ride-schedule-fields {
        gap: 14px !important;
    }
    #rideScheduleEditor.is-modal-open .rebbify-schedule-picker {
        width: 100% !important;
        min-height: 68px !important;
        grid-template-columns: 28px minmax(72px, auto) minmax(0, 1fr) !important;
        gap: 10px !important;
        box-sizing: border-box !important;
    }
    #rideScheduleEditor.is-modal-open .rebbify-reserve-info__item {
        grid-template-columns: 46px minmax(0, 1fr) !important;
        gap: 12px !important;
        padding: 15px 0 !important;
    }
    #rideScheduleEditor.is-modal-open .rebbify-reserve-info__item > span:last-child {
        font-size: 15px !important;
        line-height: 1.35 !important;
    }
    #rideScheduleEditor.is-modal-open .rebbify-schedule-advance {
        width: 100% !important;
        min-height: 54px !important;
        margin: 22px 0 0 !important;
        position: static !important;
        border-radius: 12px !important;
        box-shadow: none !important;
    }
}

/* --- Card de serviço: preço sempre na mesma faixa horizontal --- */
@media (max-width: 767px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-label,
    .rebbify-service-label {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 9px !important;
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-image,
    .rebbify-service-image {
        flex: 0 0 70px !important;
        width: 70px !important;
        min-width: 70px !important;
        max-width: 70px !important;
        height: 58px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-image img,
    .rebbify-service-image img {
        width: 70px !important;
        max-width: 70px !important;
        height: 58px !important;
        max-height: 58px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-copy,
    .rebbify-service-copy {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        width: auto !important;
        overflow: hidden !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-name-row,
    .rebbify-service-name-row {
        flex-wrap: nowrap !important;
        min-width: 0 !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-name,
    .rebbify-service-name,
    .rebbify-ride-app.is-service-selection .rebbify-service-meta,
    .rebbify-ride-app.is-service-selection .rebbify-service-description,
    .rebbify-service-meta,
    .rebbify-service-description {
        max-width: 100% !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-price,
    .rebbify-service-price {
        flex: 0 0 94px !important;
        width: 94px !important;
        min-width: 94px !important;
        max-width: 94px !important;
        align-self: center !important;
        justify-content: center !important;
        align-items: flex-end !important;
        margin: 0 !important;
        text-align: right !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-price strong,
    .rebbify-service-price strong {
        white-space: nowrap !important;
        font-size: 14px !important;
    }
}

@media (max-width: 390px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-image,
    .rebbify-service-image,
    .rebbify-ride-app.is-service-selection .rebbify-service-image img,
    .rebbify-service-image img {
        flex-basis: 60px !important;
        width: 60px !important;
        min-width: 60px !important;
        max-width: 60px !important;
        height: 52px !important;
        max-height: 52px !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-price,
    .rebbify-service-price {
        flex-basis: 86px !important;
        width: 86px !important;
        min-width: 86px !important;
        max-width: 86px !important;
    }
}

/* iPhone/Safari: reserva espaço para a barra inferior do navegador nos checkouts. */
@media (max-width: 640px) {
    .rebbify-checkout-screen__body {
        padding-bottom: max(88px, calc(env(safe-area-inset-bottom) + 64px)) !important;
    }
    .rebbify-card-pay-button,
    #rebbifyGeneratePix,
    #rebbifyCopyPix {
        background: #7C4DFF !important;
        border-color: #7C4DFF !important;
        color: #fff !important;
    }
}

/* 2026-09-21 — cupom funcional dentro de Formas de pagamento */
.rebbify-payment-coupon {
    margin-top: 20px !important;
    padding-top: 16px !important;
    border-top: 1px solid var(--rb-border, #ececec) !important;
}
.rebbify-payment-coupon__heading {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin-bottom: 10px !important;
}
.rebbify-payment-coupon__heading h4 {
    margin: 0 !important;
    color: var(--rb-text, #111) !important;
    font-size: 16px !important;
    font-weight: 800 !important;
}
.rebbify-payment-coupon__heading p {
    margin: 3px 0 0 !important;
    color: var(--rb-muted, #6b7280) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}
.rebbify-payment-coupon__remove {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #7c4dff !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}
.rebbify-payment-coupon__row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px !important;
    align-items: stretch !important;
}
.rebbify-payment-coupon__row .form--control {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    border: 1px solid var(--rb-border, #dedee5) !important;
    border-radius: 9px !important;
    background: var(--rb-soft, #f7f7f8) !important;
    box-shadow: none !important;
    text-transform: none !important;
    font-size: 14px !important;
}
.rebbify-payment-coupon__row .form--control:focus {
    border-color: #7c4dff !important;
    box-shadow: 0 0 0 2px rgba(124, 77, 255, .12) !important;
}
.rebbify-payment-coupon__apply {
    min-width: 86px !important;
    min-height: 44px !important;
    padding: 0 15px !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: #7c4dff !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
}
.rebbify-payment-coupon__apply:disabled {
    opacity: .62 !important;
    cursor: wait !important;
}
.ride-coupon-feedback {
    margin-top: 9px !important;
    padding: 9px 11px !important;
    border-radius: 9px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
}
.ride-coupon-feedback.is-success {
    background: var(--rb-soft, #ecfdf3) !important;
    color: #166534 !important;
}
.ride-coupon-feedback.is-error {
    background: var(--rb-soft, #fff1f2) !important;
    color: #be123c !important;
}
@media (max-width: 420px) {
    .rebbify-payment-coupon__row {
        grid-template-columns: minmax(0, 1fr) 82px !important;
        gap: 7px !important;
    }
    .rebbify-payment-coupon__apply {
        min-width: 82px !important;
        padding-inline: 10px !important;
    }
}

/* ========================================================================
   2026-09-21 — Agendamento como popup sobre a tela + saldo Rebbify em toggle
   ======================================================================== */
:root {
    --rebbify-purple: #7C4DFF;
    --rebbify-purple-dark: #6d3df1;
}

/* Saldo Rebbify: opção complementar visualizada como chave, não rádio. */
.rebbify-wallet-toggle-card {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    min-height: 64px !important;
    padding: 10px 0 12px !important;
    border-bottom: 1px solid var(--rb-border, #ececec) !important;
}

.rebbify-wallet-toggle-card__icon {
    flex: 0 0 40px !important;
}
.rebbify-wallet-toggle-card__icon img {
    width: 24px !important;
    height: 24px !important;
    object-fit: contain !important;
}
.rebbify-wallet-toggle-card .rebbify-payment-method-card__copy strong {
    color: var(--rb-text, #111) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
}
.rebbify-wallet-toggle-card .rebbify-payment-method-card__copy small {
    margin-top: 4px !important;
    color: var(--rb-text, #333) !important;
    font-size: 13px !important;
}
.rebbify-wallet-switch {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    cursor: pointer !important;
}
.rebbify-wallet-switch input {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.rebbify-wallet-switch__track {
    position: relative !important;
    width: 46px !important;
    height: 28px !important;
    border-radius: 999px !important;
    background: var(--rb-soft, #d6d6da) !important;
    transition: background .18s ease !important;
}
.rebbify-wallet-switch__thumb {
    position: absolute !important;
    top: 3px !important;
    left: 3px !important;
    width: 22px !important;
    height: 22px !important;
    border-radius: 50% !important;
    background: var(--rb-solid, #fff) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.24) !important;
    transition: transform .18s ease !important;
}
.rebbify-wallet-switch input:checked + .rebbify-wallet-switch__track {
    background: var(--rebbify-purple) !important;
}
.rebbify-wallet-switch input:checked + .rebbify-wallet-switch__track .rebbify-wallet-switch__thumb {
    transform: translateX(18px) !important;
}
.rebbify-wallet-switch.is-disabled {
    cursor: not-allowed !important;
    opacity: .42 !important;
}
.rebbify-wallet-switch.is-disabled .rebbify-wallet-switch__track {
    background: var(--rb-soft, #e2e2e5) !important;
}

/* Ações Rebbify: roxo é a cor padrão da experiência. */
.rebbify-payment-save,
.rebbify-payment-coupon__apply,
#rideAddCardSaveBtn,
.rebbify-card-pay-button,
#rebbifyGeneratePix,
#rebbifyCopyPix,
.rebbify-schedule-advance,
.rebbify-actionbar-submit,
.findDriverBtn {
    background: var(--rebbify-purple) !important;
    border-color: var(--rebbify-purple) !important;
    color: #fff !important;
}
.rebbify-payment-save:hover,
.rebbify-payment-coupon__apply:hover,
#rideAddCardSaveBtn:hover,
.rebbify-card-pay-button:hover,
#rebbifyGeneratePix:hover,
#rebbifyCopyPix:hover,
.rebbify-schedule-advance:hover,
.rebbify-actionbar-submit:hover,
.findDriverBtn:hover {
    background: var(--rebbify-purple-dark) !important;
    border-color: var(--rebbify-purple-dark) !important;
}

/* O agendamento deve se comportar como Formas de pagamento: fundo visível e escurecido. */
body.rebbify-schedule-modal-open #rebbifyRideApp {
    visibility: visible !important;
    pointer-events: none !important;
}
body.rebbify-schedule-modal-open #rideScheduleEditor {
    visibility: visible !important;
    pointer-events: auto !important;
}
.rebbify-schedule-modal-backdrop,
.rebbify-schedule-modal-backdrop.is-open {
    background: rgba(17, 24, 39, .52) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

@media (max-width: 640px) {
    .rebbify-schedule-modal-backdrop.is-open {
        display: block !important;
        position: fixed !important;
        inset: 0 !important;
        width: 100vw !important;
        height: 100dvh !important;
        background: rgba(17, 24, 39, .52) !important;
    }

    #rideScheduleEditor.rebbify-schedule-editor.is-modal-open {
        position: fixed !important;
        inset: auto 0 0 0 !important;
        top: auto !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        height: auto !important;
        max-width: none !important;
        max-height: 90dvh !important;
        padding: 18px 18px max(22px, env(safe-area-inset-bottom)) !important;
        transform: none !important;
        border-radius: 22px 22px 0 0 !important;
        background: var(--rb-solid, #fff) !important;
        box-shadow: 0 -20px 60px rgba(0,0,0,.24) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    #rideScheduleEditor.is-modal-open .rebbify-schedule-editor__topbar {
        position: static !important;
        margin: 0 0 8px !important;
        padding: 0 !important;
        background: var(--rb-solid, #fff) !important;
    }

    #rideScheduleEditor.is-modal-open .rebbify-schedule-editor__title {
        margin: 8px 0 18px !important;
        font-size: clamp(24px, 7vw, 30px) !important;
        line-height: 1.08 !important;
    }

    #rideScheduleEditor.is-modal-open .ride-schedule-fields {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    #rideScheduleEditor.is-modal-open .rebbify-schedule-picker {
        width: 100% !important;
        min-height: 62px !important;
        grid-template-columns: 28px minmax(64px, auto) minmax(0, 1fr) !important;
        gap: 10px !important;
        box-sizing: border-box !important;
    }

    #rideScheduleEditor.is-modal-open .rebbify-schedule-advance {
        position: static !important;
        width: 100% !important;
        min-height: 52px !important;
        margin: 18px 0 0 !important;
        border-radius: 12px !important;
        box-shadow: none !important;
    }
}

/* Seletores de pagamento seguem a identidade roxa, não preta. */
.rebbify-payment-method-card__check,
.rebbify-payment-method-row__check {
    border-color: var(--rb-border, #9ca3af) !important;
}
.rebbify-payment-method-card:has(input:checked) .rebbify-payment-method-card__check,
.rebbify-payment-method-row:has(input:checked) .rebbify-payment-method-row__check {
    border-color: var(--rebbify-purple) !important;
}

/* ========================================================================
   2026-09-21 — UX responsivo adaptável (web/mobile)
   Apenas layout/espacamento. Não altera regras de corrida/pagamento.
   ======================================================================== */
:root {
    --rebbify-ux-gutter: clamp(10px, 2.8vw, 22px);
    --rebbify-ux-gap: clamp(10px, 2.4vw, 18px);
    --rebbify-ux-radius: clamp(12px, 3vw, 18px);
}

.rebbify-booking-actionbar {
    grid-template-columns: minmax(118px, .82fr) minmax(180px, 1.18fr) !important;
    gap: clamp(8px, 1.4vw, 12px) !important;
}

.rebbify-actionbar-option,
.rebbify-actionbar-submit {
    min-width: 0 !important;
}

@media (max-width: 1199px) {
    .rebbify-booking-actionbar {
        grid-template-columns: minmax(0, .78fr) minmax(150px, 1.22fr) !important;
    }
}

@media (max-width: 767px) {
    .rebbify-ride-stage,
    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        padding: var(--rebbify-ux-gutter) var(--rebbify-ux-gutter)
            calc(104px + env(safe-area-inset-bottom)) !important;
    }

    .rebbify-booking-wrapper,
    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper,
    .rebbify-booking-panel,
    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        gap: var(--rebbify-ux-gap) !important;
    }

    .rebbify-request-card,
    .booking-location-box,
    .rebbify-service-item,
    .rebbify-map-panel,
    .rebbify-booking-action-card {
        border-radius: var(--rebbify-ux-radius) !important;
    }

    .rebbify-map-panel,
    .rebbify-ride-app.is-service-selection .rebbify-map-panel {
        height: clamp(220px, 34dvh, 320px) !important;
        min-height: 220px !important;
        max-height: 320px !important;
    }

    .booking-wrapper__right #map,
    .rebbify-map-panel #map {
        min-height: 220px !important;
        border-radius: var(--rebbify-ux-radius) !important;
    }

    .rebbify-service-group__title {
        margin-bottom: 10px !important;
        font-size: clamp(19px, 5.4vw, 24px) !important;
    }

    .rebbify-service-group__list {
        gap: 8px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-item,
    .rebbify-service-item {
        min-height: clamp(82px, 22vw, 104px) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-label,
    .rebbify-service-label {
        display: grid !important;
        grid-template-columns: clamp(58px, 15vw, 74px) minmax(0, 1fr) clamp(78px, 20vw, 96px) !important;
        align-items: center !important;
        gap: clamp(7px, 2vw, 11px) !important;
        width: 100% !important;
        min-height: clamp(82px, 22vw, 104px) !important;
        padding: clamp(8px, 2.2vw, 12px) !important;
        box-sizing: border-box !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image,
    .rebbify-service-image,
    .rebbify-ride-app.is-service-selection .rebbify-service-image img,
    .rebbify-service-image img {
        width: clamp(58px, 15vw, 74px) !important;
        min-width: 0 !important;
        max-width: clamp(58px, 15vw, 74px) !important;
        height: clamp(52px, 13vw, 66px) !important;
        max-height: clamp(52px, 13vw, 66px) !important;
        object-fit: contain !important;
    }

    .rebbify-service-copy {
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .rebbify-service-name-row {
        flex-wrap: nowrap !important;
        min-width: 0 !important;
    }

    .rebbify-service-name {
        min-width: 0 !important;
        max-width: 100% !important;
        font-size: clamp(14px, 4vw, 17px) !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .rebbify-service-meta,
    .rebbify-service-description {
        max-width: 100% !important;
        margin-top: 3px !important;
        font-size: clamp(10px, 2.85vw, 12px) !important;
        line-height: 1.25 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price,
    .rebbify-service-price {
        width: clamp(78px, 20vw, 96px) !important;
        min-width: 0 !important;
        max-width: clamp(78px, 20vw, 96px) !important;
        align-self: center !important;
        justify-self: end !important;
        margin: 0 !important;
        text-align: right !important;
    }

    .rebbify-service-price__current {
        justify-content: flex-end !important;
        flex-wrap: nowrap !important;
    }

    .rebbify-service-price strong {
        font-size: clamp(13px, 3.75vw, 16px) !important;
        white-space: nowrap !important;
    }

    .rebbify-service-price__original {
        font-size: clamp(9px, 2.6vw, 11px) !important;
        white-space: nowrap !important;
    }

    .rebbify-ride-app.is-service-selection .find_driver_wrapper {
        padding: 8px var(--rebbify-ux-gutter)
            max(8px, env(safe-area-inset-bottom)) !important;
    }

    .rebbify-booking-actionbar {
        grid-template-columns: minmax(108px, 36%) minmax(0, 64%) !important;
        gap: 9px !important;
        width: 100% !important;
    }

    .rebbify-actionbar-option,
    .rebbify-actionbar-submit {
        min-height: clamp(52px, 13vw, 58px) !important;
        border-radius: 12px !important;
    }

    .rebbify-actionbar-option {
        padding: 7px 10px !important;
    }

    .rebbify-actionbar-option__copy strong {
        max-width: 100% !important;
        font-size: clamp(11px, 3.1vw, 13px) !important;
    }

    .rebbify-actionbar-option__copy small {
        font-size: clamp(9px, 2.5vw, 11px) !important;
    }

    .rebbify-actionbar-submit {
        padding: 8px 12px !important;
        font-size: clamp(12px, 3.5vw, 15px) !important;
    }

    /* Formas de pagamento: uma única rolagem, fundo visível e margens consistentes. */
    .rebbify-payment-modal {
        align-items: flex-end !important;
        justify-content: center !important;
        width: 100vw !important;
        height: 100dvh !important;
        padding: 0 !important;
        background: transparent !important;
    }

    .rebbify-payment-modal__backdrop {
        display: block !important;
        background: rgba(17, 24, 39, .46) !important;
    }

    .rebbify-payment-sheet {
        width: 100% !important;
        max-width: none !important;
        min-height: 0 !important;
        height: auto !important;
        max-height: min(90dvh, 780px) !important;
        margin: 0 !important;
        padding: clamp(16px, 4vw, 22px) var(--rebbify-ux-gutter)
            max(18px, calc(env(safe-area-inset-bottom) + 10px)) !important;
        border-radius: 22px 22px 0 0 !important;
        box-shadow: 0 -18px 48px rgba(0, 0, 0, .2) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
    }

    #ridePaymentMethodList,
    .rebbify-payment-sheet__list {
        max-height: none !important;
        overflow: visible !important;
    }

    .rebbify-payment-sheet__topbar,
    .rebbify-payment-sheet__subtopbar {
        min-height: 40px !important;
        gap: 10px !important;
    }

    .rebbify-payment-sheet__topbar h2,
    .rebbify-payment-sheet__subtopbar h3 {
        font-size: clamp(16px, 4.4vw, 19px) !important;
    }

    .rebbify-payment-sheet__action {
        min-height: 36px !important;
        padding: 0 13px !important;
        font-size: clamp(13px, 3.5vw, 15px) !important;
    }

    .rebbify-payment-sheet__close {
        width: 34px !important;
        height: 34px !important;
        margin: 8px 0 0 !important;
    }

    .rebbify-payment-sheet__section h3,
    .rebbify-payment-cardform h2 {
        font-size: clamp(24px, 7vw, 32px) !important;
        line-height: 1.06 !important;
    }

    .rebbify-wallet-toggle-card,
    .rebbify-payment-method-card,
    .rebbify-payment-method-row {
        min-height: clamp(58px, 15vw, 68px) !important;
    }

    .rebbify-payment-method-card,
    .rebbify-payment-method-row {
        grid-template-columns: clamp(34px, 9vw, 40px) minmax(0, 1fr) 22px !important;
        gap: 11px !important;
        padding: 10px 0 !important;
    }

    .rebbify-payment-method-card__media,
    .rebbify-payment-method-row__icon,
    .rebbify-payment-method-row__brand,
    .rebbify-payment-method-card__media img,
    .rebbify-payment-method-row__icon img,
    .rebbify-payment-method-row__brand img {
        width: clamp(34px, 9vw, 40px) !important;
        height: clamp(34px, 9vw, 40px) !important;
    }

    .rebbify-payment-method-card__copy strong,
    .rebbify-payment-method-row__copy strong {
        font-size: clamp(14px, 4vw, 17px) !important;
    }

    .rebbify-payment-method-card__copy small,
    .rebbify-payment-method-row__copy small,
    .rebbify-wallet-toggle-card .rebbify-payment-method-card__copy small {
        font-size: clamp(11px, 3.2vw, 14px) !important;
    }

    .rebbify-payment-save,
    #rideAddCardSaveBtn {
        min-height: 50px !important;
        width: 100% !important;
        margin-top: 20px !important;
        border-radius: 12px !important;
    }

    .rebbify-payment-cardform__grid {
        gap: 16px !important;
        margin-top: 24px !important;
    }

    .rebbify-payment-cardform__field .form--control {
        min-height: 50px !important;
        font-size: 16px !important;
    }

    .rebbify-payment-sheet__cancel-link {
        margin-top: 18px !important;
        margin-bottom: 2px !important;
    }

    /* Agendamento segue a mesma proporção de bottom sheet do pagamento. */
    #rideScheduleEditor.rebbify-schedule-editor.is-modal-open {
        width: 100% !important;
        max-width: none !important;
        max-height: min(90dvh, 780px) !important;
        padding: clamp(16px, 4vw, 22px) var(--rebbify-ux-gutter)
            max(20px, calc(env(safe-area-inset-bottom) + 10px)) !important;
        border-radius: 22px 22px 0 0 !important;
    }

    #rideScheduleEditor.is-modal-open .rebbify-schedule-editor__title {
        font-size: clamp(24px, 7vw, 31px) !important;
        margin: 8px 0 16px !important;
    }

    #rideScheduleEditor.is-modal-open .ride-schedule-fields {
        gap: 10px !important;
    }

    #rideScheduleEditor.is-modal-open .rebbify-schedule-picker {
        min-height: clamp(58px, 15vw, 66px) !important;
    }
}

@media (max-width: 380px) {
    .rebbify-service-capacity {
        display: none !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-label,
    .rebbify-service-label {
        grid-template-columns: 54px minmax(0, 1fr) 76px !important;
        gap: 6px !important;
        padding: 8px !important;
    }

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

    .rebbify-ride-app.is-service-selection .rebbify-service-price,
    .rebbify-service-price {
        width: 76px !important;
        max-width: 76px !important;
    }

    .rebbify-booking-actionbar {
        grid-template-columns: minmax(96px, 34%) minmax(0, 66%) !important;
        gap: 7px !important;
    }
}

@media (max-height: 700px) and (max-width: 767px) {
    .rebbify-map-panel,
    .rebbify-ride-app.is-service-selection .rebbify-map-panel {
        height: clamp(190px, 29dvh, 245px) !important;
        min-height: 190px !important;
    }

    .rebbify-payment-sheet,
    #rideScheduleEditor.rebbify-schedule-editor.is-modal-open {
        max-height: 94dvh !important;
    }
}

/* ========================================================================
   2026-09-23 — Envios alinhado à referência: título forte + fluxo sem nota
   O passageiro informa detalhes ao motorista pelo chat da corrida.
   ======================================================================== */
.rebbify-delivery-title {
    margin: 16px 14px 12px !important;
    color: var(--rb-text, #000) !important;
    font-size: clamp(27px, 2.15vw, 31px) !important;
    line-height: 1.08 !important;
    font-weight: 800 !important;
    letter-spacing: -.035em !important;
}

.rebbify-ride-app[data-active-service-type="delivery"] .rebbify-request-card__title {
    display: none !important;
}

.rebbify-ride-app[data-active-service-type="delivery"] .rebbify-delivery-intro {
    margin-bottom: 10px !important;
}

.rebbify-ride-app[data-active-service-type="delivery"] .rebbify-delivery-intro p {
    margin: 0 !important;
    padding: 0 14px 16px !important;
    color: var(--rb-text, #333) !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;
}

.rebbify-ride-app[data-active-service-type="delivery"] .rebbify-delivery-modes {
    margin: 0 14px 12px !important;
}

@media (max-width: 991px) {
    .rebbify-delivery-title {
        margin: 15px 14px 11px !important;
        font-size: 28px !important;
    }
}

@media (max-width: 420px) {
    .rebbify-delivery-title {
        margin-left: 12px !important;
        margin-right: 12px !important;
        font-size: 27px !important;
    }

    .rebbify-ride-app[data-active-service-type="delivery"] .rebbify-delivery-intro p {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .rebbify-ride-app[data-active-service-type="delivery"] .rebbify-delivery-modes {
        margin-left: 12px !important;
        margin-right: 12px !important;
    }
}

/* Seletor de Envios: ativo com contorno preto como na referência. */
.rebbify-ride-app[data-active-service-type="delivery"] .rebbify-delivery-mode {
    border: 1px solid transparent !important;
    box-shadow: none !important;
}

.rebbify-ride-app[data-active-service-type="delivery"] .rebbify-delivery-mode.is-active {
    border-color: var(--rb-border, #111) !important;
    background: var(--rb-solid, #fff) !important;
    box-shadow: none !important;
}

/* ========================================================================
   2026-09-23 — seleção de viagem alinhada à referência Uber (desktop/mobile)
   Somente apresentação da etapa de serviços. Mantém mapa, cotação, seleção,
   agendamento e pagamentos existentes; nenhum dado de corrida é mockado.
   ======================================================================== */
.rebbify-service-mobile-options,
.rebbify-service-mobile-back {
    display: none;
}

.rebbify-service-best-value[hidden] {
    display: none !important;
}

.rebbify-service-best-value {
    width: fit-content;
    margin-top: 2px;
    padding: 1px 4px;
    border-radius: 2px;
    background: #276ef1;
    color: #fff;
    font-size: 10px;
    line-height: 1.15;
    font-weight: 700;
    white-space: nowrap;
}

.rebbify-ride-app.is-service-selection .rebbify-service-item {
    border-color: transparent !important;
    background: var(--rb-solid, #fff) !important;
    box-shadow: none !important;
}

.rebbify-ride-app.is-service-selection .rebbify-service-item.is-selected {
    border: 2px solid var(--rb-border, #000) !important;
    background: var(--rb-solid, #fff) !important;
    box-shadow: none !important;
}

.rebbify-service-discount-icon {
    color: #06c167 !important;
}

.rebbify-actionbar-option__icon--profile {
    position: relative !important;
    width: 62px !important;
    height: 36px !important;
    flex: 0 0 62px !important;
    border-radius: 8px !important;
    background: #111 !important;
    color: #fff !important;
    overflow: hidden !important;
}

.rebbify-actionbar-option__icon--profile > i {
    display: inline-flex !important;
    width: 31px !important;
    height: 36px !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 16px !important;
}

.rebbify-actionbar-option__icon--profile > i + i {
    background: #4a4a4a !important;
}

.rebbify-actionbar-option__copy strong {
    order: 1;
}

.rebbify-actionbar-option__copy small {
    order: 2;
    margin-top: 1px !important;
}

.rebbify-actionbar-option__chevron {
    margin-left: auto !important;
}

@media (min-width: 1200px) {
    .rebbify-ride-app.is-service-selection {
        --ride-topbar-height: 50px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        width: 100% !important;
        height: calc(100dvh - var(--ride-topbar-height)) !important;
        min-height: 560px !important;
        padding: 24px 50px 18px !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-wrapper {
        width: 100% !important;
        max-width: none !important;
        height: 100% !important;
        margin: 0 !important;
        display: grid !important;
        grid-template-columns: minmax(790px, 1.95fr) minmax(380px, 1fr) !important;
        gap: 44px !important;
        align-items: stretch !important;
    }

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

    .rebbify-ride-app.is-service-selection .ride_location_wrapper {
        grid-column: 1 !important;
        grid-row: 1 !important;
        width: 271px !important;
        min-width: 271px !important;
        align-self: start !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;
        min-height: 0 !important;
        max-height: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        padding: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 0 8px 12px 0 !important;
        scrollbar-width: thin;
        scrollbar-color: #7d7d7d transparent;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results::-webkit-scrollbar {
        width: 8px;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results::-webkit-scrollbar-thumb {
        border-radius: 8px;
        background: #7d7d7d;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results__header {
        position: sticky !important;
        top: 0 !important;
        z-index: 12 !important;
        margin: 0 0 14px !important;
        padding: 0 0 4px !important;
        background: var(--rb-solid, #fff) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-title-row {
        min-height: 38px !important;
        align-items: flex-start !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-title-row h1 {
        margin: 0 !important;
        color: var(--rb-text, #000) !important;
        font-size: 30px !important;
        line-height: 1.08 !important;
        font-weight: 800 !important;
        letter-spacing: -.035em !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-group {
        margin: 0 0 12px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-group__title {
        margin: 0 0 12px !important;
        color: var(--rb-text, #000) !important;
        font-size: 19px !important;
        line-height: 1.25 !important;
        font-weight: 800 !important;
        letter-spacing: -.015em !important;
    }

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

    .rebbify-ride-app.is-service-selection .rebbify-service-item {
        min-height: 96px !important;
        margin: 0 !important;
        border-width: 0 !important;
        border-radius: 10px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-item.is-selected {
        border-width: 2px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        display: grid !important;
        grid-template-columns: 90px minmax(0, 1fr) 92px !important;
        align-items: center !important;
        gap: 16px !important;
        width: 100% !important;
        min-height: 96px !important;
        padding: 8px 10px !important;
        box-sizing: border-box !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image,
    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        width: 90px !important;
        min-width: 90px !important;
        max-width: 90px !important;
        height: 66px !important;
        max-height: 66px !important;
        object-fit: contain !important;
    }

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

    .rebbify-ride-app.is-service-selection .rebbify-service-name {
        color: var(--rb-text, #000) !important;
        font-size: 18px !important;
        line-height: 1.12 !important;
        font-weight: 800 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-capacity {
        color: var(--rb-text, #000) !important;
        font-size: 11px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-meta,
    .rebbify-ride-app.is-service-selection .rebbify-service-description {
        margin-top: 2px !important;
        color: var(--rb-text, #262626) !important;
        font-size: 12px !important;
        line-height: 1.22 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-description {
        display: block !important;
        -webkit-line-clamp: unset !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-best-value {
        font-size: 10px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price {
        width: 92px !important;
        min-width: 92px !important;
        max-width: 92px !important;
        align-self: center !important;
        justify-self: end !important;
        align-items: flex-end !important;
        text-align: right !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price strong {
        color: var(--rb-text, #000) !important;
        font-size: 18px !important;
        line-height: 1.1 !important;
        font-weight: 800 !important;
        white-space: nowrap !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price__original {
        color: var(--rb-muted, #777) !important;
        font-size: 11px !important;
    }

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

    .rebbify-ride-app.is-service-selection .find_driver_wrapper {
        position: static !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: var(--rb-solid, #fff) !important;
        border: 0 !important;
        box-shadow: 0 -7px 20px rgba(0, 0, 0, .08) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-action-card,
    .rebbify-ride-app.is-service-selection .rebbify-booking-action-card.common-card {
        border-radius: 12px !important;
        box-shadow: none !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-actionbar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(228px, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        padding: 10px 12px !important;
        border: 0 !important;
        border-radius: 12px !important;
        background: var(--rb-solid, #fff) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option {
        min-height: 50px !important;
        padding: 4px 6px !important;
        border: 0 !important;
        border-radius: 8px !important;
        background: var(--rb-solid, #fff) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option:hover,
    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option:focus {
        background: var(--rb-soft, #f4f4f4) !important;
        border-color: transparent !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option__copy strong {
        max-width: none !important;
        color: var(--rb-text, #000) !important;
        font-size: 13px !important;
        font-weight: 700 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option__copy small {
        color: var(--rb-text, #222) !important;
        font-size: 11px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-submit {
        min-height: 50px !important;
        padding: 8px 14px !important;
        border: 0 !important;
        border-radius: 8px !important;
        background: #000 !important;
        color: #fff !important;
        font-size: 13px !important;
        font-weight: 800 !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 767px) {
    .rebbify-ride-app.is-service-selection {
        --rebbify-mobile-action-height: 78px;
        min-height: 100dvh !important;
        background: var(--rb-solid, #fff) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-ride-topbar {
        display: none !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-ride-stage {
        width: 100% !important;
        min-height: 100dvh !important;
        height: auto !important;
        padding: 0 0 calc(var(--rebbify-mobile-action-height) + env(safe-area-inset-bottom)) !important;
        overflow: visible !important;
        background: var(--rb-solid, #fff) !important;
    }

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

    .rebbify-ride-app.is-service-selection .rebbify-map-panel {
        grid-area: map !important;
        position: relative !important;
        width: 100% !important;
        height: clamp(220px, 40dvh, 285px) !important;
        min-height: 220px !important;
        max-height: 285px !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        overflow: hidden !important;
    }

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

    .rebbify-ride-app.is-service-selection .rebbify-service-mobile-back {
        position: absolute !important;
        top: 5px !important;
        left: 5px !important;
        z-index: 800 !important;
        display: inline-flex !important;
        width: 32px !important;
        height: 32px !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 50% !important;
        background: var(--rb-solid, #fff) !important;
        color: var(--rb-text, #111) !important;
        box-shadow: 0 1px 5px rgba(0,0,0,.2) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-panel {
        grid-area: panel !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    .rebbify-ride-app.is-service-selection .ride_location_wrapper {
        display: none !important;
    }

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

    .rebbify-ride-app.is-service-selection .rebbify-service-results {
        width: 100% !important;
        max-width: 100% !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 !important;
        background: var(--rb-solid, #fff) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-results__header {
        position: static !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: var(--rb-solid, #fff) !important;
        border: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-title-row {
        display: flex !important;
        min-height: 31px !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        padding: 0 8px !important;
        border-bottom: 1px solid var(--rb-border, #e8e8e8) !important;
        background: var(--rb-solid, #fff) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-edit-route-btn {
        display: none !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-title-row h1 {
        margin: 0 !important;
        color: var(--rb-text, #111) !important;
        font-size: 11px !important;
        line-height: 1.1 !important;
        font-weight: 700 !important;
        letter-spacing: 0 !important;
        text-align: center !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-mobile-options {
        display: flex !important;
        align-items: center !important;
        gap: 7px !important;
        width: 100% !important;
        min-height: 34px !important;
        padding: 4px 8px !important;
        border-bottom: 1px solid var(--rb-border, #e7e7e7) !important;
        background: var(--rb-solid, #fff) !important;
        box-sizing: border-box !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-mobile-chip {
        display: inline-flex !important;
        min-width: 0 !important;
        height: 26px !important;
        align-items: center !important;
        gap: 5px !important;
        padding: 0 8px !important;
        border: 0 !important;
        border-radius: 14px !important;
        background: var(--rb-soft, #f3f3f3) !important;
        color: var(--rb-text, #111) !important;
        font-size: 9px !important;
        line-height: 1 !important;
        font-weight: 600 !important;
        white-space: nowrap !important;
    }

    .rebbify-ride-app.is-service-selection button.rebbify-service-mobile-chip {
        cursor: pointer !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-mobile-chip__icon {
        display: inline-flex !important;
        width: 13px !important;
        height: 13px !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 13px !important;
        color: var(--rb-text, #111) !important;
        font-size: 12px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-mobile-chip > .la-angle-down {
        font-size: 9px !important;
        margin-left: 1px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-group {
        margin: 0 !important;
        padding: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-group__title {
        display: none !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-group__list {
        display: grid !important;
        gap: 0 !important;
        padding: 0 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-item {
        width: auto !important;
        min-height: 55px !important;
        margin: 0 7px !important;
        border-width: 0 !important;
        border-radius: 8px !important;
        background: var(--rb-solid, #fff) !important;
        overflow: hidden !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-item.is-selected {
        border-width: 2px !important;
        margin-top: 2px !important;
        margin-bottom: 2px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 7px !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 55px !important;
        padding: 4px 7px !important;
        box-sizing: border-box !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image,
    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        flex: 0 0 48px !important;
        width: 48px !important;
        min-width: 48px !important;
        max-width: 48px !important;
        height: 42px !important;
        max-height: 42px !important;
        object-fit: contain !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-copy {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }

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

    .rebbify-ride-app.is-service-selection .rebbify-service-name {
        min-width: 0 !important;
        max-width: 100% !important;
        color: var(--rb-text, #000) !important;
        font-size: 12px !important;
        line-height: 1.08 !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-capacity {
        flex: 0 0 auto !important;
        font-size: 8px !important;
        line-height: 1 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-capacity svg {
        width: 9px !important;
        height: 9px !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;
        max-width: 100% !important;
        margin-top: 1px !important;
        color: var(--rb-text, #222) !important;
        font-size: 9px !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        -webkit-line-clamp: unset !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-best-value {
        display: inline-flex !important;
        margin-top: 1px !important;
        padding: 1px 3px !important;
        font-size: 8px !important;
        line-height: 1 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-best-value[hidden] {
        display: none !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price {
        flex: 0 0 72px !important;
        width: 72px !important;
        min-width: 72px !important;
        max-width: 72px !important;
        align-self: center !important;
        align-items: flex-end !important;
        justify-content: center !important;
        margin: 0 !important;
        text-align: right !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price__current {
        justify-content: flex-end !important;
        flex-wrap: nowrap !important;
        gap: 2px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-discount-icon {
        width: 9px !important;
        height: 9px !important;
        flex: 0 0 9px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price strong {
        color: var(--rb-text, #000) !important;
        font-size: 12px !important;
        line-height: 1.05 !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price__original {
        margin-top: 1px !important;
        color: var(--rb-muted, #777) !important;
        font-size: 8px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }

    .rebbify-ride-app.is-service-selection .find_driver_wrapper {
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        z-index: 1200 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 5px 8px max(5px, env(safe-area-inset-bottom)) !important;
        background: var(--rb-solid, #fff) !important;
        border: 0 !important;
        box-shadow: 0 -2px 10px rgba(0,0,0,.08) !important;
        box-sizing: border-box !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-action-card,
    .rebbify-ride-app.is-service-selection .rebbify-booking-action-card.common-card {
        width: 100% !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-booking-actionbar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 4px !important;
        width: 100% !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: var(--rb-solid, #fff) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option {
        display: flex !important;
        width: 100% !important;
        min-height: 34px !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 2px 4px !important;
        border: 0 !important;
        border-radius: 4px !important;
        background: var(--rb-solid, #fff) !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option__icon--profile {
        display: inline-flex !important;
        width: 48px !important;
        height: 26px !important;
        flex: 0 0 48px !important;
        border-radius: 5px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option__icon--profile > i {
        display: inline-flex !important;
        width: 24px !important;
        height: 26px !important;
        font-size: 12px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option__copy {
        flex: 1 1 auto !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option__copy strong {
        max-width: none !important;
        margin: 0 !important;
        color: var(--rb-text, #111) !important;
        font-size: 10px !important;
        line-height: 1.05 !important;
        font-weight: 700 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option__copy small {
        margin-top: 1px !important;
        color: var(--rb-text, #222) !important;
        font-size: 8px !important;
        line-height: 1 !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-option__chevron {
        display: inline-block !important;
        color: var(--rb-text, #111) !important;
        font-size: 11px !important;
        margin-right: 2px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-actionbar-submit {
        width: 100% !important;
        min-height: 32px !important;
        margin: 0 !important;
        padding: 4px 10px !important;
        border: 0 !important;
        border-radius: 4px !important;
        background: #000 !important;
        color: #fff !important;
        font-size: 10px !important;
        line-height: 1.1 !important;
        font-weight: 800 !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 360px) {
    .rebbify-ride-app.is-service-selection .rebbify-service-label {
        gap: 6px !important;
        padding-inline: 6px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-image,
    .rebbify-ride-app.is-service-selection .rebbify-service-image img {
        flex-basis: 44px !important;
        width: 44px !important;
        min-width: 44px !important;
        max-width: 44px !important;
    }

    .rebbify-ride-app.is-service-selection .rebbify-service-price {
        flex-basis: 68px !important;
        width: 68px !important;
        min-width: 68px !important;
        max-width: 68px !important;
    }
}

/* ========================================================================
   2026-09-23 — ações primárias Rebbify mantêm a cor roxa da plataforma.
   A referência Uber é somente de estrutura/UX; os CTAs não viram pretos.
   ======================================================================== */
.rebbify-ride-app #rideSearchBtn,
.rebbify-ride-app .rebbify-search-ride-btn,
.rebbify-ride-app .findDriverBtn,
.rebbify-ride-app .rebbify-actionbar-submit {
    background: var(--rebbify-purple, #7C4DFF) !important;
    border-color: var(--rebbify-purple, #7C4DFF) !important;
    color: #fff !important;
}

.rebbify-ride-app #rideSearchBtn:hover:not(:disabled),
.rebbify-ride-app .rebbify-search-ride-btn:hover:not(:disabled),
.rebbify-ride-app .findDriverBtn:hover:not(:disabled),
.rebbify-ride-app .findDriverBtn:focus,
.rebbify-ride-app .rebbify-actionbar-submit:hover:not(:disabled),
.rebbify-ride-app .rebbify-actionbar-submit:focus {
    background: var(--rebbify-purple-dark, #6d3df1) !important;
    border-color: var(--rebbify-purple-dark, #6d3df1) !important;
    color: #fff !important;
}


/* ========================================================================
   2026-09-23 — acabamento UI/UX da etapa de cotação/pagamento
   Escopo somente front-end. Não altera regras de corrida nem integração Asaas.
   ======================================================================== */

/* Overlays sempre acima de header, mapa, sheets e menus. O JS também os move
   para <body> para escapar de stacking contexts dos painéis da página. */
body > .rebbify-payment-modal {
    z-index: 1120 !important;
    isolation: isolate !important;
}
body > .rebbify-checkout-screen {
    z-index: 1140 !important;
    isolation: isolate !important;
}

/* Identidade da Rebbify: ações primárias roxas desde o estado normal. */
.rebbify-ride-app .btn--base,
.rebbify-ride-app #rideSearchBtn,
.rebbify-ride-app .rebbify-search-ride-btn,
.rebbify-ride-app .findDriverBtn,
.rebbify-ride-app .rebbify-actionbar-submit,
.rebbify-payment-modal .btn--base,
.rebbify-checkout-screen .btn--base,
.rebbify-payment-save,
.rebbify-payment-coupon__apply {
    background: var(--rebbify-purple, #7C4DFF) !important;
    border-color: var(--rebbify-purple, #7C4DFF) !important;
    color: #fff !important;
}
.rebbify-ride-app .btn--base:hover:not(:disabled),
.rebbify-ride-app .btn--base:focus-visible,
.rebbify-payment-modal .btn--base:hover:not(:disabled),
.rebbify-payment-modal .btn--base:focus-visible,
.rebbify-checkout-screen .btn--base:hover:not(:disabled),
.rebbify-checkout-screen .btn--base:focus-visible,
.rebbify-payment-save:hover:not(:disabled),
.rebbify-payment-coupon__apply:hover:not(:disabled) {
    background: var(--rebbify-purple-dark, #6d3df1) !important;
    border-color: var(--rebbify-purple-dark, #6d3df1) !important;
    color: #fff !important;
}

/* O seletor de pagamento e seu estado marcado seguem a mesma cor da marca. */
.rebbify-actionbar-option__icon--profile {
    background: var(--rebbify-purple, #7C4DFF) !important;
    color: #fff !important;
}
.rebbify-actionbar-option__icon--profile > i + i {
    background: var(--rebbify-purple-dark, #6d3df1) !important;
}
.rebbify-payment-method-card:has(input:checked) .rebbify-payment-method-card__check,
.rebbify-payment-method-row:has(input:checked) .rebbify-payment-method-row__check {
    border-color: var(--rebbify-purple, #7C4DFF) !important;
}

/* Pix: evita estouro horizontal e deixa Copia e Cola proporcional em qualquer tela. */
.rebbify-pix-payment,
.rebbify-pix-copy-row,
.rebbify-pix-copy-row textarea,
.rebbify-pix-copy-row .btn {
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.rebbify-pix-copy-row textarea {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 12px 13px !important;
}

@media (max-width: 767px) {
    /* Na etapa de escolha dos serviços a rota já foi definida. O botão voltar
       continua no mapa e os campos de origem/destino não consomem altura. */
    .rebbify-ride-app.is-service-selection .ride_location_wrapper,
    .rebbify-ride-app.is-service-selection .rebbify-request-card,
    .rebbify-ride-app.is-service-selection .booking-location-box {
        display: none !important;
    }

    /* Acima da lista fica apenas a ação útil de horário/agendamento. */
    .rebbify-ride-app.is-service-selection .rebbify-service-mobile-options {
        justify-content: flex-start !important;
    }
    .rebbify-ride-app.is-service-selection .rebbify-service-mobile-chip {
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: 100% !important;
    }

    body > .rebbify-payment-modal {
        width: 100vw !important;
        height: 100dvh !important;
        padding: 0 !important;
        align-items: flex-end !important;
        justify-content: center !important;
    }
    body > .rebbify-payment-modal .rebbify-payment-sheet {
        width: 100% !important;
        max-width: none !important;
        max-height: min(92dvh, 820px) !important;
        margin: 0 !important;
        padding-left: max(16px, env(safe-area-inset-left)) !important;
        padding-right: max(16px, env(safe-area-inset-right)) !important;
        padding-bottom: max(18px, calc(env(safe-area-inset-bottom) + 10px)) !important;
        border-radius: 22px 22px 0 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    body > .rebbify-checkout-screen {
        width: 100vw !important;
        height: 100dvh !important;
        padding: 0 !important;
        overflow: hidden !important;
    }
    body > .rebbify-checkout-screen .rebbify-checkout-screen__panel {
        width: 100% !important;
        max-width: none !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
    }
    body > .rebbify-checkout-screen .rebbify-checkout-screen__body {
        width: 100% !important;
        padding: 16px max(16px, env(safe-area-inset-right)) max(24px, calc(env(safe-area-inset-bottom) + 12px)) max(16px, env(safe-area-inset-left)) !important;
        overflow-x: hidden !important;
    }
    .rebbify-pix-qr {
        width: min(260px, calc(100vw - 48px)) !important;
        max-width: 100% !important;
        margin: 0 auto 6px !important;
    }
    .rebbify-pix-copy-row {
        width: 100% !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 9px !important;
    }
    .rebbify-pix-copy-row textarea {
        width: 100% !important;
        min-height: 82px !important;
    }
    .rebbify-pix-copy-row .btn {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 48px !important;
        margin: 0 !important;
    }
}

/* Rebbify 2026-09-23 — correção final dos ícones de recomendações */
.rebbify-request-card .rebbify-location-dropdown .search-input-dropdown__item > .location__icon,
.rebbify-request-card .rebbify-location-dropdown .search-input-dropdown__item > .menu-icon {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    flex: 0 0 48px !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    margin: 0 !important;
    background: var(--rb-soft, #f4f1f8) !important;
}
.rebbify-request-card .rebbify-location-dropdown .search-input-dropdown__item > .location__icon img,
.rebbify-request-card .rebbify-location-dropdown .search-input-dropdown__item > .menu-icon img {
    width: 21px !important;
    height: 21px !important;
    object-fit: contain !important;
    margin: 0 !important;
}

/* ========================================================================
   2026-09-23 — Checkout Pix: refinamento visual isolado
   Escopo EXCLUSIVO #rebbifyPixCheckoutScreen. Não altera cartão, seletor de
   pagamento, cálculo da corrida nem chamadas do Asaas.
   ======================================================================== */
#rebbifyPixCheckoutScreen.rebbify-pix-checkout-screen {
    padding: 18px !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(17, 24, 39, .52) !important;
    backdrop-filter: blur(3px) !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-checkout {
    width: min(430px, calc(100vw - 24px)) !important;
    max-width: 430px !important;
    max-height: min(760px, calc(100dvh - 24px)) !important;
    height: auto !important;
    border: 1px solid rgba(17, 24, 39, .06) !important;
    border-radius: 18px !important;
    background: var(--rb-solid, #fff) !important;
    box-shadow: 0 24px 70px rgba(17, 24, 39, .24) !important;
    overflow: hidden !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-security {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin: 12px 12px 0 !important;
    min-height: 48px !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    background: var(--rb-soft, #eef9f1) !important;
    color: var(--rb-text, #17211a) !important;
    box-sizing: border-box !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-security__copy {
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-security__copy > i {
    flex: 0 0 auto !important;
    color: var(--rb-text, #111827) !important;
    font-size: 17px !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-security__close {
    width: 30px !important;
    height: 30px !important;
    flex: 0 0 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: var(--rb-text, #111827) !important;
    font-size: 19px !important;
    cursor: pointer !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-security__close:hover,
#rebbifyPixCheckoutScreen .rebbify-pix-security__close:focus-visible {
    background: rgba(17, 24, 39, .07) !important;
    outline: none !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-checkout__body {
    width: 100% !important;
    min-height: 0 !important;
    padding: 18px 14px 16px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-gutter: stable !important;
    box-sizing: border-box !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-summary {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin: 0 0 16px !important;
    padding: 14px 10px !important;
    border-radius: 12px !important;
    background: var(--rb-solid, #fafafa) !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-summary__item {
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    padding: 0 8px !important;
    text-align: center !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-summary__item > span {
    color: var(--rb-muted, #929292) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-summary__item > strong {
    max-width: 100% !important;
    color: var(--rb-text, #5b5067) !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-summary__item > small {
    margin-top: 3px !important;
    color: var(--rebbify-purple, #7C4DFF) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-summary__item > small.is-expired {
    color: #b42318 !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-summary__divider {
    width: 1px !important;
    min-height: 58px !important;
    background: var(--rb-soft, #e6e6e9) !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-brand {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 2px auto 13px !important;
    padding-top: 14px !important;
    border-top: 2px dotted var(--rb-border, #dedee4) !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-brand img {
    display: block !important;
    width: 122px !important;
    max-width: 42vw !important;
    height: auto !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-instructions {
    max-width: 330px !important;
    margin: 0 auto 14px !important;
    color: var(--rb-muted, #65616b) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    text-align: center !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-identification {
    width: 100% !important;
    margin: 4px 0 0 !important;
    padding: 14px !important;
    border: 1px solid var(--rb-border, #ededf1) !important;
    border-radius: 12px !important;
    background: var(--rb-solid, #fafafa) !important;
    box-sizing: border-box !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-identification .form--control {
    min-height: 46px !important;
    border: 1px solid var(--rb-border, #e5e5ea) !important;
    border-radius: 9px !important;
    background: var(--rb-solid, #fff) !important;
    box-shadow: none !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-identification .btn {
    min-height: 48px !important;
    margin-top: 2px !important;
    border-radius: 9px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-payment {
    width: 100% !important;
    display: grid !important;
    gap: 12px !important;
    box-sizing: border-box !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-checkout__loader {
    min-height: 82px !important;
    margin: 2px 0 !important;
    padding: 14px !important;
    border-radius: 10px !important;
    background: var(--rb-solid, #fafafa) !important;
    color: var(--rb-text, #5e5964) !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-code-block {
    min-width: 0 !important;
    display: grid !important;
    gap: 6px !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-code-block__label {
    color: var(--rb-muted, #77727d) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
}

#rebbifyPixCheckoutScreen #rebbifyPixCopyPaste {
    width: 100% !important;
    height: 43px !important;
    min-height: 43px !important;
    max-height: 43px !important;
    margin: 0 !important;
    padding: 12px 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    resize: none !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: var(--rb-soft, #f6f6f8) !important;
    color: var(--rb-muted, #6d6872) !important;
    box-shadow: none !important;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace !important;
    font-size: 10px !important;
    line-height: 18px !important;
    white-space: pre !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    scrollbar-width: thin !important;
    box-sizing: border-box !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-copy-button {
    width: 100% !important;
    min-height: 56px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: var(--rebbify-purple, #7C4DFF) !important;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(124, 77, 255, .20) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: .08em !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-copy-button:hover:not(:disabled),
#rebbifyPixCheckoutScreen .rebbify-pix-copy-button:focus-visible {
    background: var(--rebbify-purple-dark, #6d3df1) !important;
}

#rebbifyPixCheckoutScreen .rebbify-payment-status {
    margin: 0 !important;
    padding: 9px 11px !important;
    border-radius: 9px !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-howto {
    display: grid !important;
    gap: 14px !important;
    margin-top: 0 !important;
    padding: 14px 12px !important;
    border-radius: 10px !important;
    background: var(--rb-solid, #fafafa) !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-howto h3 {
    margin: 0 0 1px !important;
    color: var(--rb-muted, #66616b) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    text-align: center !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-howto__item {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 12px !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-howto__item p {
    min-width: 0 !important;
    margin: 0 !important;
    color: var(--rb-muted, #6d6872) !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-phone-icon {
    position: relative !important;
    width: 40px !important;
    height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid var(--rb-border, #e2def0) !important;
    border-radius: 9px !important;
    background: var(--rb-solid, #fff) !important;
    color: #6f60a8 !important;
    box-shadow: 0 2px 7px rgba(47, 39, 71, .06) !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-phone-icon > .la-mobile-alt {
    font-size: 25px !important;
}

#rebbifyPixCheckoutScreen .rebbify-pix-phone-icon > .la-copy,
#rebbifyPixCheckoutScreen .rebbify-pix-phone-icon > .la-check {
    position: absolute !important;
    right: 2px !important;
    bottom: 2px !important;
    width: 15px !important;
    height: 15px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: var(--rb-solid, #fff) !important;
    color: var(--rebbify-purple, #7C4DFF) !important;
    font-size: 10px !important;
    box-shadow: 0 0 0 1px #ece9f5 !important;
}

@media (max-width: 520px) {
    #rebbifyPixCheckoutScreen.rebbify-pix-checkout-screen {
        padding: max(6px, env(safe-area-inset-top)) 6px max(6px, env(safe-area-inset-bottom)) !important;
        align-items: center !important;
        background: rgba(17, 24, 39, .50) !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-checkout {
        width: 100% !important;
        height: auto !important;
        max-width: 392px !important;
        max-height: calc(100dvh - max(12px, env(safe-area-inset-top) + env(safe-area-inset-bottom))) !important;
        border-radius: 14px !important;
        box-shadow: 0 16px 42px rgba(17, 24, 39, .23) !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-security {
        margin: 8px 8px 0 !important;
        min-height: 44px !important;
        padding: 8px 10px !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-checkout__body {
        padding: 14px 10px 12px !important;
        overflow-y: auto !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-summary {
        margin-bottom: 13px !important;
        padding: 12px 6px !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-summary__item {
        padding: 0 5px !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-summary__item > strong {
        font-size: 17px !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-summary__item > small {
        font-size: 10px !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-brand {
        margin-bottom: 11px !important;
        padding-top: 12px !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-brand img {
        width: 116px !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-instructions {
        margin-bottom: 12px !important;
        font-size: 12px !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-copy-button {
        min-height: 54px !important;
        font-size: 12px !important;
    }

    #rebbifyPixCheckoutScreen .rebbify-pix-howto {
        padding: 13px 10px !important;
    }
}


/* ========================================================================
   2026-09-24 — centralização real dos ícones de recomendações
   Escopo exclusivo ao autocomplete de /user/ride/process-step.
   ======================================================================== */
#pickup_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .location__icon,
#destination_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .location__icon,
#pickup_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .menu-icon,
#destination_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .menu-icon {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    flex: 0 0 48px !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 999px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: grid !important;
    place-items: center !important;
    align-self: center !important;
    line-height: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background: var(--rb-soft, #f4f1f8) !important;
}
#pickup_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .location__icon img,
#destination_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .location__icon img,
#pickup_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .menu-icon img,
#destination_suggestions.rebbify-location-dropdown .search-input-dropdown__item > .menu-icon img {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    display: block !important;
    position: static !important;
    inset: auto !important;
    transform: translateY(-1px) !important;
    object-fit: contain !important;
    margin: 0 !important;
    padding: 0 !important;
}
#pickup_suggestions.rebbify-location-dropdown .search-input-dropdown__item,
#destination_suggestions.rebbify-location-dropdown .search-input-dropdown__item {
    grid-template-columns: none !important;
    align-items: center !important;
}

/* ======================================================================================
   REBBIFY 2026-09-24 — Central de Segurança do passageiro
   Escopo restrito ao FAB e ao popup #rideSafetyModal. Nenhum outro componente é alterado.
   ====================================================================================== */
.ride-safety-floating-button {
    top: 16px !important;
    right: 16px !important;
    bottom: auto !important;
    left: auto !important;
    width: auto !important;
    min-width: 128px;
    height: 50px !important;
    padding: 0 17px !important;
    gap: 9px;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    background: #26133f !important;
    color: #fff !important;
    font-family: var(--rb-font);
    font-size: 15px !important;
    font-weight: 800;
    letter-spacing: -.01em;
    box-shadow: 0 10px 28px rgba(30, 15, 52, .28) !important;
    transform: none !important;
    z-index: 60 !important;
}

.ride-safety-floating-button > i {
    color: #9c7cff;
    font-size: 23px;
    line-height: 1;
}

.ride-safety-floating-button:hover,
.ride-safety-floating-button:focus-visible {
    background: #311953 !important;
    color: #fff !important;
    box-shadow: 0 12px 30px rgba(30, 15, 52, .34) !important;
}

#rideSafetyModal {
    --safety-purple: #7c4dff;
    --safety-purple-dark: #26133f;
    --safety-purple-soft: #f3efff;
    --safety-text: #17141d;
    --safety-muted: #706b79;
    --safety-border: #ece9f1;
    --safety-surface: #f7f6f9;
    font-family: var(--rb-font);
    color: var(--safety-text);
}

#rideSafetyModal .ride-safety-sheet-dialog {
    width: min(560px, calc(100% - 32px));
    max-width: 560px;
    min-height: calc(100% - 3.5rem);
    margin: 1.75rem auto;
    display: flex;
    align-items: center;
    pointer-events: none;
}

#rideSafetyModal .ride-safety-sheet {
    width: 100%;
    max-height: min(820px, calc(100dvh - 48px));
    border: 0;
    border-radius: 26px;
    overflow: hidden;
    background: var(--rb-solid, #fff);
    box-shadow: 0 30px 90px rgba(23, 14, 38, .24);
    pointer-events: auto;
}

#rideSafetyModal .ride-safety-view {
    display: none;
    min-height: 0;
    max-height: inherit;
    flex-direction: column;
    background: var(--rb-solid, #fff);
}

#rideSafetyModal .ride-safety-view.is-active {
    display: flex;
}

#rideSafetyModal .ride-safety-sheet__header {
    display: grid;
    grid-template-columns: 46px 1fr 46px;
    align-items: center;
    gap: 8px;
    padding: 14px 18px 8px;
    flex: 0 0 auto;
    background: var(--rb-solid, #fff);
}

#rideSafetyModal .ride-safety-sheet__header > strong {
    text-align: center;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.02em;
}

#rideSafetyModal .ride-safety-icon-button,
#rideSafetyModal .ride-safety-header-spacer {
    width: 44px;
    height: 44px;
}

#rideSafetyModal .ride-safety-icon-button {
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: var(--rb-soft, #f5f3f7);
    color: var(--safety-text);
    font-size: 26px;
    cursor: pointer;
}

#rideSafetyModal .ride-safety-icon-button:hover,
#rideSafetyModal .ride-safety-icon-button:focus-visible {
    background: var(--rb-soft, #ece8f2);
    outline: none;
}

#rideSafetyModal .ride-safety-sheet__scroll {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 10px 22px 24px;
}

#rideSafetyModal .ride-safety-title {
    margin: 10px 0 20px;
    color: var(--safety-text);
    font-size: clamp(25px, 5vw, 32px);
    font-weight: 850;
    line-height: 1.12;
    letter-spacing: -.035em;
}

#rideSafetyModal .ride-safety-subtitle {
    margin: -8px 0 22px;
    color: var(--safety-muted);
    font-size: 14px;
    line-height: 1.55;
}

#rideSafetyModal .ride-safety-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

#rideSafetyModal .ride-safety-quick-card {
    position: relative;
    min-width: 0;
    min-height: 154px;
    padding: 17px 9px 13px;
    border: 1px solid var(--rb-border, #ebe8ef);
    border-radius: 20px;
    background: var(--rb-soft, #f6f5f7);
    color: var(--safety-text);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 9px;
    text-align: center;
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

#rideSafetyModal .ride-safety-quick-card:hover,
#rideSafetyModal .ride-safety-quick-card:focus-visible {
    border-color: rgba(124,77,255,.35);
    background: var(--rb-brand-soft, #f3efff);
    outline: none;
    transform: translateY(-1px);
}

#rideSafetyModal .ride-safety-quick-card.is-disabled {
    opacity: .48;
}

#rideSafetyModal .ride-safety-quick-card.is-loading {
    pointer-events: none;
    opacity: .65;
}

#rideSafetyModal .ride-safety-quick-card.is-recording {
    border-color: rgba(210, 49, 69, .45);
    background: var(--rb-soft, #fff4f5);
}

#rideSafetyModal .ride-safety-quick-card__icon {
    width: 56px;
    height: 56px;
    border-radius: 17px;
    display: grid;
    place-items: center;
    background: var(--rb-solid, #fff);
    color: var(--rb-text, #4d4658);
    box-shadow: 0 6px 18px rgba(39, 28, 55, .06);
    font-size: 28px;
}

#rideSafetyModal .ride-safety-quick-card--danger .ride-safety-quick-card__icon {
    color: #d94152;
}

#rideSafetyModal .ride-safety-quick-card.is-recording .ride-safety-quick-card__icon {
    color: #d12d42;
}

#rideSafetyModal .ride-safety-quick-card__label {
    width: 100%;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.28;
    overflow-wrap: anywhere;
}

#rideSafetyModal .ride-safety-quick-card__badge {
    position: absolute;
    top: -9px;
    left: 50%;
    transform: translateX(-50%);
    max-width: calc(100% - 12px);
    padding: 4px 8px;
    border-radius: 7px;
    background: var(--safety-purple);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.15;
    white-space: nowrap;
}

#rideSafetyModal .ride-safety-quick-card.is-recording .ride-safety-quick-card__badge {
    background: #d12d42;
}

#rideSafetyModal .ride-safety-quick-card__meta {
    min-height: 13px;
    color: var(--safety-muted);
    font-size: 10px;
    line-height: 1.15;
}

#rideSafetyModal .ride-safety-preference-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 56px;
    gap: 10px;
    margin-top: 18px;
}

#rideSafetyModal .ride-safety-preference-main,
#rideSafetyModal .ride-safety-preference-more {
    min-height: 58px;
    border: 1.5px solid rgba(124,77,255,.58);
    border-radius: 16px;
    background: var(--rb-brand-soft, #f2eeff);
    color: #4e2bb9;
}

#rideSafetyModal .ride-safety-preference-main {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 0 16px;
    text-align: left;
    font-size: 14px;
    font-weight: 800;
}

#rideSafetyModal .ride-safety-preference-main i {
    flex: 0 0 auto;
    font-size: 24px;
}

#rideSafetyModal .ride-safety-preference-more {
    display: grid;
    place-items: center;
    font-size: 25px;
}

#rideSafetyModal .ride-safety-protection {
    margin-top: 28px;
}

#rideSafetyModal .ride-safety-protection > h3 {
    margin: 0 0 15px;
    font-size: 23px;
    line-height: 1.16;
    font-weight: 850;
    letter-spacing: -.03em;
}

#rideSafetyModal .ride-safety-carousel {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    padding: 1px;
}

#rideSafetyModal .ride-safety-carousel::-webkit-scrollbar { display: none; }

#rideSafetyModal .ride-safety-protection-card {
    flex: 0 0 calc(100% - 2px);
    min-height: 176px;
    scroll-snap-align: center;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 116px;
    gap: 15px;
    align-items: center;
    padding: 18px;
    border: 1px solid var(--rb-border, #ebe8ef);
    border-radius: 20px;
    background: var(--rb-solid, #fff);
}

#rideSafetyModal .ride-safety-active-badge {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 8px;
    padding: 4px 8px;
    border-radius: 7px;
    background: var(--rb-brand-soft, #e9e2ff);
    color: #5b34ca;
    font-size: 11px;
    font-weight: 850;
}

#rideSafetyModal .ride-safety-active-badge.is-off {
    background: var(--rb-soft, #eeeef0);
    color: var(--rb-muted, #79757f);
}

#rideSafetyModal .ride-safety-protection-card h4 {
    margin: 0 0 7px;
    font-size: 17px;
    line-height: 1.25;
    font-weight: 850;
}

#rideSafetyModal .ride-safety-protection-card p {
    margin: 0;
    color: var(--safety-muted);
    font-size: 13px;
    line-height: 1.48;
}

#rideSafetyModal .ride-safety-protection-card__art {
    width: 116px;
    height: 90px;
}

#rideSafetyModal .ride-safety-protection-card__art svg {
    display: block;
    width: 100%;
    height: 100%;
}

#rideSafetyModal .ride-safety-protection-card__art--icon {
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: var(--rb-brand-soft, #f2eeff);
    color: var(--safety-purple);
    font-size: 42px;
}

#rideSafetyModal .ride-safety-dots {
    display: flex;
    justify-content: center;
    gap: 9px;
    padding-top: 13px;
}

#rideSafetyModal .ride-safety-dots button {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--rb-soft, #d3d0d7);
    transition: width .18s ease, background .18s ease;
}

#rideSafetyModal .ride-safety-dots button.is-active {
    width: 22px;
    border-radius: 99px;
    background: var(--safety-purple);
}

/* Tela de emergência dentro do mesmo popup */
#rideSafetyModal .ride-safety-police-screen {
    padding-bottom: 28px;
}

#rideSafetyModal .ride-safety-emergency-heading {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 10px 0 12px;
}

#rideSafetyModal .ride-safety-emergency-icon {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    background: var(--rb-soft, #fff0f2);
    color: #ca2f41;
    font-size: 30px;
}

#rideSafetyModal .ride-safety-emergency-heading small {
    display: block;
    color: var(--safety-muted);
    font-size: 12px;
}

#rideSafetyModal .ride-safety-emergency-heading h2 {
    margin: 0;
    font-size: 32px;
    font-weight: 900;
    line-height: 1;
}

#rideSafetyModal .ride-safety-emergency-note {
    margin: 0 0 4px;
    color: var(--rb-text, #5f5968);
    font-size: 13px;
    line-height: 1.55;
}

#rideSafetyModal .ride-safety-link-button {
    padding: 0;
    border: 0;
    background: transparent;
    color: #633bd5;
    font-size: 13px;
    font-weight: 800;
    text-align: left;
}

#rideSafetyModal .ride-safety-live-block {
    margin-top: 22px;
    border: 1px solid var(--safety-border);
    border-radius: 20px;
    overflow: hidden;
    background: var(--rb-solid, #fff);
}

#rideSafetyModal .ride-safety-live-row {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 12px;
    align-items: flex-start;
    padding: 17px;
}

#rideSafetyModal .ride-safety-live-row + .ride-safety-live-row {
    border-top: 1px solid var(--safety-border);
}

#rideSafetyModal .ride-safety-live-row__icon {
    width: 46px;
    height: 46px;
    border-radius: 15px;
    display: grid;
    place-items: center;
    background: var(--rb-brand-soft, #f3efff);
    color: var(--safety-purple);
    font-size: 25px;
}

#rideSafetyModal .ride-safety-live-row__icon--location {
    background: var(--rb-brand-soft, #edf4ff);
    color: #4b7edc;
}

#rideSafetyModal .ride-safety-live-row small {
    display: block;
    margin-bottom: 4px;
    color: var(--safety-muted);
    font-size: 11px;
}

#rideSafetyModal .ride-safety-live-row strong {
    display: block;
    color: var(--safety-text);
    font-size: 15px;
    line-height: 1.38;
    font-weight: 800;
}

#rideSafetyModal .ride-safety-coordinate {
    display: block;
    margin-top: 5px;
    color: var(--rb-muted, #8a8491);
    font-size: 10px;
    line-height: 1.35;
}

#rideSafetyModal .ride-safety-link-button--small {
    margin-top: 8px;
    font-size: 11px;
}

#rideSafetyModal .ride-safety-slider-wrap {
    margin-top: 22px;
}

#rideSafetyModal .ride-safety-slider {
    --ride-safety-slider-progress: 0%;
    position: relative;
    height: 64px;
    border-radius: 18px;
    overflow: hidden;
    background: linear-gradient(90deg, #c12c3e 0 var(--ride-safety-slider-progress), #28242c var(--ride-safety-slider-progress) 100%);
    user-select: none;
    touch-action: none;
}

#rideSafetyModal .ride-safety-slider__label {
    position: absolute;
    inset: 0 10px 0 80px;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 14px;
    font-weight: 850;
    pointer-events: none;
}

#rideSafetyModal .ride-safety-slider__thumb {
    position: absolute;
    left: 6px;
    top: 6px;
    width: 52px;
    height: 52px;
    padding: 0;
    border: 0;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: #e64054;
    color: #fff;
    font-size: 25px;
    box-shadow: 0 4px 12px rgba(0,0,0,.18);
    cursor: grab;
    touch-action: none;
    will-change: transform;
}

#rideSafetyModal .ride-safety-slider__thumb:active { cursor: grabbing; }

#rideSafetyModal .ride-safety-slider-help {
    margin: 8px 3px 0;
    color: var(--safety-muted);
    font-size: 11px;
    line-height: 1.4;
    text-align: center;
}

/* Preferências de segurança */
#rideSafetyModal .ride-safety-pref-list {
    display: flex;
    flex-direction: column;
}

#rideSafetyModal .ride-safety-pref-item {
    position: relative;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 28px;
    gap: 12px;
    align-items: center;
    padding: 17px 0;
    cursor: pointer;
}

#rideSafetyModal .ride-safety-pref-item + .ride-safety-pref-item {
    border-top: 1px solid var(--safety-border);
}

#rideSafetyModal .ride-safety-pref-item__icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: var(--rb-soft, #f4f1fa);
    color: var(--rb-text, #554c63);
    font-size: 25px;
}

#rideSafetyModal .ride-safety-pref-item__copy {
    min-width: 0;
}

#rideSafetyModal .ride-safety-pref-item__copy strong,
#rideSafetyModal .ride-safety-pref-item__copy small {
    display: block;
}

#rideSafetyModal .ride-safety-pref-item__copy strong {
    color: var(--safety-text);
    font-size: 14px;
    line-height: 1.35;
    font-weight: 800;
}

#rideSafetyModal .ride-safety-pref-item__copy small {
    margin-top: 4px;
    color: var(--safety-muted);
    font-size: 12px;
    line-height: 1.45;
}

#rideSafetyModal .ride-safety-pref-item input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

#rideSafetyModal .ride-safety-checkmark {
    width: 25px;
    height: 25px;
    border: 2px solid var(--rb-border, #bdb8c4);
    border-radius: 7px;
    display: grid;
    place-items: center;
    background: var(--rb-solid, #fff);
    color: transparent;
    font-size: 17px;
}

#rideSafetyModal .ride-safety-pref-item input:checked + .ride-safety-checkmark {
    border-color: var(--safety-purple);
    background: var(--safety-purple);
    color: #fff;
}

#rideSafetyModal .ride-safety-preferences-footer {
    padding: 12px 22px calc(14px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--safety-border);
    background: rgba(255,255,255,.98);
    flex: 0 0 auto;
}

#rideSafetyModal .ride-safety-preferences-footer button {
    width: 100%;
    min-height: 54px;
    border: 0;
    border-radius: 14px;
    background: var(--safety-purple);
    color: #fff;
    font-size: 16px;
    font-weight: 850;
}

@media (max-width: 767px) {
    .ride-safety-floating-button {
        position: absolute !important;
        top: 12px !important;
        right: 12px !important;
        bottom: auto !important;
        min-width: 118px;
        height: 46px !important;
        padding: 0 14px !important;
        font-size: 14px !important;
    }

    #rideSafetyModal .ride-safety-sheet-dialog {
        width: 100%;
        max-width: none;
        min-height: 100%;
        margin: 0;
        align-items: flex-end;
    }

    #rideSafetyModal .ride-safety-sheet {
        max-height: min(91dvh, 860px);
        border-radius: 26px 26px 0 0;
        box-shadow: 0 -18px 70px rgba(25, 16, 39, .24);
    }

    #rideSafetyModal .ride-safety-sheet__header {
        padding: 12px 16px 7px;
    }

    #rideSafetyModal .ride-safety-sheet__scroll {
        padding: 8px 16px 22px;
    }

    #rideSafetyModal .ride-safety-action-grid {
        gap: 8px;
    }

    #rideSafetyModal .ride-safety-quick-card {
        min-height: 142px;
        padding-left: 6px;
        padding-right: 6px;
        border-radius: 18px;
    }

    #rideSafetyModal .ride-safety-quick-card__icon {
        width: 50px;
        height: 50px;
        font-size: 25px;
    }

    #rideSafetyModal .ride-safety-quick-card__label {
        font-size: 11px;
    }

    #rideSafetyModal .ride-safety-protection-card {
        grid-template-columns: minmax(0, 1fr) 88px;
        min-height: 166px;
        padding: 16px;
    }

    #rideSafetyModal .ride-safety-protection-card__art {
        width: 88px;
        height: 76px;
    }

    #rideSafetyModal .ride-safety-pref-item {
        grid-template-columns: 43px minmax(0, 1fr) 26px;
        gap: 10px;
    }

    #rideSafetyModal .ride-safety-preferences-footer {
        padding-left: 16px;
        padding-right: 16px;
    }
}

@media (max-width: 380px) {
    .ride-safety-floating-button {
        min-width: 108px;
        height: 43px !important;
        padding: 0 12px !important;
        gap: 7px;
        font-size: 13px !important;
    }

    #rideSafetyModal .ride-safety-quick-card {
        min-height: 134px;
    }

    #rideSafetyModal .ride-safety-quick-card__icon {
        width: 46px;
        height: 46px;
    }

    #rideSafetyModal .ride-safety-protection-card {
        grid-template-columns: 1fr;
    }

    #rideSafetyModal .ride-safety-protection-card__art {
        display: none;
    }
}

/* ==========================================================
   2026-09-24 — Fluxo Web de encerramento sem reload
   Escopo: /user/ride/process-step
   ========================================================== */
.ride-reconnect-banner{
    position:fixed;
    top:74px;
    left:50%;
    z-index:1200;
    transform:translate(-50%,-10px);
    display:flex;
    align-items:center;
    gap:8px;
    min-height:38px;
    padding:8px 14px;
    border: 1px solid rgba(124,77,255,.18);
    border-radius:12px;
    background: rgba(255,255,255,.96);
    color: #3f2a72;
    box-shadow:0 10px 30px rgba(35,24,61,.12);
    font:600 13px/1.2 var(--rb-font);
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease,transform .18s ease;
}
.ride-reconnect-banner.is-visible{opacity:1;transform:translate(-50%,0)}
.ride-reconnect-banner__dot{width:8px;height:8px;border-radius:50%;background: #7C4DFF;box-shadow:0 0 0 4px rgba(124,77,255,.13);animation:rebbifyReconnectPulse 1.1s ease-in-out infinite}
@keyframes rebbifyReconnectPulse{0%,100%{opacity:.45;transform:scale(.82)}50%{opacity:1;transform:scale(1)}}

.rebbify-arrival-card,
.rebbify-completion-pending{
    border: 1px solid var(--rb-border, #ebe7f4);
    border-radius:18px;
    background: var(--rb-solid, #fff);
    box-shadow:0 14px 38px rgba(26,17,44,.08);
}
.rebbify-arrival-card{padding:20px;text-align:center}
.rebbify-arrival-card__icon{width:52px;height:52px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background: var(--rb-brand-soft, #f2edff);color: #6f3ef4;font-size:25px}
.rebbify-arrival-card__copy h5{margin:0 0 7px;font:800 20px/1.2 "Space Grotesk",var(--rb-font);color:var(--rb-text,#15131a)}
.rebbify-arrival-card__copy p{margin:0 0 17px;font:500 13px/1.5 var(--rb-font);color:var(--rb-muted,#686270)}
.rebbify-arrival-card .ride-confirm-arrival-btn{min-height:52px;border-radius:12px;background: #7C4DFF;border-color: #7C4DFF;font-weight:800}
.rebbify-arrival-card .ride-confirm-arrival-btn:hover,.rebbify-arrival-card .ride-confirm-arrival-btn:focus{background: #6c3ce8;border-color:#6c3ce8}

.rebbify-arrival-dialog{max-width:430px;padding:14px}
.rebbify-arrival-modal{border: 0;border-radius:22px;padding:26px 24px 22px;text-align:center;box-shadow:0 28px 90px rgba(17,12,28,.22)}
.rebbify-arrival-modal__icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background: var(--rb-brand-soft, #f1ecff);color: #6b3df0;font-size:30px}
.rebbify-arrival-modal h3{margin:0 0 9px;font:800 25px/1.18 "Space Grotesk",var(--rb-font);color:var(--rb-text,#15131a)}
.rebbify-arrival-modal p{margin:0 0 20px;font:500 14px/1.5 var(--rb-font);color:var(--rb-muted,#69636f)}
.rebbify-arrival-modal .ride-confirm-arrival-btn{min-height:54px;border-radius:12px;background: #7C4DFF;border-color: #7C4DFF;font-weight:800}
.rebbify-arrival-modal__status{display:block;min-height:18px;margin-top:10px;color: var(--rb-muted, #6c6474);font-size:12px}
.ride-confirm-arrival-btn.is-loading{opacity:.72;cursor:wait}

.rebbify-completion-pending{padding:18px;display:flex;align-items:center;gap:14px}
.rebbify-completion-pending__spinner{width:30px;height:30px;flex:0 0 30px;border: 3px solid var(--rb-border, #e7e0fa);border-top-color: #7C4DFF;border-radius:50%;animation:rebbifySpin .8s linear infinite}
.rebbify-completion-pending h6{font:800 16px/1.25 "Space Grotesk",var(--rb-font);color:var(--rb-text,#17131e)}
.rebbify-completion-pending p{font:500 12.5px/1.45 var(--rb-font);color:var(--rb-muted,#6d6674)}
@keyframes rebbifySpin{to{transform:rotate(360deg)}}

.ride-chat-floating-button{
    position:absolute;
    right:22px;
    top:132px;
    z-index:31;
    min-height:44px;
    padding:0 15px;
    border: 0;
    border-radius:999px;
    display:flex;
    align-items:center;
    gap:8px;
    background: var(--rb-solid, #fff);
    color: #51318d;
    box-shadow:0 10px 26px rgba(30,20,48,.16);
    font:800 13px/1 var(--rb-font);
}
.ride-chat-floating-button i{font-size:19px;color:#7C4DFF}
.ride-chat-floating-button:hover,.ride-chat-floating-button:focus{background: var(--rb-brand-soft, #f8f5ff);color:#412574}

.rebbify-chat-dialog{max-width:430px;padding:12px}
.rebbify-chat-modal{height:min(620px,78vh);border: 0;border-radius:22px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;box-shadow:0 28px 90px rgba(17,12,28,.22)}
.rebbify-chat-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom: 1px solid var(--rb-border, #eeeaf4);background:var(--rb-solid,#fff)}
.rebbify-chat-modal__header h5{margin:0;font:800 17px/1.25 "Space Grotesk",var(--rb-font);color:var(--rb-text,#17131e)}
.rebbify-chat-modal__header small{display:block;margin-top:2px;color: var(--rb-muted, #7a7480);font-size:12px}
.rebbify-chat-close{width:38px;height:38px;border: 0;border-radius:50%;display:grid;place-items:center;background: var(--rb-soft, #f4f1f7);color: var(--rb-text, #17131e);font-size:20px}
.rebbify-chat-messages{overflow-y:auto;padding:15px;background: var(--rb-soft, #f8f7fa);display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain}
.rebbify-chat-empty{margin:auto;text-align:center;max-width:260px;color: var(--rb-muted, #817a87);font-size:13px;line-height:1.45}
.rebbify-chat-bubble{max-width:82%;padding:9px 11px;border-radius:15px;background: var(--rb-solid, #fff);border: 1px solid var(--rb-border, #ebe7f1);color: var(--rb-text, #25202b);font:500 13px/1.45 var(--rb-font);box-shadow:0 3px 9px rgba(24,16,38,.04)}
.rebbify-chat-bubble.is-rider{align-self:flex-end;background: #7C4DFF;border-color: #7C4DFF;color: #fff;border-bottom-right-radius:5px}
.rebbify-chat-bubble.is-driver{align-self:flex-start;border-bottom-left-radius:5px}
.rebbify-chat-bubble time{display:block;margin-top:4px;font-size:9.5px;opacity:.66;text-align:right}
.rebbify-chat-compose{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:8px;padding:11px 12px calc(11px + env(safe-area-inset-bottom));border-top: 1px solid var(--rb-border, #eeeaf4);background:var(--rb-solid,#fff)}
.rebbify-chat-compose input{width:100%;min-height:46px;border: 1px solid var(--rb-border, #ded8e8);border-radius:12px;padding:0 13px;outline:0;color: var(--rb-text, #211b27);background: var(--rb-solid, #fff);font-size:14px}
.rebbify-chat-compose input:focus{border-color: #8c64f5;box-shadow:0 0 0 3px rgba(124,77,255,.1)}
.rebbify-chat-compose button{width:46px;height:46px;border: 0;border-radius:12px;display:grid;place-items:center;background: #7C4DFF;color: #fff;font-size:20px}
.rebbify-chat-compose button:disabled{opacity:.55}

@media(max-width:767px){
    .ride-reconnect-banner{top:12px;max-width:calc(100vw - 24px)}
    .ride-chat-floating-button{right:12px;top:118px;min-height:42px;padding:0 12px}
    .ride-chat-floating-button span{display:none}
    .ride-chat-floating-button{width:42px;border-radius:50%;justify-content:center}
    .rebbify-chat-dialog{align-items:flex-end;min-height:100%;margin:0 auto;padding:0;max-width:none}
    .rebbify-chat-modal{width:100%;height:min(72vh,620px);border-radius:22px 22px 0 0}
    .rebbify-arrival-dialog{margin:auto;padding:14px}
    .rebbify-arrival-modal{padding:24px 18px 19px}
}

/* Rebbify: resumo terminal da corrida sem tela vazia */
.ride-completed-summary__icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 12px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(124, 77, 255, .12);
    color: #7c4dff;
    font-size: 22px;
}
.ride-completed-summary__details {
    border: 1px solid var(--rb-border, #ececf1);
    border-radius: 14px;
    overflow: hidden;
    background: var(--rb-solid, #fff);
}
.ride-completed-summary__row {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 14px;
    font-size: 14px;
}
.ride-completed-summary__row + .ride-completed-summary__row { border-top: 1px solid var(--rb-border, #ececf1); }
.ride-completed-summary__row span { color: var(--rb-muted, #686873); }
.ride-completed-summary__row strong { color: var(--rb-text, #15151a); text-align: right; }
.ride-completed-summary__reviewed {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(124, 77, 255, .08);
    color: #342273;
    font-size: 14px;
}

/*
 * RESPONSIVIDADE FINAL DA TELA DE CORRIDA
 * ---------------------------------------
 * Não adicionar novos hotfixes aqui. Header mobile, ordem painel/mapa,
 * camadas e contrato inline do agendamento ficam em ride-process-contract.css,
 * carregado por último nesta página.
 */
