/* 25/09/2026 — tema semântico do passageiro sobre a estrutura Blade existente.
   As cores visuais são consumidas por função, não por valor fixo nos componentes. */
:root {
    --rb-font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

    /* Tokens semânticos — tema claro padrão. */
    --background: #ffffff;
    --surface: #ffffff;
    --surface-raised: #ffffff;
    --surface-hover: #f4f4f6;
    --surface-selected: #f7f4ff;
    --text-primary: #202027;
    --text-secondary: #62626f;
    --text-muted: #797985;
    --icon: #303039;
    --border: #e5e5eb;
    --accent: #7c4dff;
    --accent-hover: #6535de;
    --accent-soft: #f2edff;
    --accent-link: #6540d6;
    --focus: #7c4dff;
    --on-accent: #ffffff;
    --success: #198754;
    --danger: #dc3545;
    --shadow-soft: 0 4px 18px rgba(28, 20, 50, .08);
    --rb-skeleton-base: #e7e7eb;
    --rb-skeleton-shine: #f6f6f8;

    /* Compatibilidade com os nomes já usados no projeto. */
    --rb-bg: var(--background);
    --rb-solid: var(--surface);
    --rb-surface: var(--surface-raised);
    --rb-soft: var(--surface-hover);
    --rb-selected: var(--surface-selected);
    --rb-text: var(--text-primary);
    --rb-muted: var(--text-secondary);
    --rb-icon: var(--icon);
    --rb-border: var(--border);
    --rb-brand: var(--accent);
    --rb-brand-hover: var(--accent-hover);
    --rb-brand-soft: var(--accent-soft);
    --rb-link: var(--accent-link);
    --rb-focus: var(--focus);
    --rb-on-accent: var(--on-accent);
    --rb-success: var(--success);
    --rb-danger: var(--danger);
    --rb-shadow: var(--shadow-soft);

    /* Cabeçalho público: claro por padrão; roxo fica somente como cor de ação. */
    --rb-site-header-bg: #ffffff;
    --rb-site-header-text: #202027;
    --rb-site-header-cta-bg: #f4f4f6;
    --rb-site-header-cta-text: #202027;
    --rb-site-header-dropdown: #ffffff;
    --rb-site-header-dropdown-hover: #f4f4f6;
    --rb-site-header-muted: #62626f;
    --rb-site-header-mobile-dropdown: #ffffff;
    --rb-site-header-mobile-divider: #e5e5eb;

    --rb-member-bg: #eee7ff;
    --rb-member-border: #ddd2fb;
    --rb-member-text: #111111;
    --rb-member-hover: #5b21b6;
    --rb-member-hover-bg: rgba(109, 40, 217, .09);

    --rb-footer-bg: #000000;
    --rb-footer-text: #ffffff;
    --rb-footer-muted: #d4d4d4;
    --rb-footer-line: #222222;
    --rb-footer-hover: #a98cff;
    --rb-footer-context-bg: #0b0b0b;
    --rb-footer-context-hover: #171717;
    --rb-footer-context-line: rgba(255, 255, 255, .28);

    --rebbify-font: var(--rb-font);
    --heading-font: var(--rb-font);
    --body-font: var(--rb-font);
}
/* O site público usa o mesmo tema claro/escuro, sem transformar o roxo em fundo do menu. */
.rebbify-public-ui {
    --rb-bg: var(--background);
    --rb-solid: var(--surface);
    --rb-surface: var(--surface-raised);
    --rb-soft: var(--surface-hover);
    --rb-selected: var(--surface-selected);
    --rb-text: var(--text-primary);
    --rb-muted: var(--text-secondary);
    --rb-icon: var(--icon);
    --rb-border: var(--border);
    --rb-brand: var(--accent);
    --rb-brand-hover: var(--accent-hover);
    --rb-brand-soft: var(--accent-soft);
    --rb-link: var(--accent-link);
    --rb-focus: var(--focus);
    --rb-on-accent: var(--on-accent);
    --rb-shadow: var(--shadow-soft);

    --rb-site-header-bg: var(--rb-solid);
    --rb-site-header-text: var(--rb-text);
    --rb-site-header-cta-bg: var(--rb-soft);
    --rb-site-header-cta-text: var(--rb-text);
    --rb-site-header-dropdown: var(--rb-surface);
    --rb-site-header-dropdown-hover: var(--rb-soft);
    --rb-site-header-muted: var(--rb-muted);
    --rb-site-header-mobile-dropdown: var(--rb-surface);
    --rb-site-header-mobile-divider: var(--rb-border);

    background: var(--rb-bg);
    color: var(--rb-text);
    color-scheme: light;
}
html[data-theme="dark"] .rebbify-public-ui {
    --background: #101014;
    --surface: #18181d;
    --surface-raised: #1c1c22;
    --surface-hover: #24242b;
    --surface-selected: #211d2b;
    --text-primary: #f5f5f8;
    --text-secondary: #c2c2cc;
    --text-muted: #9494a1;
    --icon: #e7e7ec;
    --border: #32323b;
    --accent-soft: #2a2438;
    --accent-link: #c4acff;
    --focus: #b69aff;
    --shadow-soft: 0 4px 18px rgba(0,0,0,.20);
    color-scheme: dark;
}

.rebbify-passenger-ui {
    /* Reaplica os aliases no próprio body para que o conjunto dark resolva os tokens locais. */
    --rb-bg: var(--background);
    --rb-solid: var(--surface);
    --rb-surface: var(--surface-raised);
    --rb-soft: var(--surface-hover);
    --rb-selected: var(--surface-selected);
    --rb-text: var(--text-primary);
    --rb-muted: var(--text-secondary);
    --rb-icon: var(--icon);
    --rb-border: var(--border);
    --rb-brand: var(--accent);
    --rb-brand-hover: var(--accent-hover);
    --rb-brand-soft: var(--accent-soft);
    --rb-link: var(--accent-link);
    --rb-focus: var(--focus);
    --rb-on-accent: var(--on-accent);
    --rb-success: var(--success);
    --rb-danger: var(--danger);
    --rb-shadow: var(--shadow-soft);

    background: var(--rb-bg);
    color: var(--rb-text);
    color-scheme: light;
    --heading-color: 240 10% 14%;
    --body-color: 240 6% 40%;
    --border-color: 240 13% 91%;
    --bs-body-color: var(--rb-text);
    --bs-body-bg: var(--rb-bg);
    --bs-border-color: var(--rb-border);
    --bs-secondary-color: var(--rb-muted);

    --rb-site-header-bg: var(--rb-solid);
    --rb-site-header-text: var(--rb-text);
    --rb-site-header-cta-bg: var(--rb-soft);
    --rb-site-header-cta-text: var(--rb-text);
    --rb-site-header-dropdown: var(--rb-surface);
    --rb-site-header-dropdown-hover: var(--rb-soft);
    --rb-site-header-muted: var(--rb-muted);
    --rb-site-header-mobile-dropdown: var(--rb-surface);
    --rb-site-header-mobile-divider: var(--rb-border);

    --rb-member-bg: var(--rb-solid);
    --rb-member-border: var(--rb-border);
    --rb-member-text: var(--rb-text);
    --rb-member-hover: var(--rb-link);
    --rb-member-hover-bg: var(--rb-soft);

    --rb-footer-bg: var(--rb-solid);
    --rb-footer-text: var(--rb-text);
    --rb-footer-muted: var(--rb-muted);
    --rb-footer-line: var(--rb-border);
    --rb-footer-hover: var(--rb-link);
    --rb-footer-context-bg: var(--rb-soft);
    --rb-footer-context-hover: var(--rb-selected);
    --rb-footer-context-line: var(--rb-border);
}
html[data-theme="dark"] .rebbify-passenger-ui {
    --background: #101014;
    --surface: #18181d;
    --surface-raised: #1c1c22;
    --surface-hover: #24242b;
    --surface-selected: #211d2b;
    --text-primary: #f5f5f8;
    --text-secondary: #c2c2cc;
    --text-muted: #9494a1;
    --icon: #e7e7ec;
    --border: #32323b;
    --accent-soft: #2a2438;
    --accent-link: #c4acff;
    --focus: #b69aff;
    --shadow-soft: 0 4px 18px rgba(0, 0, 0, .20);
    --rb-skeleton-base: #2a2a31;
    --rb-skeleton-shine: #383842;
    --heading-color: 240 20% 96%;
    --body-color: 240 11% 76%;
    --border-color: 240 8% 22%;
    color-scheme: dark;
}
.rebbify-passenger-ui,
.rebbify-public-ui { font-family: var(--rb-font); -webkit-font-smoothing: antialiased; }
.rebbify-passenger-ui :is(h1,h2,h3,h4,h5,h6,input,select,textarea,button,.btn) { font-family: var(--rb-font) !important; }
.rebbify-passenger-ui :is(button,a,input,select,textarea,summary) { transition: color .2s, background-color .2s, border-color .2s; }
.rebbify-passenger-ui :is(button,a,input,select,textarea,summary):focus-visible {
    outline: 3px solid var(--rb-focus) !important; outline-offset: 3px;
}
.rebbify-passenger-ui :is(h1,h2,h3,h4,h5,h6) { color: var(--rb-text); letter-spacing: -.035em; }
.rebbify-passenger-ui :is(.text-muted,.text--muted,.subtitle,.form-text) { color: var(--rb-muted) !important; }
.rebbify-passenger-ui :is(.form-control,.form--control,.input-group-text,.input-group-custom,
.select2-dropdown,.select2-selection,.select2-selection__rendered) {
    background-color: var(--rb-solid) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important;
}
.rebbify-passenger-ui :is(input,textarea)::placeholder { color: var(--rb-muted) !important; opacity: 1; }
.rebbify-passenger-ui :is(.form-label,.custom-form-label) { color: var(--rb-muted) !important; }
.rebbify-passenger-ui :is(.btn--base,.btn--primary) {
    background: var(--rb-brand) !important; border-color: var(--rb-brand) !important; color: var(--rb-on-accent) !important;
    border-radius: 9px; font-weight: 700;
}
.rebbify-passenger-ui :is(.btn--base,.btn--primary):hover { background: var(--rb-brand-hover) !important; }
.rebbify-passenger-ui .btn-outline--base { border-color: var(--rb-link); color: var(--rb-link); }
.rebbify-passenger-ui .btn-outline--base:hover { background: var(--rb-brand); color: var(--rb-on-accent); }
.rebbify-passenger-ui :is(.text--base,a:not(.btn):not([class])) { color: var(--rb-link); }

/* Loading visual inicial, removido pelo passenger-theme.js quando os recursos da tela ficam prontos. */
[data-skeleton-until-ready].skeleton {
    position: relative;
    background: linear-gradient(90deg, var(--rb-skeleton-base) 25%, var(--rb-skeleton-shine) 37%, var(--rb-skeleton-base) 63%) !important;
    background-size: 400% 100% !important;
    animation: skeleton-loading 1.4s ease infinite;
    border-color: transparent !important;
    color: transparent !important;
}
[data-skeleton-until-ready].skeleton.rebbify-field-skeleton > * { opacity: 0 !important; }
[data-skeleton-until-ready].skeleton.rebbify-header-skeleton {
    background: transparent !important;
    animation: none;
}
[data-skeleton-until-ready].skeleton.rebbify-header-skeleton > * { opacity: 0 !important; }
[data-skeleton-until-ready].skeleton.rebbify-header-skeleton::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 16px;
    transform: translateY(-50%);
    border-radius: 7px;
    background: linear-gradient(90deg, rgba(255,255,255,.20) 25%, rgba(255,255,255,.38) 37%, rgba(255,255,255,.20) 63%);
    background-size: 400% 100%;
    animation: skeleton-loading 1.4s ease infinite;
    pointer-events: none;
}
[data-skeleton-until-ready].skeleton.navbar-brand.rebbify-header-skeleton::after { height: 24px; }
[data-skeleton-until-ready].skeleton.header-right.rebbify-header-skeleton::after { height: 34px; }
@keyframes skeleton-loading {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}
@media (prefers-reduced-motion: reduce) {
    [data-skeleton-until-ready].skeleton,
    [data-skeleton-until-ready].skeleton.rebbify-header-skeleton::after { animation: none !important; }
}
@media (min-width: 992px) {
    .rebbify-public-ui .header.rebbify-site-header .navbar-brand.logo img {
        max-width: 116px;
        max-height: 29px;
    }
    .rebbify-public-ui .header.rebbify-site-header .nav-menu { padding-left: 28px; }
    .rebbify-public-ui .header.rebbify-site-header .nav-menu .nav-item { margin-right: 12px; }
    .rebbify-public-ui .header.rebbify-site-header .nav-menu .nav-item:last-child { margin-left: 16px; }
    .rebbify-public-ui .header.rebbify-site-header .nav-menu .nav-item .nav-link {
        font-size: 13px !important;
        padding-left: 7px !important;
        padding-right: 7px !important;
    }
    .rebbify-public-ui .header.rebbify-site-header .header-right { gap: 12px; }
    .rebbify-public-ui .header.rebbify-site-header .app-download-btn {
        height: 36px !important;
        padding: 7px 14px !important;
        font-size: 12.5px;
    }
    .rebbify-public-ui .header.rebbify-site-header .rebbify-header-login { font-size: 13px; }
}
@media (max-width: 991px) {
    .rebbify-public-ui .header.rebbify-site-header .navbar-collapse {
        background: var(--rb-site-header-mobile-dropdown) !important;
    }
    .rebbify-public-ui .header.rebbify-site-header .rebbify-about-dropdown li .dropdown-item:hover,
    .rebbify-public-ui .header.rebbify-site-header .rebbify-about-dropdown li .dropdown-item:focus {
        background: rgba(255, 255, 255, .12) !important;
    }
    .rebbify-public-ui .header.rebbify-site-header .navbar-brand.logo img {
        max-width: 110px;
        max-height: 28px;
    }
    .rebbify-public-ui .header.rebbify-site-header .nav-menu { margin-top: 12px; }
    .rebbify-public-ui .header.rebbify-site-header .nav-item .nav-link { font-size: 14px; }
    .rebbify-public-ui .header.rebbify-site-header .rebbify-about-heading {
        color: var(--rb-site-header-text) !important;
        opacity: .78;
    }
}

/* Cabeçalho e páginas da conta: superfícies e textos usam o mesmo conjunto de cores. */
.header.rebbify-site-header, .header.rebbify-site-header.fixed-header {
    position: sticky !important; top: 0; z-index: 1000; animation: none !important;
}
.rebbify-member-strip { margin-top: 0 !important; }
.driver-dashboard { padding-top: 0 !important; }
.rebbify-site-header ~ .breadcrumb, .rebbify-member-strip ~ .breadcrumb { padding-top: 28px !important; }
.rebbify-passenger-ui :is(.rebbify-site-header,.rebbify-member-strip,.driver-sidebar-menu,
.driver-dashboard-content,.rebbify-profile-identity,.common-card,.card,.card-header,.card-footer,
.modal-content,.dropdown-menu,.rebbify-profile-menu,.rebbify-verification-gate,
.rebbify-intro-card,.rebbify-result-card,.rebbify-price-detail-modal__dialog) {
    background: var(--rb-solid) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important;
}
.rebbify-passenger-ui :is(.driver-dashboard__header,.account-content) { background: var(--rb-bg) !important; }
.rebbify-passenger-ui .driver-dashboard__header { padding: 28px 0; }
.rebbify-passenger-ui .driver-sidebar-menu { border: 0; border-radius: 10px; box-shadow: none; }
.rebbify-passenger-ui .driver-dashboard-content { border: 0; border-radius: 10px; padding: 28px; box-shadow: none; }
.rebbify-passenger-ui :is(.driver-sidebar-menu-list__link,.dropdown-item,.navbar .nav-link,
.driver-profile__info .name,.rebbify-profile-identity strong,.rebbify-intro-card h4,.rebbify-result-card h5) { color: var(--rb-text) !important; }
.rebbify-passenger-ui :is(.driver-sidebar-menu-list__link,.dropdown-item):hover { background: var(--rb-soft) !important; color: var(--rb-text) !important; }
.rebbify-passenger-ui .driver-sidebar-menu-list__item.active > a { background: var(--rb-selected) !important; color: var(--rb-text) !important; }
.rebbify-passenger-ui :is(.driver-profile__info .number,.rebbify-profile-identity small,
.rebbify-intro-card p,.rebbify-result-card p,.rebbify-profile-menu small) { color: var(--rb-muted) !important; }
.rebbify-passenger-ui .table { --bs-table-bg: var(--rb-solid); --bs-table-color: var(--rb-text); color: var(--rb-text); }
.rebbify-passenger-ui .table :is(th,td) { background: var(--rb-solid) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important; }
.rebbify-passenger-ui .table th { background: var(--rb-soft) !important; }
.rebbify-passenger-ui .modal-header, .rebbify-passenger-ui .modal-footer { border-color: var(--rb-border); }
.rebbify-passenger-ui .modal-body { color: var(--rb-text); }
html[data-theme="dark"] .rebbify-passenger-ui .btn-close { filter: invert(1) grayscale(1); }
html[data-theme="dark"] .rebbify-passenger-ui :is(.rebbify-ride-brand,.account-logo,.navbar-brand) img { filter: brightness(0) invert(1); }
html[data-theme="dark"] .rebbify-passenger-ui .bg-white { background: var(--rb-solid) !important; }
html[data-theme="dark"] .rebbify-passenger-ui :is(.text-dark,.text-black) { color: var(--rb-text) !important; }

/* Configurações e cards informativos do perfil. */
.rebbify-account-title { font-size: clamp(24px, 3vw, 30px); font-weight: 700; margin: 0 0 8px; }
.rebbify-settings-page { max-width: 860px; }
.rebbify-settings-section { margin-top: 28px; border: 0; border-radius: 8px; background: var(--rb-surface); }
.rebbify-settings-row { display: flex; align-items: center; gap: 14px; padding: 20px; color: var(--rb-text); text-decoration: none; cursor: pointer; list-style: none; }
.rebbify-settings-row::-webkit-details-marker, .rebbify-help-disclosure > summary::-webkit-details-marker { display: none; }
.rebbify-settings-row > span:nth-child(2) { flex: 1; }
.rebbify-settings-row strong { display: block; font-size: 16px; font-weight: 650; }
.rebbify-settings-row small { display: block; margin-top: 4px; color: var(--rb-muted); font-size: 13px; }
.rebbify-settings-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px; background: var(--rb-soft); color: var(--rb-link); font-size: 24px; }
.rebbify-settings-logout { margin-top: 14px; border: 0; border-radius: 8px; }
.rebbify-settings-logout:hover { background: var(--rb-soft); color: var(--rb-text); }
.rebbify-theme-settings { border: 0; padding: 0 20px 20px; margin: 0; }
.rebbify-theme-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.rebbify-theme-options label { display: flex; align-items: center; gap: 12px; padding: 15px 10px; margin: 0; border: 0; border-radius: 6px; cursor: pointer; color: var(--rb-text); background: transparent; }
.rebbify-theme-options label:has(input:checked) { background: var(--rb-selected); color: var(--rb-text); }
.rebbify-theme-options input { width: 18px; height: 18px; margin: 0; accent-color: var(--rb-brand); }
.rebbify-theme-options small { display: block; color: var(--rb-muted); font-size: 11px; margin-top: 4px; }
#themePreferenceStatus { display: block; color: var(--rb-muted); font-size: 12px; margin-top: 12px; }
.rebbify-help-disclosure { position: relative; }
.rebbify-help-disclosure > summary { list-style: none; cursor: pointer; }
.rebbify-profile-photo { width: fit-content; margin-bottom: 24px; }
.rebbify-profile-photo > summary { padding: 0; border: 2px solid var(--rb-border); border-radius: 50%; overflow: hidden; }
.rebbify-profile-photo > summary:hover { border-color: var(--rb-brand); }
.rebbify-inline-help { background: var(--rb-solid); color: var(--rb-text); border: 1px solid var(--rb-border); border-radius: 12px; padding: 16px; font-size: 13px; line-height: 1.6; box-shadow: var(--rb-shadow); }
.rebbify-profile-photo .rebbify-inline-help { position: absolute; top: calc(100% + 10px); left: 0; width: min(300px,calc(100vw - 64px)); z-index: 20; }
.rebbify-inline-help a { color: var(--rb-link); text-decoration: underline; text-underline-offset: 3px; }
.rebbify-profile-photo .rebbify-inline-help > a { display: block; margin-top: 8px; }
.rebbify-profile-data-help .rebbify-inline-help { margin-top: 10px; }
.rebbify-passenger-ui .driver-profile-form input[readonly] { background: var(--rb-soft) !important; cursor: default; }
.rebbify-shutter[hidden] { display: none !important; }
.rebbify-camera-screen[aria-busy="true"] .rebbify-face-oval { border-color: var(--rb-focus); }

/* A estrutura original (formulário, lista, mapa) recebe proporções consistentes. */
#rebbifyRideApp {
    --ride-topbar-height: 64px;
    --rebbify-ref-display: var(--rb-font);
    --rebbify-ref-body: var(--rb-font);
    --rebbify-ref-ink: var(--rb-text);
    --rebbify-ref-ink-soft: var(--rb-muted);
    --rebbify-ref-ink-faint: var(--rb-muted);
    --rebbify-ref-paper: var(--rb-solid);
    --rebbify-ref-surface: var(--rb-soft);
    --rebbify-ref-surface-deep: var(--rb-soft);
    --rebbify-ref-line: var(--rb-border);
    --rebbify-ref-brand: var(--rb-brand);
    --rebbify-ref-brand-dark: var(--rb-brand-hover);
    --rebbify-ref-brand-tint: var(--rb-brand-soft);
    background: var(--rb-bg) !important; color: var(--rb-text) !important;
    font-family: var(--rb-font) !important;
}
#rebbifyRideApp .rebbify-ride-topbar {
    position: relative !important; inset: auto !important; height: var(--ride-topbar-height) !important;
    min-height: var(--ride-topbar-height) !important; padding: 0 clamp(20px,3.7vw,56px) !important;
    background: var(--rb-solid) !important; border-bottom: 1px solid var(--rb-border) !important; box-shadow: none !important;
    z-index: 100 !important;
}
#rebbifyRideApp .rebbify-ride-brand img { width: 86px; max-height: 34px; object-fit: contain; }
#rebbifyRideApp .rebbify-ride-topbar__left { gap: 30px !important; }
#rebbifyRideApp .rebbify-ride-topbar__right { gap: 14px !important; }
#rebbifyRideApp .rebbify-mode-tab { min-height: 64px !important; padding: 0 16px !important; border-radius: 0 !important; border: 0 !important; border-bottom: 3px solid transparent !important; background: transparent !important; color: var(--rb-muted) !important; font-size: 13px !important; font-weight: 600 !important; }
#rebbifyRideApp .rebbify-mode-tab.is-active { color: var(--rb-link) !important; border-bottom-color: var(--rb-brand) !important; }
#rebbifyRideApp :is(.rebbify-activity-link,.rebbify-top-city-btn) { background: var(--rb-soft) !important; color: var(--rb-text) !important; border: 0 !important; font-size: 12px !important; border-radius: 8px !important; min-height: 36px; }
#rebbifyRideApp .rebbify-top-city-btn { background: var(--rb-brand-soft) !important; color: var(--rb-link) !important; }
#rebbifyRideApp :is(.rebbify-profile-chip,.rebbify-profile-menu__item) { background: transparent !important; color: var(--rb-text) !important; }
#rebbifyRideApp .rebbify-profile-menu__item:hover { background: var(--rb-soft) !important; }
#rebbifyRideApp :is(.rebbify-booking-panel,.rebbify-service-flow,.rebbify-service-results,.rebbify-service-results__header) { background: var(--rb-bg) !important; color: var(--rb-text) !important; border: 0 !important; }
#rebbifyRideApp .rebbify-booking-panel { position: relative !important; inset: auto !important; transform: none !important; min-height: 0 !important; flex: none !important; }
/* Os painéis das próximas etapas não ocupam células vazias na seleção. */
#rebbifyRideApp.is-service-selection :is(.ride_detail_wrapper,.active_ride_wrapper,.running_ride_wrapper,.ride_end_wrapper) { display: none !important; }
#rebbifyRideApp .rebbify-request-card { width: 100% !important; min-width: 0 !important; max-width: none !important; padding: 16px !important; background: var(--rb-surface) !important; border: 0 !important; border-radius: 8px !important; box-shadow: none !important; }
#rebbifyRideApp .rebbify-request-card__title { color: var(--rb-text) !important; font-size: 19px !important; line-height: 1.3 !important; letter-spacing: -.035em !important; font-weight: 700 !important; margin: 0 0 8px !important; }
#rebbifyRideApp .rebbify-request-fields { gap: 10px !important; }
#rebbifyRideApp :is(.rebbify-reference-field-group,.rebbify-reference-options-row) { padding: 0 !important; border: 0 !important; background: transparent !important; gap: 10px !important; }
#rebbifyRideApp .rebbify-location-control { display: grid !important; grid-template-columns: 20px minmax(0,1fr) auto !important; gap: 8px !important; min-height: 56px !important; padding: 8px 10px !important; background: var(--rb-soft) !important; border: 0 !important; border-radius: 6px !important; box-shadow: none !important; }
#rebbifyRideApp .rebbify-location-control:focus-within { border-color: transparent !important; background: var(--rb-selected) !important; box-shadow: none !important; }
#rebbifyRideApp :is(.rebbify-route-icon,.ride-location-field .input-group-custom__icon) { width: 20px !important; min-width: 20px !important; color: var(--rb-link) !important; }
#rebbifyRideApp .rebbify-location-control :is(.form--control,input) { padding: 0 !important; height: auto !important; min-height: 24px !important; font-size: 13px !important; line-height: 1.5 !important; background: transparent !important; border: 0 !important; color: var(--rb-text) !important; min-width: 0 !important; }
#rebbifyRideApp .rebbify-location-control label { font-size: 9px !important; font-weight: 600 !important; letter-spacing: .045em !important; color: var(--rb-muted) !important; }
#rebbifyRideApp .rebbify-time-summary { min-height: 44px !important; background: var(--rb-soft) !important; border: 0 !important; border-radius: 8px !important; color: var(--rb-text) !important; font-size: 13px !important; }
#rebbifyRideApp #rideSearchBtn { min-height: 44px !important; padding: 12px 16px !important; border-radius: 8px !important; background: var(--rb-brand) !important; color: var(--rb-on-accent) !important; box-shadow: none !important; font-size: 13px !important; font-weight: 700 !important; }
#rebbifyRideApp #rideSearchBtn:hover:not(:disabled) { background: var(--rb-brand-hover) !important; transform: none !important; }
#rebbifyRideApp .rebbify-service-title-row h1 { color: var(--rb-text) !important; font-size: clamp(25px,2.2vw,32px) !important; font-weight: 700 !important; line-height: 1.2 !important; letter-spacing: -.045em !important; }
#rebbifyRideApp .rebbify-service-results__header { padding: 0 0 20px !important; margin: 0 !important; }
#rebbifyRideApp .rebbify-service-group__title { margin: 0 0 12px !important; color: var(--rb-text) !important; font-size: 16px !important; font-weight: 650 !important; text-transform: none !important; letter-spacing: -.02em !important; }
#rebbifyRideApp .rebbify-service-group__list { display: grid; gap: 8px !important; }
#rebbifyRideApp .rebbify-service-item { width: 100% !important; margin: 0 !important; border: 2px solid transparent !important; border-radius: 12px !important; background: var(--rb-solid) !important; color: var(--rb-text) !important; box-shadow: none !important; overflow: visible !important; }
#rebbifyRideApp .rebbify-service-item:hover { background: var(--rb-soft) !important; }
#rebbifyRideApp .rebbify-service-item.is-selected { border-color: var(--rb-brand) !important; background: var(--rb-brand-soft) !important; }
#rebbifyRideApp .rebbify-service-item:focus-within { outline: 2px solid var(--rb-focus); outline-offset: 3px; }
#rebbifyRideApp .rebbify-service-label { display: grid !important; grid-template-columns: 100px minmax(0,1fr) max-content !important; grid-template-rows: auto !important; align-items: center !important; gap: 12px !important; width: 100% !important; min-height: 108px !important; padding: 12px !important; margin: 0 !important; border-radius: 10px !important; background: transparent !important; overflow: visible !important; }
#rebbifyRideApp .rebbify-service-radio { position: absolute !important; width: 1px !important; height: 1px !important; margin: 0 !important; opacity: 0 !important; }
#rebbifyRideApp .rebbify-service-image { display: flex !important; align-items: center !important; justify-content: center !important; grid-column: 1 !important; grid-row: 1 !important; width: 100px !important; height: 80px !important; max-width: 100% !important; margin: 0 !important; overflow: hidden !important; }
#rebbifyRideApp .rebbify-service-image img { display: block !important; width: 100% !important; max-width: 100% !important; height: 100% !important; max-height: 100% !important; object-fit: contain !important; transform: none !important; }
#rebbifyRideApp .rebbify-service-image img.is-fallback { transform: scale(1.45) !important; }
#rebbifyRideApp .rebbify-service-copy { grid-column: 2 !important; grid-row: 1 !important; min-width: 0 !important; overflow: visible !important; }
#rebbifyRideApp .rebbify-service-name-row { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 4px 6px !important; overflow: visible !important; }
#rebbifyRideApp .rebbify-service-name { color: var(--rb-text) !important; white-space: normal !important; overflow: visible !important; font-size: 17px !important; font-weight: 700 !important; line-height: 1.3 !important; letter-spacing: -.03em !important; }
#rebbifyRideApp :is(.rebbify-service-meta,.rebbify-service-description) { display: block !important; color: var(--rb-muted) !important; white-space: normal !important; overflow: visible !important; font-size: 12px !important; line-height: 1.5 !important; margin-top: 3px !important; }
#rebbifyRideApp .rebbify-service-capacity { font-size: 11px !important; color: var(--rb-muted) !important; }
#rebbifyRideApp .rebbify-service-price { grid-column: 3 !important; grid-row: 1 !important; align-items: flex-end !important; justify-self: end !important; min-width: 74px !important; width: auto !important; max-width: none !important; text-align: right !important; }
#rebbifyRideApp .rebbify-service-price strong { color: var(--rb-text) !important; font-size: 17px !important; font-weight: 750 !important; white-space: nowrap !important; }
#rebbifyRideApp .rebbify-service-price__original { color: var(--rb-muted) !important; font-size: 11px !important; }
#rebbifyRideApp .rebbify-booking-action-card { background: transparent !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
#rebbifyRideApp .rebbify-booking-actionbar { display: grid !important; grid-template-columns: minmax(120px,.85fr) minmax(0,1.15fr) !important; gap: 12px !important; padding: 12px !important; margin: 0 !important; background: var(--rb-surface) !important; border: 0 !important; border-radius: 8px !important; box-shadow: var(--rb-shadow) !important; }
#rebbifyRideApp .rebbify-actionbar-option { background: transparent !important; color: var(--rb-text) !important; padding: 0 !important; gap: 8px !important; min-width: 0 !important; }
#rebbifyRideApp .rebbify-actionbar-option__icon { background: var(--rb-brand-soft) !important; color: var(--rb-link) !important; border-radius: 7px !important; }
#rebbifyRideApp .rebbify-actionbar-option__copy strong { color: var(--rb-text) !important; font-size: 12px !important; }
#rebbifyRideApp .rebbify-actionbar-option__copy small { color: var(--rb-muted) !important; font-size: 12px !important; }
#rebbifyRideApp .rebbify-actionbar-submit { min-height: 48px !important; border-radius: 8px !important; padding: 10px 12px !important; background: var(--rb-brand) !important; color: var(--rb-on-accent) !important; border: 0 !important; font-size: 13px !important; font-weight: 700 !important; line-height: 1.4 !important; white-space: normal !important; }
#rebbifyRideApp .rebbify-actionbar-submit:hover { background: var(--rb-brand-hover) !important; }

/* Mapa: distância fora da linha da rota; zoom inferior e segurança superior. */
#rebbifyRideApp .rebbify-map-panel { position: relative !important; overflow: hidden !important; border-radius: 12px !important; }
#rebbifyRideApp #map { width: 100% !important; height: 100% !important; min-height: 0 !important; border-radius: inherit !important; }
#rebbifyRideApp .mapboxgl-ctrl-bottom-right { right: 10px; bottom: 20px; }
#rebbifyRideApp .mapboxgl-ctrl-group { background: var(--rb-solid); border: 1px solid var(--rb-border); border-radius: 8px; box-shadow: var(--rb-shadow); overflow: hidden; }
#rebbifyRideApp .mapboxgl-ctrl-group button { width: 36px; height: 36px; border-color: var(--rb-border); }
html[data-theme="dark"] #rebbifyRideApp .mapboxgl-ctrl-group .mapboxgl-ctrl-icon { filter: invert(1); }
#rebbifyRideApp .ride-safety-floating-button { position: absolute !important; top: 14px !important; right: 14px !important; bottom: auto !important; left: auto !important; min-width: 0 !important; height: 42px !important; padding: 0 14px !important; background: var(--rb-solid) !important; color: var(--rb-text) !important; border: 1px solid var(--rb-border) !important; border-radius: 9px !important; box-shadow: var(--rb-shadow) !important; font-family: var(--rb-font) !important; font-size: 13px !important; font-weight: 650 !important; z-index: 45 !important; }
#rebbifyRideApp .ride-safety-floating-button > i { color: var(--rb-link); font-size: 21px; }
#rebbifyRideApp .ride-chat-floating-button { top: 66px !important; right: 14px !important; background: var(--rb-solid) !important; color: var(--rb-text) !important; border: 1px solid var(--rb-border); border-radius: 9px; box-shadow: var(--rb-shadow); font-family: var(--rb-font); }
#rebbifyRideApp .rebbify-map-route-summary { position: absolute; bottom: 30px; left: 14px; max-width: calc(100% - 90px); padding: 10px 14px; background: var(--rb-solid); color: var(--rb-text); border: 1px solid var(--rb-border); border-radius: 8px; box-shadow: var(--rb-shadow); font-size: 12px; font-weight: 600; pointer-events: none; z-index: 4; }
#rebbifyRideApp .rebbify-map-route-summary[hidden] { display: none; }
#rebbifyRideApp .rebbify-wait-save-map { background: transparent !important; }
#rebbifyRideApp .rebbify-wait-save-map__content { background: var(--rb-solid) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important; box-shadow: var(--rb-shadow) !important; }

/* Pagamento/segurança ficam fora do app quando abertos; variáveis continuam no body. */
.rebbify-passenger-ui :is(.rebbify-payment-modal__dialog,.rebbify-payment-sheet__view,
.rebbify-payment-sheet__topbar,.rebbify-payment-sheet__subtopbar,.rebbify-payment-method-row,
.rebbify-payment-cardform,.rebbify-payment-coupon,.rebbify-checkout-screen__panel,
.rebbify-checkout-screen__header,.rebbify-checkout-screen__body,.rebbify-price-detail-modal__dialog,
.rebbify-pix-summary,.rebbify-pix-code-block,.rebbify-request-city-modal__dialog,
.rebbify-schedule-editor,.rebbify-schedule-editor__body,.rebbify-verification-gate,
.rebbify-chat-modal,.rebbify-chat-modal__header,.rebbify-chat-modal__body,.rebbify-chat-modal__footer) {
    background: var(--rb-solid) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important;
}
.rebbify-passenger-ui :is(.rebbify-payment-sheet,.rebbify-checkout-screen__panel,.rebbify-price-detail-modal__dialog,
.rebbify-schedule-editor,.rebbify-chat-modal) :is(h1,h2,h3,h4,strong,label) { color: var(--rb-text) !important; }
.rebbify-passenger-ui :is(.rebbify-payment-sheet,.rebbify-checkout-screen__panel,.rebbify-price-detail-modal__dialog,
.rebbify-schedule-editor,.rebbify-chat-modal) :is(p,small) { color: var(--rb-muted) !important; }
.rebbify-passenger-ui :is(.rebbify-payment-add-tile,.rebbify-wallet-toggle-card,.rebbify-cash-change-option,
.rebbify-payment-sheet__back,.rebbify-payment-modal__x,#ridePaymentAddTrigger,.rebbify-field-suggestions,.ride-stop-suggestions) {
    background: var(--rb-soft) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important;
}
.rebbify-passenger-ui #rideSafetyModal {
    --safety-purple: var(--rb-brand); --safety-purple-dark: var(--rb-text); --safety-purple-soft: var(--rb-brand-soft);
    --safety-ink: var(--rb-text); --safety-muted: var(--rb-muted); font-family: var(--rb-font);
}
.rebbify-passenger-ui #rideSafetyModal :is(.ride-safety-sheet,.ride-safety-sheet__header,.ride-safety-quick-card,
.ride-safety-preference-bar,.ride-safety-protection-card,.ride-safety-live-block,.ride-safety-preferences-footer,
.ride-safety-preferences-list,.ride-safety-preference-row,.ride-safety-icon-button) {
    background: var(--rb-solid) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important;
}
.rebbify-passenger-ui #rideSafetyModal :is(h2,h3,h4,strong,.ride-safety-quick-card__label,.ride-safety-preference-main) { color: var(--rb-text) !important; }
.rebbify-passenger-ui #rideSafetyModal :is(p,small,.ride-safety-emergency-note) { color: var(--rb-muted) !important; }

/* Correções transversais: cabeçalho, faixa da conta, sidebar e rodapé seguem o tema. */
.rebbify-passenger-ui .header.rebbify-site-header,
.rebbify-passenger-ui .header.rebbify-site-header.fixed-header {
    background: var(--rb-site-header-bg) !important;
    color: var(--rb-site-header-text) !important;
    border-bottom: 1px solid var(--rb-border) !important;
}
.rebbify-passenger-ui .header.rebbify-site-header :is(.nav-link,.custom--dropdown__selected,.header-button,.header-right__lang,.btn--white) {
    color: var(--rb-site-header-text) !important;
}
.rebbify-passenger-ui .header.rebbify-site-header .app-download-btn {
    background: var(--rb-site-header-cta-bg) !important;
    color: var(--rb-site-header-cta-text) !important;
    border-color: transparent !important;
}
.rebbify-passenger-ui .header.rebbify-site-header .navbar-brand.logo img,
.rebbify-passenger-ui .rebbify-footer__logo img { filter: brightness(0); }
html[data-theme="dark"] .rebbify-passenger-ui .header.rebbify-site-header .navbar-brand.logo img,
html[data-theme="dark"] .rebbify-passenger-ui .rebbify-footer__logo img { filter: brightness(0) invert(1); }
.rebbify-passenger-ui .header.rebbify-site-header .rebbify-about-dropdown {
    background: var(--rb-site-header-dropdown) !important;
    border-color: var(--rb-border) !important;
}
.rebbify-passenger-ui .header.rebbify-site-header .rebbify-about-dropdown li .dropdown-item { color: var(--rb-text) !important; }
.rebbify-passenger-ui .header.rebbify-site-header .rebbify-about-dropdown li .dropdown-item:hover,
.rebbify-passenger-ui .header.rebbify-site-header .rebbify-about-dropdown li .dropdown-item:focus {
    background: var(--rb-site-header-dropdown-hover) !important; color: var(--rb-text) !important;
}
.rebbify-passenger-ui .header.rebbify-site-header .rebbify-about-heading { color: var(--rb-site-header-muted) !important; }
.rebbify-passenger-ui .header.rebbify-site-header .custom--dropdown::after,
.rebbify-passenger-ui .header.rebbify-site-header .custom--dropdown__selected .text,
.rebbify-passenger-ui .header.rebbify-site-header .user-info__button::before { color: var(--rb-site-header-text) !important; }
.rebbify-passenger-ui .header.rebbify-site-header .user-info .user-info-dropdown {
    background: var(--rb-site-header-dropdown) !important; color: var(--rb-text) !important;
    border: 1px solid var(--rb-border) !important; box-shadow: var(--rb-shadow) !important;
}
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown__header { border-bottom-color: var(--rb-border) !important; }
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown__author :is(.title,.phone-number),
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown__menu-item,
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown__menu-item .menu-name { color: var(--rb-text) !important; }
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown__menu-item,
.rebbify-passenger-ui .header.rebbify-site-header .logout-btn { background: var(--rb-soft) !important; border-color: transparent !important; }
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown__menu-item:hover,
.rebbify-passenger-ui .header.rebbify-site-header .logout-btn:hover { background: var(--rb-selected) !important; color: var(--rb-link) !important; }
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown svg { color: var(--rb-icon); }
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown .phone-number svg { color: var(--rb-link); }
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown svg [stroke="#141B34"],
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown svg [stroke="#7C4DFF"] { stroke: currentColor !important; }
.rebbify-passenger-ui .header.rebbify-site-header .user-info-dropdown svg [fill="#475569"] { fill: currentColor !important; }

.rebbify-passenger-ui .rebbify-member-strip {
    background: var(--rb-member-bg) !important;
    color: var(--rb-member-text) !important;
    border-bottom-color: var(--rb-member-border) !important;
}
.rebbify-passenger-ui .rebbify-member-strip :is(.rebbify-member-strip__welcome,.rebbify-member-strip__welcome strong,.rebbify-member-strip__schedule,.rebbify-member-strip__action,.rebbify-member-strip__action i,.rebbify-member-strip__schedule i) {
    color: var(--rb-member-text) !important;
}
.rebbify-passenger-ui .rebbify-member-strip :is(.rebbify-member-strip__schedule,.rebbify-member-strip__action):hover {
    color: var(--rb-member-hover) !important; background: var(--rb-member-hover-bg) !important;
}

.rebbify-passenger-ui .driver-sidebar-menu,
.rebbify-passenger-ui .driver-dashboard-content { box-shadow: none !important; }
.rebbify-passenger-ui .driver-sidebar-menu-list__link { border-radius: 6px; }
.rebbify-passenger-ui .driver-sidebar-menu-list__link::before { color: var(--rb-muted); }
.rebbify-passenger-ui .driver-dashboard-content :is(.input-group-custom,.form-control,.form--control,textarea) {
    border: 0 !important; box-shadow: none !important;
}
.rebbify-passenger-ui .driver-dashboard-content :is(.input-group-custom,.form-control,.form--control,textarea):not([type="checkbox"]):not([type="radio"]) {
    background-color: var(--rb-soft) !important; color: var(--rb-text) !important;
}
.rebbify-passenger-ui .driver-dashboard__header-right .rating-rate { background: var(--rb-soft) !important; color: var(--rb-text) !important; }

/* Paradas: linha limpa, sem cápsula ou contorno roxo em torno de cada parada. */
#rebbifyRideApp .ride-stops-container { gap: 4px !important; }
#rebbifyRideApp .ride-stop-row {
    min-height: 42px !important; padding: 0 4px !important; border: 0 !important; border-radius: 4px !important;
    background: transparent !important; box-shadow: none !important; color: var(--rb-text) !important;
}
#rebbifyRideApp .ride-stop-row:is(.is-search-open,.is-reordering) {
    background: var(--rb-soft) !important; box-shadow: none !important;
}
#rebbifyRideApp .ride-stop-index {
    width: 18px !important; height: 18px !important; border-radius: 3px !important;
    background: var(--rb-soft) !important; color: var(--rb-text) !important; font-size: 10px !important;
}
#rebbifyRideApp :is(.ride-stop-drag,.ride-stop-remove) { color: var(--rb-icon) !important; border: 0 !important; background: transparent !important; }
#rebbifyRideApp :is(.ride-stop-drag,.ride-stop-remove):hover { background: var(--rb-soft) !important; }
#rebbifyRideApp .ride-stop-input { color: var(--rb-text) !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
#rebbifyRideApp .ride-stop-input::placeholder { color: var(--rb-muted) !important; }
#rebbifyRideApp .ride-add-stop-circle { background: transparent !important; color: var(--rb-link) !important; border: 0 !important; border-radius: 4px !important; }
#rebbifyRideApp .ride-add-stop-circle:hover:not(:disabled) { background: var(--rb-soft) !important; transform: none !important; }

/* Rodapé do passageiro: a mesma hierarquia de superfície e contraste do restante da conta. */
.rebbify-passenger-ui .rebbify-footer,
.rebbify-passenger-ui .bottom-footer { background: var(--rb-footer-bg) !important; color: var(--rb-footer-text) !important; }
.rebbify-passenger-ui .rebbify-footer { border-top: 0 !important; }
.rebbify-passenger-ui .bottom-footer { border-top-color: var(--rb-footer-line) !important; }
.rebbify-passenger-ui .rebbify-footer :is(.newslatter__heading,.footer-item__title,.footer-menu__link),
.rebbify-passenger-ui .bottom-footer :is(.bottom-footer-text,.bottom-footer-text a,.social-list__link) { color: var(--rb-footer-text) !important; }
.rebbify-passenger-ui .rebbify-footer__description { color: var(--rb-footer-muted) !important; }
.rebbify-passenger-ui .rebbify-footer .footer-menu__link:hover,
.rebbify-passenger-ui .rebbify-footer .footer-menu__link:focus-visible,
.rebbify-passenger-ui .bottom-footer .social-list__link:hover { color: var(--rb-footer-hover) !important; }
.rebbify-passenger-ui .rebbify-footer .newslatter__form .form--control {
    background: transparent !important; color: var(--rb-footer-text) !important; border: 0 !important; border-bottom: 1px solid var(--rb-footer-line) !important;
}
.rebbify-passenger-ui .rebbify-footer .newslatter__form .form--control::placeholder { color: var(--rb-footer-muted) !important; }
.rebbify-passenger-ui .rebbify-footer-context-btn {
    background: var(--rb-footer-context-bg) !important; color: var(--rb-footer-text) !important;
    border-color: var(--rb-footer-context-line) !important; border-radius: 8px !important;
}
.rebbify-passenger-ui .rebbify-footer-context-btn:hover,
.rebbify-passenger-ui .rebbify-footer-context-btn:focus-visible {
    background: var(--rb-footer-context-hover) !important; color: var(--rb-footer-text) !important; border-color: var(--rb-link) !important;
}
.rebbify-passenger-ui .rebbify-footer-context-chevron { color: var(--rb-footer-muted) !important; }

/* Classes legadas que costumavam forçar preto/branco recebem o texto do tema no modo escuro. */
html[data-theme="dark"] .rebbify-passenger-ui :is(.text-dark,.text-black,.text-body,.text--black,.text--dark) { color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-passenger-ui :is(.bg-white,.bg-light) { background-color: var(--rb-solid) !important; }

@media (min-width: 1200px) {
    #rebbifyRideApp .rebbify-ride-stage { height: calc(100dvh - 64px) !important; min-height: 0 !important; padding: 24px clamp(20px,3.7vw,56px) 18px !important; overflow: hidden !important; }
    #rebbifyRideApp .rebbify-booking-wrapper { display: grid !important; grid-template-columns: 300px minmax(0,1fr) !important; gap: 32px !important; height: 100% !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important; }
    #rebbifyRideApp.is-service-selection .rebbify-booking-wrapper { grid-template-columns: minmax(0,1fr) clamp(320px,32vw,520px) !important; }
    #rebbifyRideApp .rebbify-booking-panel { width: 100% !important; max-width: none !important; min-width: 0 !important; height: 100% !important; max-height: none !important; padding: 0 !important; overflow-y: auto !important; }
    #rebbifyRideApp.is-service-selection .rebbify-booking-panel { display: grid !important; grid-template-columns: minmax(230px,.54fr) minmax(0,1fr) !important; grid-template-rows: minmax(0,1fr) !important; gap: 24px !important; overflow: visible !important; }
    #rebbifyRideApp.is-service-selection .ride_location_wrapper { display: block !important; grid-column: 1 !important; grid-row: 1 !important; align-self: start !important; width: 100% !important; min-width: 0 !important; max-height: 100% !important; padding: 0 !important; overflow: visible !important; }
    #rebbifyRideApp.is-service-selection .rebbify-service-flow { grid-column: 2 !important; grid-row: 1 !important; display: flex !important; flex-direction: column !important; min-width: 0 !important; min-height: 0 !important; height: 100% !important; padding: 0 !important; }
    #rebbifyRideApp.is-service-selection .rebbify-service-results { display: flex !important; flex: 1 1 auto !important; flex-direction: column !important; min-height: 0 !important; overflow: hidden !important; padding: 0 !important; }
    #rebbifyRideApp.is-service-selection .serviceDiv { flex: 1 1 auto !important; min-height: 0 !important; overflow-y: auto !important; overflow-x: hidden !important; padding: 4px 7px 12px 3px !important; scrollbar-width: thin; scrollbar-color: var(--rb-border) transparent; }
    #rebbifyRideApp.is-service-selection .find_driver_wrapper { flex: 0 0 auto !important; margin-top: 12px !important; padding: 0 !important; }
    #rebbifyRideApp .rebbify-map-panel { width: 100% !important; max-width: none !important; min-width: 0 !important; height: 100% !important; min-height: 0 !important; position: relative !important; inset: auto !important; }
    #rebbifyRideApp .rebbify-booking-actionbar { position: static !important; width: 100% !important; transform: none !important; }
}
@media (min-width: 768px) and (max-width: 1199px) {
    #rebbifyRideApp .rebbify-ride-stage { height: calc(100dvh - 64px) !important; min-height: 0 !important; padding: 20px !important; overflow: hidden !important; }
    #rebbifyRideApp .rebbify-booking-wrapper { display: grid !important; grid-template-columns: minmax(320px,1.15fr) minmax(0,1fr) !important; gap: 20px !important; width: 100% !important; max-width: none !important; height: 100% !important; padding: 0 !important; margin: 0 !important; }
    #rebbifyRideApp .rebbify-booking-panel { display: block !important; min-width: 0 !important; width: 100% !important; max-width: none !important; padding: 0 4px 0 0 !important; height: 100% !important; max-height: 100% !important; overflow-y: auto !important; }
    #rebbifyRideApp :is(.ride_location_wrapper,.rebbify-service-flow,.rebbify-service-results,.serviceDiv) { width: 100% !important; min-width: 0 !important; max-width: none !important; height: auto !important; max-height: none !important; overflow: visible !important; padding: 0 !important; }
    #rebbifyRideApp .rebbify-service-flow { margin-top: 22px !important; }
    #rebbifyRideApp .rebbify-map-panel { position: relative !important; inset: auto !important; display: block !important; min-width: 0 !important; width: 100% !important; max-width: none !important; height: 100% !important; min-height: 0 !important; }
    #rebbifyRideApp .find_driver_wrapper { position: sticky !important; bottom: 0 !important; z-index: 10; padding: 10px 0 0 !important; }
    #rebbifyRideApp .rebbify-booking-actionbar { position: static !important; width: 100% !important; transform: none !important; }
    #rebbifyRideApp .rebbify-service-label { grid-template-columns: 80px minmax(0,1fr) !important; gap: 8px 10px !important; }
    #rebbifyRideApp .rebbify-service-image { width: 80px !important; grid-row: 1 / span 2 !important; }
    #rebbifyRideApp .rebbify-service-price { grid-column: 2 !important; grid-row: 2 !important; justify-self: start !important; align-items: flex-start !important; text-align: left !important; }
}
@media (max-width: 767px) {
    #rebbifyRideApp { --ride-topbar-height: 58px; }
    #rebbifyRideApp .rebbify-ride-topbar { display: flex !important; height: 58px !important; min-height: 58px !important; padding: 0 14px !important; }
    #rebbifyRideApp .rebbify-ride-topbar__left { gap: 12px !important; }
    #rebbifyRideApp .rebbify-ride-topbar__right { gap: 7px !important; }
    #rebbifyRideApp .rebbify-ride-brand img { width: 66px; }
    #rebbifyRideApp .rebbify-mode-tab { min-height: 58px !important; padding: 0 8px !important; font-size: 11px !important; gap: 5px !important; }
    #rebbifyRideApp .rebbify-activity-link, #rebbifyRideApp .rebbify-top-city-btn { display: none !important; }
    #rebbifyRideApp .rebbify-guest-register-link { display: none; }
    #rebbifyRideApp .rebbify-guest-login-link { font-size: 11px; padding: 8px; }
    #rebbifyRideApp .rebbify-ride-stage { display: block !important; height: auto !important; min-height: calc(100dvh - 58px) !important; padding: 12px 12px 24px !important; overflow: visible !important; }
    #rebbifyRideApp .rebbify-booking-wrapper { display: flex !important; flex-direction: column !important; width: 100% !important; max-width: none !important; height: auto !important; gap: 18px !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; }
    #rebbifyRideApp .rebbify-map-panel { order: 0 !important; position: relative !important; inset: auto !important; display: block !important; width: 100% !important; max-width: none !important; min-height: 240px !important; height: clamp(240px,32dvh,340px) !important; margin: 0 !important; }
    #rebbifyRideApp .rebbify-booking-panel { order: 1 !important; display: block !important; position: static !important; width: 100% !important; max-width: none !important; height: auto !important; max-height: none !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; border-radius: 0 !important; transform: none !important; }
    #rebbifyRideApp.is-service-selection .ride_location_wrapper { display: none !important; }
    #rebbifyRideApp :is(.rebbify-service-flow,.rebbify-service-results,.serviceDiv) { width: 100% !important; min-width: 0 !important; max-width: none !important; max-height: none !important; height: auto !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; }
    #rebbifyRideApp.is-service-selection .rebbify-service-results { display: block !important; }
    #rebbifyRideApp.is-service-selection .rebbify-service-flow { padding-bottom: calc(94px + env(safe-area-inset-bottom)) !important; }
    #rebbifyRideApp .rebbify-service-results__header { position: static !important; padding: 0 0 16px !important; }
    #rebbifyRideApp .rebbify-service-title-row h1 { font-size: 25px !important; }
    #rebbifyRideApp .rebbify-service-group__title { font-size: 15px !important; }
    #rebbifyRideApp .rebbify-service-label { grid-template-columns: clamp(92px,25vw,112px) minmax(0,1fr) !important; grid-template-rows: auto auto !important; gap: 5px 12px !important; min-height: 124px !important; padding: 12px 10px !important; }
    #rebbifyRideApp .rebbify-service-image { grid-row: 1 / span 2 !important; width: 100% !important; height: 92px !important; max-width: 112px !important; }
    #rebbifyRideApp .rebbify-service-name { font-size: 16px !important; overflow-wrap: anywhere; }
    #rebbifyRideApp .rebbify-service-price { grid-column: 2 !important; grid-row: 2 !important; justify-self: start !important; align-items: flex-start !important; text-align: left !important; }
    #rebbifyRideApp :is(.rebbify-service-price__current,.rebbify-service-price__original) { text-align: left !important; justify-content: flex-start !important; }
    #rebbifyRideApp .rebbify-service-price strong { font-size: 17px !important; }
    #rebbifyRideApp .find_driver_wrapper { position: static !important; padding: 0 !important; }
    #rebbifyRideApp.is-service-selection .rebbify-booking-actionbar { position: fixed !important; top: auto !important; bottom: max(10px,env(safe-area-inset-bottom)) !important; left: 12px !important; right: 12px !important; width: auto !important; grid-template-columns: minmax(110px,.8fr) minmax(0,1.2fr) !important; padding: 10px !important; gap: 8px !important; z-index: 110 !important; transform: none !important; }
    #rebbifyRideApp .rebbify-actionbar-option__icon { width: 34px !important; min-width: 34px !important; }
    #rebbifyRideApp .rebbify-actionbar-option__icon .la-briefcase { display: none; }
    #rebbifyRideApp .rebbify-service-mobile-back { background: var(--rb-solid) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important; }
    .rebbify-passenger-ui .driver-dashboard-content { padding: 20px 16px; }
    .rebbify-theme-options { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .rebbify-passenger-ui :is(button,a,input,select,textarea,summary) { transition: none !important; }
}

/* REBBIFY 2026-09-25: suppress focus halo only on auth and ride form controls.
   Mantém o restante da plataforma com focus-visible para acessibilidade. */
.rebbify-passenger-ui .account-form :is(input,select,textarea,button):focus,
.rebbify-passenger-ui .account-form :is(input,select,textarea,button):focus-visible,
.rebbify-passenger-ui #rebbifyRideApp :is(input,select,textarea,button):focus,
.rebbify-passenger-ui #rebbifyRideApp :is(input,select,textarea,button):focus-visible {
    outline: none !important;
    outline-offset: 0 !important;
    box-shadow: none !important;
}

.rebbify-passenger-ui .account-form .input-group-custom:focus,
.rebbify-passenger-ui .account-form .input-group-custom:focus-within {
    outline: none !important;
    border-color: transparent !important;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .04) inset !important;
}

.rebbify-passenger-ui #rebbifyRideApp :is(.input-group-custom,.ride-location-field,.rebbify-location-control):focus,
.rebbify-passenger-ui #rebbifyRideApp :is(.input-group-custom,.ride-location-field,.rebbify-location-control):focus-within {
    outline: none !important;
    box-shadow: none !important;
}



/* REBBIFY 2026-10-04 — site público claro/escuro; claro permanece o padrão. */
.rebbify-public-ui .header.rebbify-site-header,
.rebbify-public-ui .header.rebbify-site-header.fixed-header {
    background: var(--rb-site-header-bg) !important;
    color: var(--rb-site-header-text) !important;
    border-bottom: 1px solid var(--rb-site-header-mobile-divider) !important;
}
.rebbify-public-ui .header.rebbify-site-header :is(.nav-link,.custom--dropdown__selected,.header-button,.header-right__lang,.btn--white) {
    color: var(--rb-site-header-text) !important;
}
.rebbify-public-ui .header.rebbify-site-header .app-download-btn {
    background: var(--rb-site-header-cta-bg) !important;
    color: var(--rb-site-header-cta-text) !important;
    border-color: var(--rb-site-header-mobile-divider) !important;
}
.rebbify-public-ui .header.rebbify-site-header .navbar-brand.logo img { filter: brightness(0); }
html[data-theme="dark"] .rebbify-public-ui .header.rebbify-site-header .navbar-brand.logo img { filter: brightness(0) invert(1); }
.rebbify-public-ui .header.rebbify-site-header .rebbify-about-dropdown {
    background: var(--rb-site-header-dropdown) !important;
    border-color: var(--rb-border) !important;
}
.rebbify-public-ui .header.rebbify-site-header .rebbify-about-dropdown li .dropdown-item { color: var(--rb-text) !important; }
.rebbify-public-ui .header.rebbify-site-header .rebbify-about-dropdown li .dropdown-item:hover,
.rebbify-public-ui .header.rebbify-site-header .rebbify-about-dropdown li .dropdown-item:focus {
    background: var(--rb-site-header-dropdown-hover) !important;
}

/* Home: mantém o visual claro atual e troca superfícies/textos somente no modo escuro. */
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-hero,.rebbify-home-section) { background: var(--rb-bg) !important; color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-hero h1,.rebbify-home-section h2,.rebbify-service-card h3,.rebbify-download-card h3,.rebbify-plan-card h3,.rebbify-plan-card h4) { color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-hero__lead,.rebbify-service-card p,.rebbify-split__copy p,.rebbify-editorial-row__copy p,.rebbify-download-card p,.rebbify-eyebrow,.rebbify-text-link) { color: var(--rb-muted) !important; }
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-booking-time__summary,.rebbify-booking-time__menu,.rebbify-location-dropdown.search-input-dropdown__wrapper,.rebbify-location-dropdown .search-input-dropdown__item,.rebbify-plan-controls>div,.rebbify-plan-card__benefits,.rebbify-download-card,.rebbify-hero-art__status) {
    background: var(--rb-solid) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important;
}
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-booking-time__copy strong,.rebbify-booking-time__option strong,.rebbify-location-dropdown .search-input-dropdown__item,.rebbify-hero-art__status strong,.rebbify-plan-card__benefits li,.rebbify-plan-card__benefits i,.rebbify-text-link:hover) { color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-booking-time__copy small,.rebbify-booking-time__option small,.rebbify-location-field__input label,.rebbify-location-action .icon-clear,.rebbify-hero-art__status span) { color: var(--rb-muted) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-location-field.input-group-custom { background: var(--rb-soft) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-location-field:focus-within { background: var(--rb-solid) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-location-field .input-group-custom__input { color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-location-field .input-group-custom__input::placeholder { color: var(--rb-muted) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-location-dropdown .search-input-dropdown__item:hover,
html[data-theme="dark"] .rebbify-public-ui .rebbify-location-dropdown .search-input-dropdown__item.active,
html[data-theme="dark"] .rebbify-public-ui .rebbify-booking-time__option:hover,
html[data-theme="dark"] .rebbify-public-ui .rebbify-booking-time__option.is-active { background: var(--rb-soft) !important; }
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-service-card,.rebbify-account-card__visual,.rebbify-editorial-row__media,.rebbify-download-section) { background: var(--rb-soft) !important; color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-service-card:hover { background: var(--rb-selected) !important; color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-plan-card__main { background: #18282c !important; color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-plan-card__main p { color: var(--rb-muted) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-plan-card__benefits { border-color: var(--rb-border) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-hero-art { background: var(--rb-brand-soft) !important; }

/* Home: seletor de cidade, explorar destinos e modal também acompanham o tema. */
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-city-switcher,.rebbify-city-explore,.rebbify-explore-tab,.rebbify-explore-card,.rebbify-explore-card--placeholder,.rebbify-city-modal__dialog,.rebbify-explore-card__icon) {
    background: var(--rb-solid) !important; border-color: var(--rb-border) !important; color: var(--rb-text) !important;
}
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-city-switcher__current,.rebbify-city-explore__title,.rebbify-explore-card__title,.rebbify-explore-card__actions a,.rebbify-explore-card__actions button,.rebbify-city-modal__headline,.rebbify-city-modal__close,.rebbify-city-modal__item) { color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-city-explore__lead,.rebbify-explore-card__subtitle,.rebbify-city-modal__title,.rebbify-city-modal__country,.rebbify-city-modal__item-subtitle,.rebbify-city-modal__empty) { color: var(--rb-muted) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-city-modal__search input { background: var(--rb-soft) !important; color: var(--rb-text) !important; border-color: var(--rb-border) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-city-modal__item { border-bottom-color: var(--rb-border) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-city-explore { border-top-color: var(--rb-border) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-explore-tab.is-active,
html[data-theme="dark"] .rebbify-public-ui .rebbify-explore-tab:hover { background: var(--rb-brand) !important; color: var(--rb-on-accent) !important; border-color: var(--rb-brand) !important; }

/* /empresa: remove o fundo claro forçado quando a preferência estiver em escuro. */
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-partner-program,.rebbify-business-hero,.rebbify-business-section,.rebbify-business-visual-section) { background: var(--rb-bg) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-business-section--soft { background: var(--rb-soft) !important; }
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-partner-program h1,.rebbify-business-hero h1,.rebbify-business-heading h2,.rebbify-business-solutions-intro h2,.rebbify-business-industry-grid h2,.rebbify-business-benefit h3,.rebbify-business-solution h3) { color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-partner-program__grid>div>p,.rebbify-partner-program__cards p,.rebbify-partner-benefits span,.rebbify-business-hero__copy>p,.rebbify-business-solutions-intro__copy>p,.rebbify-business-industry-grid p,.rebbify-business-benefit p,.rebbify-business-solution p) { color: var(--rb-muted) !important; }
html[data-theme="dark"] .rebbify-public-ui :is(.rebbify-partner-program__cards article,.rebbify-partner-benefits>div,.rebbify-business-benefit,.rebbify-business-solution,.rebbify-business-hero__media,.rebbify-business-solutions-intro__media) { background: var(--rb-solid) !important; border-color: var(--rb-border) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-business-btn--secondary { background: var(--rb-soft) !important; color: var(--rb-text) !important; }
html[data-theme="dark"] .rebbify-public-ui .rebbify-business-text-link { color: var(--rb-text) !important; }


/* REBBIFY 2026-10-05 — CTA de cadastro do menu.
   Cadastre-se permanece roxo com texto branco em claro/escuro. */
.header.rebbify-site-header .rebbify-header-register,
.rebbify-public-ui .header.rebbify-site-header .rebbify-header-register,
.rebbify-passenger-ui .header.rebbify-site-header .rebbify-header-register,
html[data-theme="dark"] .header.rebbify-site-header .rebbify-header-register {
    background: #7C4DFF !important;
    border-color: #7C4DFF !important;
    color: #FFFFFF !important;
    box-shadow: none !important;
}
.header.rebbify-site-header .rebbify-header-register:hover,
.header.rebbify-site-header .rebbify-header-register:focus,
.header.rebbify-site-header .rebbify-header-register:active {
    background: #6D3DF5 !important;
    border-color: #6D3DF5 !important;
    color: #FFFFFF !important;
}


/* REBBIFY 2026-10-05 — navegação principal.
   Todos os itens têm o mesmo espaçamento; somente "Sobre" possui submenu/seta. */
.header.rebbify-site-header .navbar-nav {
    column-gap: 28px !important;
    row-gap: 0;
    align-items: center;
}
.header.rebbify-site-header .navbar-nav > .nav-item {
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.header.rebbify-site-header .navbar-nav > .nav-item > .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding-left: 0 !important;
    padding-right: 0 !important;
    white-space: nowrap;
}
.header.rebbify-site-header .rebbify-about-toggle .rebbify-about-chevron {
    margin-left: 2px !important;
}
@media (max-width: 1199px) {
    .header.rebbify-site-header .navbar-nav {
        column-gap: 22px !important;
    }
}
@media (max-width: 991px) {
    .header.rebbify-site-header .navbar-nav {
        gap: 0 !important;
        align-items: stretch;
    }
    .header.rebbify-site-header .navbar-nav > .nav-item > .nav-link {
        padding: 10px 0 !important;
    }
}
