/* Family Drivers v73 - UI MOBILE INTERNA ONLY.
   Le pagine pubbliche e il desktop restano invariati. */
@media (max-width: 768px) {
  #app.app--internal {
    --fd-navy: #062743;
    --fd-navy-2: #0a3f67;
    --fd-blue: #096fb1;
    --fd-blue-2: #0d8ad3;
    --fd-red: #e21d2f;
    --fd-yellow: #f4b22a;
    --fd-green: #0ea85c;
    --fd-bg: #eef6fb;
    --fd-card: rgba(255,255,255,.96);
    --fd-muted: #5c6d7e;
    --fd-line: rgba(6,39,67,.12);
    --fd-shadow: 0 16px 34px rgba(6,39,67,.14);
    --fd-shadow-strong: 0 22px 54px rgba(6,39,67,.24);
    min-height: 100vh;
    background:
      linear-gradient(180deg, rgba(10,63,103,.06), rgba(238,246,251,.96)),
      #eef6fb;
    color: #102033;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }

  #app.app--internal .app-main,
  #app.app--internal .app-content,
  #app.app--internal .route-view {
    width: 100%;
    min-height: 100vh;
    background: transparent !important;
  }

  #app.app--internal .app-main { padding-top: 0 !important; }
  #app.app--internal .app-content { padding: 0 0 calc(74px + env(safe-area-inset-bottom)) !important; }
  #app.app--internal .route-view { padding: 0 12px 18px !important; }

  /* Top bar tipo app nativa: solo sulle pagine interne non mappa. */
  #app.app--internal .route-view::before {
    content: "";
    position: sticky;
    top: 0;
    display: block;
    height: 82px;
    margin: 0 -12px 12px;
    background:
      linear-gradient(180deg, rgba(6,39,67,.98), rgba(7,51,86,.98));
    border-radius: 0 0 22px 22px;
    box-shadow: 0 12px 26px rgba(6,39,67,.22);
    z-index: 0;
  }

  #app.app--internal .route-view::after {
    content: "Family Drivers";
    position: fixed;
    top: calc(16px + env(safe-area-inset-top));
    left: 22px;
    color: #fff;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: .2px;
    z-index: 20;
    pointer-events: none;
  }

  #app.app--internal .profile-shell,
  #app.app--internal .wallet-shell,
  #app.app--internal .driver-shell,
  #app.app--internal .documents-shell,
  #app.app--internal .notifications-shell,
  #app.app--internal .referrals-shell,
  #app.app--internal .admin-shell {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100%;
    max-width: none;
    margin: -70px auto 0 !important;
    position: relative;
    z-index: 2;
  }

  #app.app--internal .profile-header-card,
  #app.app--internal .wallet-hero,
  #app.app--internal .driver-hero-card,
  #app.app--internal .documents-hero-card,
  #app.app--internal .notifications-hero-card,
  #app.app--internal .referrals-hero-card,
  #app.app--internal .admin-hero-card {
    min-height: 132px;
    padding: 54px 18px 18px !important;
    border: 0 !important;
    border-radius: 0 0 28px 28px !important;
    background:
      linear-gradient(180deg, var(--fd-navy) 0%, var(--fd-navy-2) 100%) !important;
    color: #fff !important;
    box-shadow: var(--fd-shadow-strong) !important;
    position: relative;
    overflow: hidden;
  }

  #app.app--internal .profile-header-card::after,
  #app.app--internal .wallet-hero::after,
  #app.app--internal .driver-hero-card::after,
  #app.app--internal .documents-hero-card::after,
  #app.app--internal .notifications-hero-card::after,
  #app.app--internal .referrals-hero-card::after,
  #app.app--internal .admin-hero-card::after {
    content: "SOS";
    position: absolute;
    right: 16px;
    top: 18px;
    padding: 5px 8px;
    border-radius: 10px;
    background: var(--fd-red);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    box-shadow: 0 8px 16px rgba(226,29,47,.24);
  }

  #app.app--internal .page-title,
  #app.app--internal .wallet-hero .page-title,
  #app.app--internal .profile-header-card .page-title,
  #app.app--internal .driver-hero-card .page-title,
  #app.app--internal .admin-hero-card .page-title,
  #app.app--internal .documents-hero-card .page-title,
  #app.app--internal .notifications-hero-card .page-title,
  #app.app--internal .referrals-hero-card .page-title {
    color: #fff !important;
    font-size: 24px !important;
    line-height: 1.05;
    letter-spacing: -.5px;
    margin: 0 0 6px !important;
    font-weight: 900;
  }

  #app.app--internal .page-subtitle,
  #app.app--internal .profile-header-card p,
  #app.app--internal .wallet-hero p,
  #app.app--internal .driver-hero-card p,
  #app.app--internal .documents-hero-card p,
  #app.app--internal .notifications-hero-card p,
  #app.app--internal .referrals-hero-card p,
  #app.app--internal .admin-hero-card p {
    color: rgba(255,255,255,.82) !important;
    font-size: 14px !important;
    line-height: 1.32;
    margin: 0;
  }

  #app.app--internal .profile-completion-badge,
  #app.app--internal .documents-completion-badge,
  #app.app--internal .driver-status-badge,
  #app.app--internal .status-pill {
    border-radius: 999px !important;
    padding: 7px 10px !important;
    background: rgba(255,255,255,.14) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    font-size: 12px;
    font-weight: 800;
  }

  #app.app--internal .profile-section,
  #app.app--internal .wallet-panel,
  #app.app--internal .driver-panel,
  #app.app--internal .documents-panel,
  #app.app--internal .notifications-panel,
  #app.app--internal .referrals-panel,
  #app.app--internal .admin-panel,
  #app.app--internal .admin-stat-card,
  #app.app--internal .document-upload-card,
  #app.app--internal .documents-summary-card,
  #app.app--internal .notification-card,
  #app.app--internal .referral-card,
  #app.app--internal .referral-code-card,
  #app.app--internal .referral-stat-card,
  #app.app--internal .transaction-card,
  #app.app--internal .wallet-transaction-card,
  #app.app--internal .trip-card,
  #app.app--internal .driver-request-card {
    border: 1px solid var(--fd-line) !important;
    border-radius: 22px !important;
    background: var(--fd-card) !important;
    box-shadow: var(--fd-shadow) !important;
    padding: 16px !important;
    overflow: hidden;
  }

  #app.app--internal .section-title-row h2,
  #app.app--internal .wallet-panel__header h2,
  #app.app--internal .driver-panel__header h2,
  #app.app--internal .documents-panel__header h2,
  #app.app--internal .admin-panel__header h2,
  #app.app--internal .notifications-panel__header h2,
  #app.app--internal .referrals-panel__header h2 {
    color: var(--fd-navy) !important;
    font-size: 19px !important;
    font-weight: 900;
    margin: 0 0 6px !important;
  }

  #app.app--internal .wallet-summary-cards,
  #app.app--internal .wallet-grid,
  #app.app--internal .admin-summary-grid,
  #app.app--internal .form-grid,
  #app.app--internal .driver-status-grid,
  #app.app--internal .documents-grid,
  #app.app--internal .referrals-grid,
  #app.app--internal .profile-form,
  #app.app--internal .option-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    grid-template-columns: none !important;
  }

  #app.app--internal .wallet-balance-card {
    border: 0 !important;
    border-radius: 22px !important;
    min-height: 118px;
    padding: 18px !important;
    color: #fff !important;
    background: linear-gradient(180deg, var(--fd-navy), #082039) !important;
    box-shadow: 0 16px 34px rgba(6,39,67,.22) !important;
  }

  #app.app--internal .wallet-balance-card--bonus {
    background: linear-gradient(180deg, #0d8ad3, #075985) !important;
  }

  #app.app--internal .wallet-balance-card__label,
  #app.app--internal .wallet-balance-card__hint { color: rgba(255,255,255,.82) !important; }
  #app.app--internal .wallet-balance-card__amount { color: #fff !important; font-size: 34px !important; font-weight: 900 !important; letter-spacing: -1px; }

  #app.app--internal .label {
    color: #1b2d43;
    font-size: 14px;
    font-weight: 850;
    margin: 0 0 7px;
  }

  #app.app--internal .input,
  #app.app--internal input.input,
  #app.app--internal select.input,
  #app.app--internal textarea.input,
  #app.app--internal .admin-form input,
  #app.app--internal .admin-form select,
  #app.app--internal .admin-form textarea {
    width: 100%;
    min-height: 52px;
    border-radius: 14px !important;
    border: 1px solid #d9e3ed !important;
    background: #fff !important;
    color: #142033 !important;
    font-size: 16px !important;
    padding: 0 14px !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7) !important;
  }

  #app.app--internal textarea.input,
  #app.app--internal .admin-form textarea { min-height: 100px; padding-top: 12px !important; }

  #app.app--internal .input:focus,
  #app.app--internal input:focus,
  #app.app--internal select:focus,
  #app.app--internal textarea:focus {
    border-color: var(--fd-blue-2) !important;
    box-shadow: 0 0 0 3px rgba(13,138,211,.14) !important;
    outline: none !important;
  }

  #app.app--internal .btn,
  #app.app--internal button.btn,
  #app.app--internal label.btn {
    min-height: 48px;
    border-radius: 14px !important;
    font-weight: 900 !important;
    letter-spacing: .1px;
    padding: 12px 16px !important;
  }

  #app.app--internal .btn-primary {
    background: linear-gradient(180deg, #0d8ad3, #076aa8) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(9,111,177,.24) !important;
  }

  #app.app--internal .btn--ghost {
    background: #edf7ff !important;
    border: 1px solid #cfeaff !important;
    color: var(--fd-blue) !important;
  }

  #app.app--internal .option-card,
  #app.app--internal .vehicle-option,
  #app.app--internal .ride-vehicle-option {
    min-height: 76px;
    border-radius: 18px !important;
    border: 1px solid #dbe5ef !important;
    background: #fff !important;
    box-shadow: 0 8px 18px rgba(6,39,67,.06) !important;
  }

  #app.app--internal .option-card.is-active,
  #app.app--internal .vehicle-option.is-active,
  #app.app--internal .ride-vehicle-option.is-active,
  #app.app--internal .option-card[aria-checked="true"] {
    border-color: #0d8ad3 !important;
    background: #eff8ff !important;
    box-shadow: 0 10px 24px rgba(13,138,211,.15) !important;
  }

  #app.app--internal .profile-avatar-preview,
  #app.app--internal .avatar,
  #app.app--internal .partner-profile-avatar,
  #app.app--internal .sidebar-user__avatar {
    border-radius: 999px !important;
    background: linear-gradient(180deg, #fff, #dff2ff) !important;
    border: 3px solid #fff !important;
    box-shadow: 0 10px 22px rgba(6,39,67,.20) !important;
  }

  #app.app--internal .mobile-bottom-nav {
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    min-height: 58px !important;
    padding: 5px 6px calc(5px + env(safe-area-inset-bottom)) !important;
    border: 1px solid rgba(6,39,67,.10) !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 -8px 26px rgba(6,39,67,.13) !important;
    backdrop-filter: blur(14px) saturate(150%);
  }

  #app.app--internal .mobile-bottom-nav__item {
    min-height: 48px !important;
    border-radius: 15px !important;
    color: #526376 !important;
  }

  #app.app--internal .mobile-bottom-nav__item.is-active {
    background: var(--fd-navy) !important;
    color: #fff !important;
    box-shadow: 0 8px 16px rgba(6,39,67,.18) !important;
  }

  #app.app--internal .mobile-bottom-nav__icon svg { width: 21px !important; height: 21px !important; stroke-width: 2.4; }
  #app.app--internal .mobile-bottom-nav__label { font-size: 10px !important; font-weight: 800 !important; }

  /* MAPPA PASSEGGERO: stile phone screen del mockup, senza modificare desktop. */
  body.ride-map-open #app.app--internal .route-view,
  #app.app--internal .passenger-map-page .route-view { padding: 0 !important; }
  body.ride-map-open #app.app--internal .route-view::before,
  body.ride-map-open #app.app--internal .route-view::after { display: none !important; }

  #app.app--internal .passenger-map-page,
  #app.app--internal .ride-map-page,
  #app.app--internal .passenger-map-shell {
    min-height: 100vh;
    background: #c8effb !important;
  }

  #app.app--internal .ride-details-card,
  #app.app--internal .ride-request-card,
  #app.app--internal .ride-panel,
  #app.app--internal .map-floating-card,
  #app.app--internal .ride-map-summary,
  #app.app--internal .ride-bottom-sheet {
    border-radius: 20px !important;
    background: rgba(255,255,255,.96) !important;
    border: 1px solid rgba(6,39,67,.10) !important;
    box-shadow: 0 14px 34px rgba(6,39,67,.17) !important;
    backdrop-filter: blur(12px) saturate(140%);
  }

  #app.app--internal .ride-price,
  #app.app--internal .ride-estimated-price,
  #app.app--internal .ride-fare-amount,
  #app.app--internal .ride-request-price,
  #app.app--internal [data-ride-price] {
    color: #111827 !important;
    font-size: clamp(30px, 9vw, 42px) !important;
    font-weight: 950 !important;
    letter-spacing: -1px;
    line-height: .98 !important;
  }

  #app.app--internal .ride-surcharge-banner {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 10px;
    padding: 12px 14px;
    border-radius: 18px;
    border: 1px solid rgba(56, 189, 248, 0.32);
    background: linear-gradient(135deg, rgba(240, 249, 255, 0.96), rgba(255, 255, 255, 0.92));
    box-shadow: 0 16px 36px rgba(56, 189, 248, 0.18);
    color: #075985;
  }

  #app.app--internal .ride-surcharge-banner strong,
  #app.app--internal .ride-surcharge-banner b { color: #0f172a; }

  #app.app--internal .modal,
  #app.app--internal .modal__dialog,
  #app.app--internal .modal-card,
  #app.app--internal .bottom-sheet {
    border-radius: 22px !important;
    border: 1px solid rgba(6,39,67,.10) !important;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 24px 60px rgba(6,39,67,.28) !important;
  }

  #app.app--internal .admin-layout,
  #app.app--internal .admin-form,
  #app.app--internal .admin-actions-row,
  #app.app--internal .admin-live-map-filters {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    grid-template-columns: none !important;
  }

  #app.app--internal .admin-panel { overflow-x: auto; }
  #app.app--internal .admin-panel table,
  #app.app--internal .admin-form table { min-width: 760px; }
}

/* v74 - Mobile internal app skin closer to provided Family Drivers mockup.
   Scope is intentionally limited to authenticated views on <=768px. */
@media (max-width: 768px) {
  body:has(#app.app--internal) {
    background: #dcecf6 !important;
    overflow-x: hidden;
  }

  #app.app--internal {
    --fd-navy: #063055;
    --fd-navy-2: #0a456f;
    --fd-navy-3: #0b5b90;
    --fd-blue: #0876bd;
    --fd-sky: #e8f7ff;
    --fd-red: #ec1d34;
    --fd-yellow: #f7b733;
    --fd-green: #12a45c;
    --fd-ink: #18324b;
    --fd-muted: #6a7d91;
    --fd-line: rgba(10, 48, 85, .13);
    --fd-card: rgba(255, 255, 255, .98);
    min-height: 100svh;
    background:
      radial-gradient(circle at 15% -8%, rgba(13,138,211,.18), transparent 32%),
      linear-gradient(180deg, #e7f5ff 0%, #f6fbff 42%, #edf6fb 100%) !important;
  }

  #app.app--internal .app-content {
    min-height: 100svh !important;
    padding: calc(64px + env(safe-area-inset-top)) 0 calc(86px + env(safe-area-inset-bottom)) !important;
  }

  #app.app--internal .route-view {
    width: 100% !important;
    max-width: 430px !important;
    min-height: calc(100svh - 74px) !important;
    margin: 0 auto !important;
    padding: 12px 13px 20px !important;
    background: transparent !important;
    overflow: visible !important;
  }

  /* Native-app top bar: hamburger + logo/title + SOS, injected visually without touching public pages. */
  #app.app--internal::before {
    content: "☰   Family\A Drivers";
    white-space: pre;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: calc(58px + env(safe-area-inset-top));
    padding: calc(9px + env(safe-area-inset-top)) 68px 8px 18px;
    z-index: 9998;
    box-sizing: border-box;
    color: #fff;
    font-size: 11px;
    line-height: 1.05;
    font-weight: 900;
    letter-spacing: .1px;
    text-shadow: 0 1px 0 rgba(0,0,0,.18);
    background: linear-gradient(180deg, #052b4d 0%, #083d68 100%);
    box-shadow: 0 10px 24px rgba(6,39,67,.24);
    border-radius: 0 0 18px 18px;
  }

  #app.app--internal::after {
    content: "SOS";
    position: fixed;
    top: calc(13px + env(safe-area-inset-top));
    right: 15px;
    z-index: 9999;
    min-width: 37px;
    height: 27px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: linear-gradient(180deg, #ff4156, var(--fd-red));
    color: #fff;
    font-size: 11px;
    font-weight: 950;
    box-shadow: 0 8px 16px rgba(236,29,52,.30);
  }

  #app.app--internal .route-view::before,
  #app.app--internal .route-view::after {
    display: none !important;
    content: none !important;
  }

  #app.app--internal .profile-shell,
  #app.app--internal .wallet-shell,
  #app.app--internal .driver-shell,
  #app.app--internal .documents-shell,
  #app.app--internal .notifications-shell,
  #app.app--internal .referrals-shell,
  #app.app--internal .admin-shell,
  #app.app--internal .ride-shell,
  #app.app--internal .notifications-page {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 13px !important;
  }

  #app.app--internal .profile-header-card,
  #app.app--internal .wallet-hero,
  #app.app--internal .driver-hero-card,
  #app.app--internal .documents-hero-card,
  #app.app--internal .notifications-hero-card,
  #app.app--internal .referrals-hero-card,
  #app.app--internal .admin-hero-card,
  #app.app--internal .ride-hero-card {
    min-height: 132px !important;
    padding: 20px 16px 16px !important;
    border: 0 !important;
    border-radius: 24px !important;
    color: #fff !important;
    background:
      linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,0) 38%),
      linear-gradient(180deg, var(--fd-navy) 0%, var(--fd-navy-2) 100%) !important;
    box-shadow: 0 18px 42px rgba(6,39,67,.22) !important;
    position: relative !important;
    overflow: hidden !important;
  }

  #app.app--internal .profile-header-card::before,
  #app.app--internal .wallet-hero::before,
  #app.app--internal .driver-hero-card::before,
  #app.app--internal .documents-hero-card::before,
  #app.app--internal .admin-hero-card::before,
  #app.app--internal .ride-hero-card::before {
    content: "";
    position: absolute;
    width: 142px;
    height: 142px;
    right: -54px;
    bottom: -72px;
    border-radius: 999px;
    background: rgba(255,255,255,.10);
  }

  #app.app--internal .profile-header-card::after,
  #app.app--internal .wallet-hero::after,
  #app.app--internal .driver-hero-card::after,
  #app.app--internal .documents-hero-card::after,
  #app.app--internal .notifications-hero-card::after,
  #app.app--internal .referrals-hero-card::after,
  #app.app--internal .admin-hero-card::after,
  #app.app--internal .ride-hero-card::after {
    display: none !important;
  }

  #app.app--internal .page-title {
    font-size: clamp(22px, 7vw, 29px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.7px !important;
    font-weight: 950 !important;
    color: #fff !important;
    margin: 0 0 7px !important;
  }

  #app.app--internal .page-subtitle,
  #app.app--internal .profile-header-card p,
  #app.app--internal .wallet-hero p,
  #app.app--internal .driver-hero-card p,
  #app.app--internal .documents-hero-card p,
  #app.app--internal .ride-hero-card p,
  #app.app--internal .admin-hero-card p {
    max-width: 92%;
    color: rgba(255,255,255,.84) !important;
    font-size: 13px !important;
    line-height: 1.33 !important;
  }

  #app.app--internal .ride-hero-badge,
  #app.app--internal .admin-hero-badge,
  #app.app--internal .profile-completion-badge,
  #app.app--internal .documents-completion-badge,
  #app.app--internal .driver-online-badge,
  #app.app--internal .driver-status-badge,
  #app.app--internal .status-pill {
    align-self: flex-start !important;
    border: 1px solid rgba(255,255,255,.23) !important;
    background: rgba(255,255,255,.15) !important;
    color: #fff !important;
    border-radius: 999px !important;
    padding: 7px 10px !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    box-shadow: none !important;
  }

  #app.app--internal .profile-section,
  #app.app--internal .wallet-panel,
  #app.app--internal .driver-panel,
  #app.app--internal .documents-panel,
  #app.app--internal .notifications-panel,
  #app.app--internal .referrals-panel,
  #app.app--internal .admin-panel,
  #app.app--internal .admin-stat-card,
  #app.app--internal .document-upload-card,
  #app.app--internal .documents-summary-card,
  #app.app--internal .notification-card,
  #app.app--internal .referral-card,
  #app.app--internal .referral-code-card,
  #app.app--internal .referral-stat-card,
  #app.app--internal .transaction-card,
  #app.app--internal .wallet-transaction-card,
  #app.app--internal .wallet-transaction-item,
  #app.app--internal .trip-card,
  #app.app--internal .driver-request-card,
  #app.app--internal .driver-request-item,
  #app.app--internal .driver-status-card,
  #app.app--internal .ride-request-panel,
  #app.app--internal .ride-history-panel,
  #app.app--internal .ride-navigation-card,
  #app.app--internal .ride-estimate-card,
  #app.app--internal .ride-open-item,
  #app.app--internal .ride-history-item,
  #app.app--internal .recent-request-item {
    border: 1px solid var(--fd-line) !important;
    border-radius: 22px !important;
    background: var(--fd-card) !important;
    box-shadow: 0 14px 34px rgba(6,39,67,.13) !important;
    padding: 15px !important;
  }

  #app.app--internal .wallet-summary-cards {
    margin-top: 14px !important;
  }

  #app.app--internal .wallet-balance-card,
  #app.app--internal .admin-stat-card,
  #app.app--internal .driver-stat-card {
    border-radius: 21px !important;
    background: linear-gradient(180deg, #ffffff, #f4fbff) !important;
    color: var(--fd-ink) !important;
    border: 1px solid rgba(10,48,85,.12) !important;
    box-shadow: 0 12px 28px rgba(6,39,67,.12) !important;
  }

  #app.app--internal .wallet-balance-card__label,
  #app.app--internal .wallet-balance-card__hint { color: var(--fd-muted) !important; }
  #app.app--internal .wallet-balance-card__amount,
  #app.app--internal .admin-stat-card strong,
  #app.app--internal .driver-stat-card strong {
    color: var(--fd-navy) !important;
    font-weight: 950 !important;
  }

  #app.app--internal .section-title-row h2,
  #app.app--internal .wallet-panel__header h2,
  #app.app--internal .driver-panel__header h2,
  #app.app--internal .documents-panel__header h2,
  #app.app--internal .admin-panel__header h2,
  #app.app--internal .notifications-panel__header h2,
  #app.app--internal .referrals-panel__header h2,
  #app.app--internal .ride-request-panel__header h2,
  #app.app--internal .ride-history-panel__header h2 {
    font-size: 18px !important;
    line-height: 1.12 !important;
    color: var(--fd-navy) !important;
    font-weight: 950 !important;
  }

  #app.app--internal .wallet-panel__header p,
  #app.app--internal .driver-panel__header p,
  #app.app--internal .documents-panel__header p,
  #app.app--internal .admin-panel__header p,
  #app.app--internal .ride-request-panel__header p,
  #app.app--internal .ride-history-panel__header p,
  #app.app--internal .form-hint,
  #app.app--internal .input-help {
    color: var(--fd-muted) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  #app.app--internal .form-grid,
  #app.app--internal .wallet-grid,
  #app.app--internal .driver-grid,
  #app.app--internal .driver-stats-grid,
  #app.app--internal .admin-summary-grid,
  #app.app--internal .documents-grid,
  #app.app--internal .referrals-grid,
  #app.app--internal .option-list,
  #app.app--internal .admin-layout,
  #app.app--internal .ride-layout {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    gap: 12px !important;
  }

  #app.app--internal .input,
  #app.app--internal input.input,
  #app.app--internal select.input,
  #app.app--internal textarea.input,
  #app.app--internal .admin-form input,
  #app.app--internal .admin-form select,
  #app.app--internal .admin-form textarea {
    min-height: 50px !important;
    border-radius: 16px !important;
    border: 1px solid #d6e5ef !important;
    background: #fff !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.85), 0 5px 14px rgba(6,39,67,.04) !important;
    color: #172b41 !important;
    font-size: 16px !important;
  }

  #app.app--internal .btn,
  #app.app--internal button.btn,
  #app.app--internal label.btn {
    min-height: 47px !important;
    border-radius: 14px !important;
    font-weight: 950 !important;
    text-transform: uppercase;
    font-size: 12px !important;
  }

  #app.app--internal .btn-primary {
    background: linear-gradient(180deg, #168bd0 0%, #086ba8 100%) !important;
    border: 0 !important;
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(8,118,189,.24) !important;
  }

  #app.app--internal .btn--ghost {
    color: var(--fd-navy) !important;
    background: #f2f9ff !important;
    border: 1px solid #cfe6f5 !important;
  }

  #app.app--internal .btn--danger,
  #app.app--internal .ride-map-action-icon--danger {
    background: linear-gradient(180deg, #ff4055, var(--fd-red)) !important;
    color: #fff !important;
    border: 0 !important;
  }

  #app.app--internal .option-card,
  #app.app--internal .vehicle-option,
  #app.app--internal .ride-vehicle-option,
  #app.app--internal .ride-map-vehicle-option {
    border-radius: 19px !important;
    min-height: 74px !important;
    border: 1px solid #d6e5ef !important;
    background: #fff !important;
    box-shadow: 0 9px 22px rgba(6,39,67,.08) !important;
  }

  #app.app--internal .option-card.is-active,
  #app.app--internal .option-card.is-selected,
  #app.app--internal .option-card[aria-checked="true"],
  #app.app--internal .vehicle-option.is-active,
  #app.app--internal .ride-vehicle-option.is-active {
    background: #eaf7ff !important;
    border-color: #70c4f0 !important;
    box-shadow: 0 12px 26px rgba(8,118,189,.16) !important;
  }

  #app.app--internal .profile-avatar-preview,
  #app.app--internal .avatar,
  #app.app--internal .partner-profile-avatar,
  #app.app--internal .sidebar-user__avatar {
    width: 86px !important;
    height: 86px !important;
    border: 4px solid #fff !important;
    border-radius: 999px !important;
    background: linear-gradient(180deg, #fff, #d7effd) !important;
    box-shadow: 0 14px 28px rgba(6,39,67,.22) !important;
  }

  /* Bottom navigation: compact white pill, like the mockup phones. */
  #app.app--internal .mobile-bottom-nav {
    left: 10px !important;
    right: 10px !important;
    bottom: 9px !important;
    max-width: 410px;
    margin: 0 auto;
    min-height: 61px !important;
    padding: 6px 7px calc(6px + env(safe-area-inset-bottom)) !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,.97) !important;
    border: 1px solid rgba(10,48,85,.13) !important;
    box-shadow: 0 -10px 28px rgba(6,39,67,.15) !important;
    backdrop-filter: blur(16px) saturate(160%) !important;
  }

  #app.app--internal .mobile-bottom-nav__item {
    min-height: 48px !important;
    padding: 5px 3px !important;
    border-radius: 16px !important;
    color: #66798b !important;
    font-weight: 800 !important;
  }

  #app.app--internal .mobile-bottom-nav__item.is-active {
    color: #fff !important;
    background: linear-gradient(180deg, #0a456f, #063055) !important;
    box-shadow: 0 9px 18px rgba(6,39,67,.20) !important;
  }

  #app.app--internal .mobile-bottom-nav__icon svg {
    width: 20px !important;
    height: 20px !important;
    stroke-width: 2.6 !important;
  }

  #app.app--internal .mobile-bottom-nav__label {
    font-size: 9.5px !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
  }

  /* Passenger/driver maps: bigger visual map, overlay cards, and no desktop spillover. */
  #app.app--internal .ride-map-fullscreen-shell,
  #app.app--internal .driver-map-shell {
    border-radius: 24px !important;
    overflow: hidden !important;
    border: 1px solid rgba(10,48,85,.14) !important;
    box-shadow: 0 18px 42px rgba(6,39,67,.18) !important;
    background: #d8f2fb !important;
  }

  #app.app--internal .ride-map-canvas,
  #app.app--internal .driver-map-canvas,
  #app.app--internal .admin-live-map {
    min-height: 330px !important;
    border-radius: 22px !important;
  }

  #app.app--internal .ride-map-controls,
  #app.app--internal .ride-map-controls__panel,
  #app.app--internal .map-floating-card,
  #app.app--internal .ride-bottom-sheet,
  #app.app--internal .ride-map-controls__toggle {
    border-radius: 22px !important;
    background: rgba(255,255,255,.97) !important;
    border: 1px solid rgba(10,48,85,.12) !important;
    box-shadow: 0 14px 36px rgba(6,39,67,.15) !important;
  }

  #app.app--internal .ride-map-floating-action,
  #app.app--internal .ride-map-action-icon {
    width: 44px !important;
    height: 44px !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 20px rgba(6,39,67,.16) !important;
  }

  #app.app--internal .ride-price,
  #app.app--internal .ride-estimated-price,
  #app.app--internal .ride-fare-amount,
  #app.app--internal .ride-request-price,
  #app.app--internal [data-ride-price],
  #app.app--internal #rideEstimateValueResults {
    font-size: clamp(30px, 9vw, 40px) !important;
    line-height: .96 !important;
    font-weight: 950 !important;
    color: #102033 !important;
    letter-spacing: -1px !important;
  }

  #app.app--internal .admin-panel,
  #app.app--internal .documents-panel,
  #app.app--internal .wallet-panel {
    overflow-x: auto !important;
  }
}

/* v75 - rifinitura forte mobile interno: logo reale, meno padding, look più fedele ai mockup. */
@media (max-width: 768px) {
  html:has(#app.app--internal),
  body:has(#app.app--internal) {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    min-height: 100svh !important;
    overflow-x: hidden !important;
    background: #eaf5fb !important;
  }

  #app.app--internal {
    --fd-navy: #062f52;
    --fd-navy-dark: #052642;
    --fd-blue: #0877b8;
    --fd-blue-soft: #e9f7ff;
    --fd-red: #e52637;
    --fd-green: #13a565;
    --fd-yellow: #ffc33d;
    --fd-ink: #17314a;
    --fd-muted: #637587;
    --fd-line: rgba(6, 47, 82, .13);
    --fd-radius: 14px;
    --fd-radius-lg: 18px;
    --fd-shadow: 0 8px 20px rgba(6, 47, 82, .11);
    --fd-shadow-soft: 0 4px 12px rgba(6, 47, 82, .075);
    background:
      radial-gradient(circle at 30% -18%, rgba(31,151,212,.22), transparent 35%),
      linear-gradient(180deg, #dff2fb 0%, #f4f9fc 44%, #edf6fa 100%) !important;
    color: var(--fd-ink) !important;
  }

  /* Barra superiore vera: non testo finto, ma logo immagine reale. */
  #app.app--internal::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    height: calc(52px + env(safe-area-inset-top)) !important;
    z-index: 9990 !important;
    border-radius: 0 0 14px 14px !important;
    background: linear-gradient(180deg, #062b4b 0%, #083b63 100%) !important;
    box-shadow: 0 7px 17px rgba(6, 47, 82, .22) !important;
  }

  #app.app--internal .app-main::before {
    content: "" !important;
    position: fixed !important;
    top: calc(7px + env(safe-area-inset-top)) !important;
    left: 47px !important;
    width: 108px !important;
    height: 36px !important;
    z-index: 9992 !important;
    pointer-events: none !important;
    background-image: url('/frontend/public/assets/img/logo-bianco-rettangolare.png') !important;
    background-repeat: no-repeat !important;
    background-position: left center !important;
    background-size: contain !important;
    filter: drop-shadow(0 1px 1px rgba(0,0,0,.20));
  }

  #app.app--internal .app-main::after {
    content: "☰" !important;
    position: fixed !important;
    top: calc(13px + env(safe-area-inset-top)) !important;
    left: 15px !important;
    z-index: 9993 !important;
    color: #fff !important;
    font-size: 22px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    pointer-events: none !important;
  }

  #app.app--internal::after {
    content: "SOS" !important;
    position: fixed !important;
    top: calc(11px + env(safe-area-inset-top)) !important;
    right: 12px !important;
    z-index: 9994 !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 28px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 10px !important;
    background: linear-gradient(180deg, #ff4354 0%, #d9182c 100%) !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 950 !important;
    letter-spacing: -.1px !important;
    box-shadow: 0 5px 12px rgba(229, 38, 55, .30) !important;
  }

  #app.app--internal .app-header,
  #app.app--internal .app-sidebar,
  #app.app--internal .sidebar-brand-logo,
  #app.app--internal .sidebar-user,
  #app.app--internal .side-nav {
    display: none !important;
  }

  #app.app--internal .app-main,
  #app.app--internal .app-content {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100svh !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    display: block !important;
  }

  #app.app--internal .app-content {
    padding-top: calc(54px + env(safe-area-inset-top)) !important;
    padding-bottom: calc(67px + env(safe-area-inset-bottom)) !important;
  }

  #app.app--internal .route-view {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 430px !important;
    min-height: calc(100svh - 121px) !important;
    margin: 0 auto !important;
    padding: 7px 8px 10px !important;
    overflow: visible !important;
  }

  #app.app--internal .route-view::before,
  #app.app--internal .route-view::after {
    display: none !important;
    content: none !important;
  }

  #app.app--internal .profile-shell,
  #app.app--internal .wallet-shell,
  #app.app--internal .driver-shell,
  #app.app--internal .documents-shell,
  #app.app--internal .notifications-shell,
  #app.app--internal .referrals-shell,
  #app.app--internal .admin-shell,
  #app.app--internal .ride-shell,
  #app.app--internal .notifications-page {
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
  }

  /* Hero compatte tipo schermate mockup, senza spazio eccessivo. */
  #app.app--internal .profile-header-card,
  #app.app--internal .wallet-hero,
  #app.app--internal .driver-hero-card,
  #app.app--internal .documents-hero-card,
  #app.app--internal .notifications-hero-card,
  #app.app--internal .referrals-hero-card,
  #app.app--internal .admin-hero-card,
  #app.app--internal .ride-hero-card {
    min-height: 0 !important;
    padding: 12px 12px 11px !important;
    border-radius: var(--fd-radius-lg) !important;
    background:
      linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,0) 48%),
      linear-gradient(180deg, #083d68 0%, #062f52 100%) !important;
    box-shadow: var(--fd-shadow) !important;
    border: 0 !important;
  }

  #app.app--internal .profile-header-card::before,
  #app.app--internal .wallet-hero::before,
  #app.app--internal .driver-hero-card::before,
  #app.app--internal .documents-hero-card::before,
  #app.app--internal .notifications-hero-card::before,
  #app.app--internal .referrals-hero-card::before,
  #app.app--internal .admin-hero-card::before,
  #app.app--internal .ride-hero-card::before,
  #app.app--internal .profile-header-card::after,
  #app.app--internal .wallet-hero::after,
  #app.app--internal .driver-hero-card::after,
  #app.app--internal .documents-hero-card::after,
  #app.app--internal .notifications-hero-card::after,
  #app.app--internal .referrals-hero-card::after,
  #app.app--internal .admin-hero-card::after,
  #app.app--internal .ride-hero-card::after {
    display: none !important;
    content: none !important;
  }

  #app.app--internal .page-title,
  #app.app--internal h1.page-title {
    margin: 0 0 4px !important;
    color: #fff !important;
    text-transform: uppercase !important;
    font-size: 18px !important;
    line-height: 1.05 !important;
    letter-spacing: -.25px !important;
    font-weight: 950 !important;
  }

  #app.app--internal .page-subtitle,
  #app.app--internal .profile-header-card p,
  #app.app--internal .wallet-hero p,
  #app.app--internal .driver-hero-card p,
  #app.app--internal .documents-hero-card p,
  #app.app--internal .notifications-hero-card p,
  #app.app--internal .referrals-hero-card p,
  #app.app--internal .admin-hero-card p,
  #app.app--internal .ride-hero-card p {
    max-width: 100% !important;
    margin: 0 !important;
    color: rgba(255,255,255,.83) !important;
    font-size: 11.5px !important;
    line-height: 1.25 !important;
  }

  #app.app--internal .profile-section,
  #app.app--internal .wallet-panel,
  #app.app--internal .driver-panel,
  #app.app--internal .documents-panel,
  #app.app--internal .notifications-panel,
  #app.app--internal .referrals-panel,
  #app.app--internal .admin-panel,
  #app.app--internal .admin-stat-card,
  #app.app--internal .document-upload-card,
  #app.app--internal .documents-summary-card,
  #app.app--internal .notification-card,
  #app.app--internal .referral-card,
  #app.app--internal .referral-code-card,
  #app.app--internal .referral-stat-card,
  #app.app--internal .transaction-card,
  #app.app--internal .wallet-transaction-card,
  #app.app--internal .wallet-transaction-item,
  #app.app--internal .trip-card,
  #app.app--internal .driver-request-card,
  #app.app--internal .driver-request-item,
  #app.app--internal .driver-status-card,
  #app.app--internal .ride-request-panel,
  #app.app--internal .ride-history-panel,
  #app.app--internal .ride-navigation-card,
  #app.app--internal .ride-estimate-card,
  #app.app--internal .ride-open-item,
  #app.app--internal .ride-history-item,
  #app.app--internal .recent-request-item {
    padding: 10px !important;
    border-radius: var(--fd-radius) !important;
    border: 1px solid var(--fd-line) !important;
    background: rgba(255,255,255,.98) !important;
    box-shadow: var(--fd-shadow-soft) !important;
  }

  #app.app--internal .wallet-summary-cards,
  #app.app--internal .wallet-grid,
  #app.app--internal .driver-grid,
  #app.app--internal .driver-stats-grid,
  #app.app--internal .admin-summary-grid,
  #app.app--internal .documents-grid,
  #app.app--internal .referrals-grid,
  #app.app--internal .form-grid,
  #app.app--internal .profile-form,
  #app.app--internal .option-list,
  #app.app--internal .admin-layout,
  #app.app--internal .ride-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    grid-template-columns: none !important;
    margin: 0 !important;
  }

  #app.app--internal .wallet-summary-cards {
    margin-top: 8px !important;
  }

  #app.app--internal .wallet-balance-card,
  #app.app--internal .driver-stat-card,
  #app.app--internal .admin-stat-card {
    min-height: 0 !important;
    padding: 12px !important;
    border-radius: 16px !important;
    background: #fff !important;
    color: var(--fd-ink) !important;
    box-shadow: var(--fd-shadow-soft) !important;
  }

  #app.app--internal .wallet-balance-card__label,
  #app.app--internal .wallet-balance-card__hint {
    color: var(--fd-muted) !important;
    text-transform: uppercase !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    font-weight: 900 !important;
  }

  #app.app--internal .wallet-balance-card__amount,
  #app.app--internal #walletBalanceValue,
  #app.app--internal #walletBonusValue {
    color: var(--fd-navy) !important;
    font-size: 28px !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: -.8px !important;
  }

  #app.app--internal .section-title-row,
  #app.app--internal .wallet-panel__header,
  #app.app--internal .driver-panel__header,
  #app.app--internal .documents-panel__header,
  #app.app--internal .admin-panel__header,
  #app.app--internal .notifications-panel__header,
  #app.app--internal .referrals-panel__header,
  #app.app--internal .ride-request-panel__header,
  #app.app--internal .ride-history-panel__header {
    margin: 0 0 7px !important;
    gap: 4px !important;
  }

  #app.app--internal .section-title-row h2,
  #app.app--internal .wallet-panel__header h2,
  #app.app--internal .driver-panel__header h2,
  #app.app--internal .documents-panel__header h2,
  #app.app--internal .admin-panel__header h2,
  #app.app--internal .notifications-panel__header h2,
  #app.app--internal .referrals-panel__header h2,
  #app.app--internal .ride-request-panel__header h2,
  #app.app--internal .ride-history-panel__header h2,
  #app.app--internal h2 {
    margin: 0 !important;
    color: var(--fd-navy) !important;
    text-transform: uppercase !important;
    font-size: 14px !important;
    line-height: 1.08 !important;
    font-weight: 950 !important;
    letter-spacing: -.1px !important;
  }

  #app.app--internal .wallet-panel__header p,
  #app.app--internal .driver-panel__header p,
  #app.app--internal .documents-panel__header p,
  #app.app--internal .admin-panel__header p,
  #app.app--internal .ride-request-panel__header p,
  #app.app--internal .ride-history-panel__header p,
  #app.app--internal .form-hint,
  #app.app--internal .input-help,
  #app.app--internal p {
    font-size: 11.5px !important;
    line-height: 1.28 !important;
  }

  #app.app--internal .label,
  #app.app--internal label {
    margin-bottom: 4px !important;
    color: var(--fd-ink) !important;
    font-size: 11.5px !important;
    font-weight: 900 !important;
  }

  #app.app--internal .input,
  #app.app--internal input.input,
  #app.app--internal select.input,
  #app.app--internal textarea.input,
  #app.app--internal .admin-form input,
  #app.app--internal .admin-form select,
  #app.app--internal .admin-form textarea {
    min-height: 41px !important;
    border-radius: 10px !important;
    padding: 0 10px !important;
    font-size: 14px !important;
    border: 1px solid #d7e4ed !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8) !important;
  }

  #app.app--internal textarea.input,
  #app.app--internal .admin-form textarea {
    min-height: 72px !important;
    padding-top: 9px !important;
  }

  #app.app--internal .btn,
  #app.app--internal button.btn,
  #app.app--internal label.btn {
    min-height: 39px !important;
    border-radius: 10px !important;
    padding: 9px 11px !important;
    font-size: 10.5px !important;
    line-height: 1.1 !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
    letter-spacing: -.05px !important;
  }

  #app.app--internal .btn-primary {
    background: linear-gradient(180deg, #1185cb 0%, #076aa8 100%) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: 0 6px 14px rgba(8, 118, 184, .22) !important;
  }

  #app.app--internal .btn--ghost,
  #app.app--internal .btn-secondary {
    background: #f1f8fd !important;
    color: var(--fd-navy) !important;
    border: 1px solid #cddfea !important;
  }

  #app.app--internal .profile-avatar-preview,
  #app.app--internal .avatar,
  #app.app--internal .partner-profile-avatar,
  #app.app--internal .sidebar-user__avatar {
    width: 66px !important;
    height: 66px !important;
    border: 3px solid #fff !important;
    border-radius: 999px !important;
    box-shadow: 0 6px 14px rgba(6,47,82,.16) !important;
  }

  #app.app--internal .profile-avatar-preview img,
  #app.app--internal .avatar img,
  #app.app--internal .partner-profile-avatar img,
  #app.app--internal .sidebar-user__avatar img,
  #app.app--internal .sidebar-user__avatar-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: inherit !important;
  }

  #app.app--internal .option-card,
  #app.app--internal .vehicle-option,
  #app.app--internal .ride-vehicle-option,
  #app.app--internal .ride-map-vehicle-option {
    min-height: 56px !important;
    padding: 9px 10px !important;
    border-radius: 12px !important;
    background: #fff !important;
    border: 1px solid #d7e4ed !important;
    box-shadow: 0 4px 12px rgba(6,47,82,.07) !important;
  }

  #app.app--internal .status-pill,
  #app.app--internal .profile-completion-badge,
  #app.app--internal .documents-completion-badge,
  #app.app--internal .driver-status-badge,
  #app.app--internal .driver-online-badge,
  #app.app--internal .ride-hero-badge,
  #app.app--internal .admin-hero-badge {
    padding: 5px 8px !important;
    border-radius: 999px !important;
    font-size: 10px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
  }

  #app.app--internal .wallet-transaction-item,
  #app.app--internal .driver-request-item,
  #app.app--internal .notification-card,
  #app.app--internal .ride-history-item,
  #app.app--internal .ride-open-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
  }

  #app.app--internal .wallet-transaction-item__title,
  #app.app--internal .driver-request-item__title,
  #app.app--internal .ride-history-item__title {
    font-size: 12px !important;
    line-height: 1.15 !important;
    font-weight: 900 !important;
    color: var(--fd-ink) !important;
  }

  #app.app--internal .wallet-transaction-item__meta,
  #app.app--internal .driver-request-item__meta,
  #app.app--internal .ride-history-item__meta {
    font-size: 10.5px !important;
    line-height: 1.2 !important;
    color: var(--fd-muted) !important;
  }

  #app.app--internal .mobile-bottom-nav {
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    max-width: 430px !important;
    margin: 0 auto !important;
    min-height: calc(56px + env(safe-area-inset-bottom)) !important;
    padding: 4px 6px calc(4px + env(safe-area-inset-bottom)) !important;
    border-radius: 14px 14px 0 0 !important;
    background: rgba(255,255,255,.985) !important;
    border: 1px solid rgba(6,47,82,.12) !important;
    border-bottom: 0 !important;
    box-shadow: 0 -6px 18px rgba(6,47,82,.13) !important;
  }

  #app.app--internal .mobile-bottom-nav__item {
    min-height: 46px !important;
    padding: 4px 2px !important;
    border-radius: 10px !important;
    color: #50657a !important;
  }

  #app.app--internal .mobile-bottom-nav__item.is-active {
    background: #062f52 !important;
    color: #fff !important;
    box-shadow: 0 4px 10px rgba(6,47,82,.17) !important;
  }

  #app.app--internal .mobile-bottom-nav__icon svg {
    width: 18px !important;
    height: 18px !important;
    stroke-width: 2.5 !important;
  }

  #app.app--internal .mobile-bottom-nav__label {
    font-size: 8.8px !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
  }

  /* Mappa interna: massimo spazio visivo e pannelli sovrapposti più compatti. */
  body.ride-map-open #app.app--internal .app-content,
  #app.app--internal.app--ride-map-open .app-content {
    padding-top: calc(52px + env(safe-area-inset-top)) !important;
  }

  #app.app--internal .ride-map-fullscreen-shell,
  #app.app--internal .driver-map-shell,
  #app.app--internal .passenger-map-shell {
    border-radius: 14px !important;
    overflow: hidden !important;
    border: 1px solid rgba(6,47,82,.12) !important;
    box-shadow: var(--fd-shadow) !important;
  }

  #app.app--internal .ride-map-canvas,
  #app.app--internal .driver-map-canvas,
  #app.app--internal .admin-live-map,
  #app.app--internal .map-canvas {
    min-height: 405px !important;
    border-radius: 12px !important;
  }

  #app.app--internal .ride-map-controls,
  #app.app--internal .ride-map-controls__panel,
  #app.app--internal .map-floating-card,
  #app.app--internal .ride-bottom-sheet,
  #app.app--internal .ride-map-controls__toggle {
    border-radius: 14px !important;
    padding: 9px !important;
    background: rgba(255,255,255,.98) !important;
    border: 1px solid rgba(6,47,82,.12) !important;
    box-shadow: 0 8px 20px rgba(6,47,82,.13) !important;
  }

  #app.app--internal .ride-price,
  #app.app--internal .ride-estimated-price,
  #app.app--internal .ride-fare-amount,
  #app.app--internal .ride-request-price,
  #app.app--internal [data-ride-price],
  #app.app--internal #rideEstimateValueResults {
    font-size: 31px !important;
    line-height: .95 !important;
    letter-spacing: -.8px !important;
    font-weight: 950 !important;
  }

  #app.app--internal table {
    font-size: 11px !important;
  }

  #app.app--internal th,
  #app.app--internal td {
    padding: 7px 8px !important;
  }
}

/* v76 - allineamento padding: usa la stessa compattezza della pagina Mensajes y notificaciones su tutte le pagine interne mobile. */
@media (max-width: 768px) {
  #app.app--internal .route-view {
    padding: 7px 8px 10px !important;
  }

  #app.app--internal .profile-page,
  #app.app--internal .wallet-page,
  #app.app--internal .driver-page,
  #app.app--internal .documents-page,
  #app.app--internal .admin-page,
  #app.app--internal .ride-page,
  #app.app--internal .notifications-page {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    box-sizing: border-box !important;
  }

  #app.app--internal .profile-shell,
  #app.app--internal .wallet-shell,
  #app.app--internal .driver-shell,
  #app.app--internal .documents-shell,
  #app.app--internal .admin-shell,
  #app.app--internal .ride-shell,
  #app.app--internal .notifications-page {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 8px !important;
    box-sizing: border-box !important;
  }

  #app.app--internal .profile-header-card,
  #app.app--internal .wallet-hero,
  #app.app--internal .driver-hero-card,
  #app.app--internal .documents-hero-card,
  #app.app--internal .notifications-hero-card,
  #app.app--internal .referrals-hero-card,
  #app.app--internal .admin-hero-card,
  #app.app--internal .ride-hero-card {
    margin: 0 !important;
    padding: 12px 12px 11px !important;
    box-sizing: border-box !important;
  }

  #app.app--internal .profile-section,
  #app.app--internal .wallet-panel,
  #app.app--internal .driver-panel,
  #app.app--internal .documents-panel,
  #app.app--internal .notifications-panel,
  #app.app--internal .referrals-panel,
  #app.app--internal .admin-panel,
  #app.app--internal .ride-request-panel,
  #app.app--internal .ride-history-panel {
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  /* Titoli e testi nei contenitori blu superiori sempre bianchi. */
  #app.app--internal .profile-header-card :is(h1,h2,h3,.page-title,.page-subtitle,p,span,strong,b),
  #app.app--internal .wallet-hero > :not(.wallet-summary-cards) :is(h1,h2,h3,.page-title,.page-subtitle,p,span,strong,b),
  #app.app--internal .driver-hero-card :is(h1,h2,h3,.page-title,.page-subtitle,p,span,strong,b),
  #app.app--internal .documents-hero-card :is(h1,h2,h3,.page-title,.page-subtitle,p,span,strong,b),
  #app.app--internal .notifications-hero-card :is(h1,h2,h3,.page-title,.page-subtitle,p,span,strong,b),
  #app.app--internal .referrals-hero-card :is(h1,h2,h3,.page-title,.page-subtitle,p,span,strong,b),
  #app.app--internal .admin-hero-card :is(h1,h2,h3,.page-title,.page-subtitle,p,span,strong,b),
  #app.app--internal .ride-hero-card :is(h1,h2,h3,.page-title,.page-subtitle,p,span,strong,b) {
    color: #fff !important;
  }

  #app.app--internal .page-title,
  #app.app--internal h1.page-title {
    color: #fff !important;
  }
}

/* v77 - correzione titoli hero + respiro fondo Billetera/Invita.
   Solo mobile autenticato: desktop e pagine pubbliche non vengono toccati. */
@media (max-width: 768px) {
  /* I titoli dentro le hero blu devono essere identici a Mensajes y notificaciones. */
  #app.app--internal :is(
    .profile-header-card,
    .wallet-hero,
    .driver-hero-card,
    .documents-hero-card,
    .notifications-hero-card,
    .referrals-hero-card,
    .admin-hero-card,
    .ride-hero-card
  ) :is(h1, h2, h3, .page-title) {
    color: #fff !important;
    font-size: 18px !important;
    line-height: 1.05 !important;
    letter-spacing: -.25px !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
    margin: 0 0 4px !important;
  }

  #app.app--internal :is(
    .profile-header-card,
    .wallet-hero,
    .driver-hero-card,
    .documents-hero-card,
    .notifications-hero-card,
    .referrals-hero-card,
    .admin-hero-card,
    .ride-hero-card
  ) :is(.page-subtitle, p, span, strong, b) {
    color: rgba(255,255,255,.86) !important;
  }

  /* Non fare ereditare il bianco alle card statistiche/saldo dentro la hero della billetera. */
  #app.app--internal .wallet-hero .wallet-summary-cards,
  #app.app--internal .wallet-hero .wallet-summary-cards :is(span, strong, b, div, p) {
    color: var(--fd-ink) !important;
  }

  #app.app--internal .wallet-hero .wallet-summary-cards .wallet-balance-card__label,
  #app.app--internal .wallet-hero .wallet-summary-cards .wallet-balance-card__hint {
    color: var(--fd-muted) !important;
  }

  #app.app--internal .wallet-hero .wallet-summary-cards .wallet-balance-card__amount {
    color: var(--fd-navy) !important;
  }

  /* Più padding sotto nelle pagine Billetera e Invita, mantenendo il padding compatto laterale. */
  #app.app--internal .wallet-page,
  #app.app--internal .wallet-page .wallet-shell,
  #app.app--internal .profile-page:has(#referralCodeValue),
  #app.app--internal .profile-page:has(#referralCodeValue) .profile-shell {
    padding-bottom: 24px !important;
  }

  #app.app--internal .wallet-page .wallet-grid,
  #app.app--internal .profile-page:has(#referralCodeValue) .profile-shell > section:last-child {
    margin-bottom: 12px !important;
  }
}

/* v78 - micro-fix: fondo più equilibrato + titoli hero realmente bianchi.
   Scope: solo mobile autenticato. */
@media (max-width: 768px) {
  /* Forza il bianco anche se altri CSS globali applicano color/text-fill ai titoli. */
  #app.app--internal :is(
    .profile-header-card,
    .wallet-hero,
    .driver-hero-card,
    .documents-hero-card,
    .notifications-hero-card,
    .referrals-hero-card,
    .admin-hero-card,
    .ride-hero-card
  ) :is(h1, h2, h3, .page-title, .page-title *, .ride-hero-badge, .admin-hero-badge) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: 0 1px 1px rgba(0,0,0,.12) !important;
  }

  #app.app--internal :is(
    .profile-header-card,
    .wallet-hero,
    .driver-hero-card,
    .documents-hero-card,
    .notifications-hero-card,
    .referrals-hero-card,
    .admin-hero-card,
    .ride-hero-card
  ) :is(h1.page-title, .page-title) {
    font-size: 18px !important;
    line-height: 1.05 !important;
    letter-spacing: -.25px !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
    margin: 0 0 4px !important;
  }

  #app.app--internal :is(
    .profile-header-card,
    .wallet-hero,
    .driver-hero-card,
    .documents-hero-card,
    .notifications-hero-card,
    .referrals-hero-card,
    .admin-hero-card,
    .ride-hero-card
  ) :is(.page-subtitle, p) {
    color: rgba(255,255,255,.86) !important;
    -webkit-text-fill-color: rgba(255,255,255,.86) !important;
  }

  /* Le card saldo dentro la hero Billetera devono restare scure, non bianche. */
  #app.app--internal .wallet-hero .wallet-summary-cards,
  #app.app--internal .wallet-hero .wallet-summary-cards * {
    text-shadow: none !important;
    -webkit-text-fill-color: currentColor !important;
  }
  #app.app--internal .wallet-hero .wallet-summary-cards :is(span, strong, b, div, p) {
    color: var(--fd-ink) !important;
  }
  #app.app--internal .wallet-hero .wallet-summary-cards .wallet-balance-card__label,
  #app.app--internal .wallet-hero .wallet-summary-cards .wallet-balance-card__hint {
    color: var(--fd-muted) !important;
  }
  #app.app--internal .wallet-hero .wallet-summary-cards .wallet-balance-card__amount {
    color: var(--fd-navy) !important;
  }

  /* Riduce il padding sotto eccessivo aggiunto in v77. */
  #app.app--internal .wallet-page,
  #app.app--internal .wallet-page .wallet-shell,
  #app.app--internal .profile-page:has(#referralCodeValue),
  #app.app--internal .profile-page:has(#referralCodeValue) .profile-shell {
    padding-bottom: 10px !important;
  }

  #app.app--internal .wallet-page .wallet-grid,
  #app.app--internal .profile-page:has(#referralCodeValue) .profile-shell > section:last-child {
    margin-bottom: 4px !important;
  }

  /* Aggiunge solo un piccolo respiro in Mensajes e Solicitar viaje. */
  #app.app--internal .notifications-page,
  #app.app--internal .ride-page,
  #app.app--internal .ride-page .ride-shell {
    padding-bottom: 8px !important;
  }

  #app.app--internal .notifications-page > section:last-child,
  #app.app--internal .ride-page .ride-shell > section:last-child {
    margin-bottom: 4px !important;
  }
}

/* v79 - fix profilo mobile: upload button vertical alignment + avatar perfettamente tondo */
@media (max-width: 768px) {
  #app.app--internal .avatar-upload__actions {
    align-items: stretch !important;
    gap: 10px !important;
  }

  #app.app--internal .avatar-upload__actions .btn,
  #app.app--internal .avatar-upload__actions button.btn,
  #app.app--internal .avatar-upload__actions label.btn,
  #app.app--internal label[for="avatarFile"].btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 39px !important;
    height: 39px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1 !important;
    text-align: center !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
  }

  #app.app--internal #profileAvatarPreview.profile-avatar-preview {
    border-radius: 50% !important;
    overflow: hidden !important;
    clip-path: circle(50% at 50% 50%) !important;
    aspect-ratio: 1 / 1 !important;
    flex: 0 0 66px !important;
  }

  #app.app--internal #profileAvatarImage.profile-avatar-image,
  #app.app--internal #profileAvatarPreview.profile-avatar-preview img,
  #app.app--internal .profile-avatar-image {
    display: block;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    clip-path: circle(50% at 50% 50%) !important;
    background: #f8fafc !important;
  }
}

/* v80 - menu hamburger reale + drawer mobile + fix mappa sotto header */
@media (max-width: 768px) {
  #app.app--internal .app-main::after {
    content: "" !important;
    display: none !important;
  }

  .mobile-menu-btn {
    position: fixed !important;
    top: calc(10px + env(safe-area-inset-top)) !important;
    left: 10px !important;
    z-index: 10020 !important;
    width: 38px !important;
    height: 34px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
    box-shadow: none !important;
  }

  .mobile-menu-btn[hidden] { display: none !important; }
  .mobile-menu-btn svg { width: 23px !important; height: 23px !important; stroke-width: 2.8 !important; }

  .mobile-menu-drawer[hidden] { display: none !important; }
  .mobile-menu-drawer {
    position: fixed !important;
    inset: 0 !important;
    z-index: 10050 !important;
    display: block !important;
  }

  .mobile-menu-drawer__backdrop {
    position: absolute !important;
    inset: 0 !important;
    border: 0 !important;
    background: rgba(4, 18, 32, .48) !important;
    backdrop-filter: blur(2px) !important;
  }

  .mobile-menu-drawer__panel {
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: min(86vw, 340px) !important;
    padding: calc(16px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom)) !important;
    background: #f8fbff !important;
    border-radius: 0 26px 26px 0 !important;
    box-shadow: 20px 0 50px rgba(6,39,67,.28) !important;
    overflow-y: auto !important;
  }

  .mobile-menu-drawer__header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    padding: 0 2px 16px !important;
    border-bottom: 1px solid rgba(6,39,67,.10) !important;
  }

  .mobile-menu-drawer__header img { max-width: 132px !important; max-height: 42px !important; object-fit: contain !important; }
  .mobile-menu-drawer__close {
    width: 36px !important;
    height: 36px !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: rgba(6,39,67,.08) !important;
    color: #062743 !important;
    font-size: 25px !important;
    line-height: 1 !important;
  }

  .mobile-menu-drawer__user {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 16px 0 !important;
    padding: 12px !important;
    border-radius: 18px !important;
    background: linear-gradient(180deg, #062b4b, #083b63) !important;
    color: #fff !important;
  }

  .mobile-menu-drawer__avatar,
  .mobile-menu-drawer__avatar .sidebar-user__avatar,
  .mobile-menu-drawer__avatar .sidebar-user__avatar-fallback {
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    flex: 0 0 44px !important;
  }

  .mobile-menu-drawer__avatar img { width: 100% !important; height: 100% !important; object-fit: cover !important; border-radius: 50% !important; }
  .mobile-menu-drawer__user strong { display: block !important; font-size: 15px !important; line-height: 1.15 !important; }
  .mobile-menu-drawer__user span { display: block !important; font-size: 12px !important; opacity: .82 !important; margin-top: 2px !important; }

  .mobile-menu-drawer__nav {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
  }

  .mobile-menu-drawer__nav .side-nav__item {
    width: 100% !important;
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 12px 14px !important;
    border: 1px solid rgba(6,39,67,.10) !important;
    border-radius: 16px !important;
    background: #fff !important;
    color: #102033 !important;
    box-shadow: 0 8px 18px rgba(6,39,67,.07) !important;
    text-align: left !important;
  }

  .mobile-menu-drawer__nav .side-nav__item.is-active {
    background: #e8f4ff !important;
    border-color: rgba(13,138,211,.38) !important;
    color: #075985 !important;
  }

  .mobile-menu-drawer__nav .side-nav__item--logout {
    color: #b91c1c !important;
  }

  .mobile-menu-drawer__nav .side-nav__icon {
    width: 28px !important;
    height: 28px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.mobile-menu-open { overflow: hidden !important; }

  body.ride-map-open #app.app--internal .app-content,
  #app.app--internal.app--ride-map-open .app-content {
    padding-top: calc(58px + env(safe-area-inset-top)) !important;
  }

  body.ride-map-open #app.app--internal .route-view { padding-top: 0 !important; }

  body.ride-map-open #app.app--internal .ride-map-fullscreen-shell {
    height: calc(100svh - 58px - 67px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    max-height: calc(100svh - 58px - 67px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    border-radius: 0 !important;
  }

  body.ride-map-open #app.app--internal .ride-map-canvas-wrap,
  body.ride-map-open #app.app--internal .ride-map-canvas {
    height: 100% !important;
    min-height: 100% !important;
  }

  body.ride-map-open #app.app--internal .ride-map-floating-actions {
    top: calc(70px + env(safe-area-inset-top)) !important;
    z-index: 30 !important;
  }

  body.ride-map-open #app.app--internal .ride-map-controls {
    z-index: 40 !important;
  }
}

/* v81: quando si esce dalla mappa mobile, le pagine interne devono tornare con il padding normale senza refresh. */
@media (max-width: 768px) {
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .app-content {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
    padding-top: calc(58px + env(safe-area-inset-top)) !important;
    padding-bottom: calc(86px + env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .route-view,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .wallet-page,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .wallet-shell {
    width: 100% !important;
    max-width: 520px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }
}

/* v85 - richieste mobile: logo a 60px, meno padding laterale e scroll sempre in alto al cambio pagina. */
@media (max-width: 768px) {
  #app.app--internal .app-main::before {
    left: 60px !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .app-content {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  #app.app--internal .route-view {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }

  #app.app--internal .profile-page,
  #app.app--internal .wallet-page,
  #app.app--internal .driver-page,
  #app.app--internal .documents-page,
  #app.app--internal .admin-page,
  #app.app--internal .ride-page,
  #app.app--internal .notifications-page,
  #app.app--internal .profile-shell,
  #app.app--internal .wallet-shell,
  #app.app--internal .driver-shell,
  #app.app--internal .documents-shell,
  #app.app--internal .admin-shell,
  #app.app--internal .ride-shell {
    max-width: 100% !important;
  }
}

/* v93: passenger info/feedback visible inside driver realtime request popup */
.driver-request-passenger-preview {
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(37,99,235,.16);
  border-radius: 22px;
  padding: 14px;
  box-shadow: 0 14px 35px rgba(15,23,42,.10);
  margin: 10px 0 14px;
}
.driver-request-passenger-preview__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.driver-request-passenger-preview__head h4 {
  margin: 0;
  font-size: 1.1rem;
}
.driver-request-passenger-preview__head span,
.driver-request-passenger-preview__head p {
  margin: 0;
  color: #64748b;
  font-size: .9rem;
}
.driver-request-passenger-preview__feedback {
  display: grid;
  gap: 8px;
  max-height: 145px;
  overflow: auto;
}
.driver-request-passenger-preview__feedback article {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 9px 10px;
}
.driver-request-passenger-preview__feedback article p {
  margin: 3px 0;
}
.driver-request-passenger-preview__feedback article span {
  color: #94a3b8;
  font-size: .78rem;
}

/* v94: keep passenger details above request card on mobile and close back to request */
.fd-public-profile-modal--stacked {
  z-index: 32050 !important;
}
.fd-public-profile-card--stacked {
  z-index: 32060 !important;
}

/* v98: mobile ride map must fill available screen, and expanded sheet must stay below the header. */
@media (max-width: 768px) {
  body.ride-map-open,
  body.ride-map-open #app.app--internal,
  body.ride-map-open #app.app--internal .app-main,
  body.ride-map-open #app.app--internal .app-content,
  body.ride-map-open #app.app--internal .route-view,
  body.ride-map-open #app.app--internal .passenger-map-page,
  body.ride-map-open #app.app--internal #rideSearchResults {
    width: 100% !important;
    max-width: 100% !important;
    height: calc(100svh - 58px - env(safe-area-inset-top)) !important;
    min-height: calc(100svh - 58px - env(safe-area-inset-top)) !important;
    max-height: calc(100svh - 58px - env(safe-area-inset-top)) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.ride-map-open #app.app--internal .app-content,
  #app.app--internal.app--ride-map-open .app-content {
    padding-top: calc(58px + env(safe-area-inset-top)) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
    overflow: hidden !important;
  }

  body.ride-map-open #app.app--internal .ride-map-fullscreen-shell {
    position: relative !important;
    width: 100vw !important;
    height: calc(100svh - 58px - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    min-height: calc(100svh - 58px - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    max-height: calc(100svh - 58px - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    box-shadow: none !important;
  }

  body.ride-map-open #app.app--internal .ride-map-canvas-wrap,
  body.ride-map-open #app.app--internal .ride-map-canvas,
  body.ride-map-open #app.app--internal .ride-map-canvas-wrap--fullscreen,
  body.ride-map-open #app.app--internal .ride-map-canvas--fullscreen {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    border-radius: 0 !important;
  }

  body.ride-map-open #app.app--internal .ride-map-floating-actions {
    top: calc(34px + env(safe-area-inset-top)) !important;
    right: 18px !important;
    z-index: 90 !important;
  }

  body.ride-map-open #app.app--internal .ride-map-controls {
    position: absolute !important;
    left: 18px !important;
    right: 18px !important;
    bottom: calc(18px + env(safe-area-inset-bottom)) !important;
    top: auto !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100% - 36px) !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    z-index: 120 !important;
    pointer-events: none !important;
  }

  body.ride-map-open #app.app--internal .ride-map-controls__toggle {
    width: 100% !important;
    min-height: 70px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 48px !important;
    align-items: center !important;
    padding: 14px 14px 14px 18px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.98) !important;
    border: 1px solid rgba(6,39,67,.10) !important;
    box-shadow: 0 18px 40px rgba(6,39,67,.20) !important;
    pointer-events: auto !important;
  }

  body.ride-map-open #app.app--internal .ride-map-controls__toggle-icon {
    width: 48px !important;
    height: 48px !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    background: rgba(6,39,67,.06) !important;
    overflow: hidden !important;
  }

  body.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    top: calc(12px + env(safe-area-inset-top)) !important;
    bottom: calc(10px + env(safe-area-inset-bottom)) !important;
    max-height: calc(100% - 22px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    display: flex !important;
    flex-direction: column-reverse !important;
    gap: 8px !important;
  }

  body.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    flex: 0 0 auto !important;
    min-height: 54px !important;
    padding: 10px 12px 10px 16px !important;
  }

  body.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 14px !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.98) !important;
    border: 1px solid rgba(6,39,67,.10) !important;
    box-shadow: 0 18px 45px rgba(6,39,67,.22) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    pointer-events: auto !important;
  }
}

/* v100 - FIX DEFINITIVO: il form Viaje/Solicitar viaje deve sempre scorrere da mobile.
   Non bloccare la pagina normale: blocca solo la landing con volante o la mappa fullscreen reale. */
@media (max-width: 768px) {
  html:not(:has(#app.app--internal .passenger-request-page)):not(:has(body.ride-map-open)),
  body:not(.ride-map-open):not(:has(#app.app--internal .passenger-request-page)) {
    height: auto !important;
    min-height: 100% !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open),
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .app-main,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .app-content,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .route-view {
    height: auto !important;
    min-height: 100svh !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .app-content {
    padding-top: calc(58px + env(safe-area-inset-top)) !important;
    padding-bottom: calc(92px + env(safe-area-inset-bottom)) !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .route-view:has(.ride-page) {
    display: block !important;
    height: auto !important;
    min-height: calc(100svh - 58px - 72px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: calc(108px + env(safe-area-inset-bottom)) !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-page,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-shell,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-layout,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-request-panel,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-navigation-card,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-estimate-card,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-history-panel {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  /* La sola pagina iniziale Solicitar viaje con volante resta a schermo singolo. */
  html:has(#app.app--internal .passenger-request-page),
  body:has(#app.app--internal .passenger-request-page) {
    overflow: hidden !important;
    height: 100% !important;
  }
}

/* v101 - scroll normale e robusto per il form Viaje/Solicitar viaje mobile.
   Il blocco a schermo singolo vale solo per fd-route-passenger-request, non per il form fd-route-passenger-map. */
@media (max-width: 768px) {
  html:has(body.fd-route-passenger-map:not(.ride-map-open)),
  body.fd-route-passenger-map:not(.ride-map-open) {
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .app-main,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .app-content {
    height: 100svh !important;
    min-height: 100svh !important;
    max-height: 100svh !important;
    overflow: hidden !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .app-content {
    padding-top: calc(58px + env(safe-area-inset-top)) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: calc(74px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .route-view {
    display: block !important;
    width: 100% !important;
    max-width: 430px !important;
    height: calc(100svh - 58px - 74px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    min-height: 0 !important;
    max-height: calc(100svh - 58px - 74px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    margin: 0 auto !important;
    padding: 12px 0 calc(32px + env(safe-area-inset-bottom)) !important;
    overflow-x: hidden !important;
    overflow-y: scroll !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-y !important;
    overscroll-behavior-y: contain !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .route-view::before,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .route-view::after {
    display: none !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-page,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-shell,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-layout,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-request-panel,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-navigation-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-estimate-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-history-panel {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-page {
    padding: 0 0 calc(130px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-shell {
    gap: 14px !important;
    padding: 0 !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-hero-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-request-panel,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-navigation-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-history-panel {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* La landing iniziale con volante/cuore resta non scrollabile. */
  body.fd-route-passenger-request,
  html:has(body.fd-route-passenger-request) {
    overflow: hidden !important;
    height: 100% !important;
  }
}

/* v102 - Viaje/Solicitar viaje FORM mobile deve essere una pagina normale: scroll del body e padding laterale.
   Non eredita più il CSS full-screen della landing Solicitar viaje. */
@media (max-width: 768px) {
  html:has(body.fd-route-passenger-map:not(.ride-map-open)),
  body.fd-route-passenger-map:not(.ride-map-open) {
    height: auto !important;
    min-height: 100% !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-y !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .app-main,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .app-content,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .route-view {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    overscroll-behavior-y: auto !important;
    touch-action: pan-y !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .app-content {
    width: 100% !important;
    padding-top: calc(58px + env(safe-area-inset-top)) !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    padding-bottom: calc(96px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .route-view {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 10px 0 calc(120px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-page,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-shell,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-layout,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-request-panel,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-navigation-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-estimate-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-history-panel {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-page {
    padding: 0 !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-shell {
    width: 100% !important;
    gap: 12px !important;
    padding: 0 0 calc(40px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-hero-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-request-panel,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-navigation-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-estimate-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-history-panel {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* La landing con volante/cuore resta l'unica pagina passeggero senza scroll. */
  body.fd-route-passenger-request,
  html:has(body.fd-route-passenger-request) {
    height: 100% !important;
    overflow: hidden !important;
  }
}

/* v103 - mobile Viaje: quando si cerca la ruta, la mappa deve aprirsi davvero a schermo pieno.
   Il bug era che il risultato mappa rimaneva nel flusso sotto il form; con body overflow hidden sembrava tutto bloccato.
   In ride-map-open nascondiamo il form e fissiamo la mappa tra header e bottom nav. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open,
  body.fd-route-passenger-map.ride-map-open #app.app--internal,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .app-main,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .app-content,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .route-view,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-page,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-shell {
    width: 100% !important;
    max-width: 100% !important;
    height: 100svh !important;
    min-height: 100svh !important;
    max-height: 100svh !important;
    overflow: hidden !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .app-content {
    padding: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .route-view {
    padding: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-hero-card,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-layout,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-history-panel,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-request-panel {
    display: none !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal #rideSearchResults:not([hidden]) {
    display: block !important;
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    top: calc(58px + env(safe-area-inset-top)) !important;
    bottom: calc(86px + env(safe-area-inset-bottom)) !important;
    width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    z-index: 70 !important;
    background: #eaf7ff !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell {
    position: absolute !important;
    inset: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    z-index: 71 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas-wrap,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas-wrap--fullscreen,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas--fullscreen {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    border-radius: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-actions {
    position: absolute !important;
    top: 18px !important;
    right: 18px !important;
    z-index: 90 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls {
    position: absolute !important;
    left: 18px !important;
    right: 18px !important;
    bottom: calc(18px + env(safe-area-inset-bottom)) !important;
    top: auto !important;
    z-index: 120 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    top: 12px !important;
    bottom: calc(12px + env(safe-area-inset-bottom)) !important;
    max-height: calc(100% - 24px - env(safe-area-inset-bottom)) !important;
  }
}

/* v104 - mobile map: la mappa deve passare sotto la header arrotondata.
   La header resta sopra con z-index alto; solo i controlli interattivi partono sotto la header. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #app.app--internal #rideSearchResults:not([hidden]) {
    top: 0 !important;
    bottom: calc(86px + env(safe-area-inset-bottom)) !important;
    z-index: 70 !important;
    background: #eaf7ff !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas-wrap,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas-wrap--fullscreen,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas--fullscreen {
    top: 0 !important;
    bottom: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-actions {
    top: calc(62px + env(safe-area-inset-top)) !important;
    right: 18px !important;
    z-index: 90 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls {
    left: 18px !important;
    right: 18px !important;
    bottom: calc(18px + env(safe-area-inset-bottom)) !important;
    z-index: 120 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    top: calc(64px + env(safe-area-inset-top)) !important;
    bottom: calc(12px + env(safe-area-inset-bottom)) !important;
    max-height: calc(100svh - 64px - 86px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel {
    max-height: calc(100svh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  /* Assicura che la header mobile resti sempre sopra alla mappa. */
  #app.app--internal::before { z-index: 9990 !important; }
  #app.app--internal .app-main::before { z-index: 9992 !important; }
  #app.app--internal::after { z-index: 9994 !important; }
  .mobile-menu-btn { z-index: 10020 !important; }
}

/* v105 - mobile Viaje cleanup: meno spazio sotto nella pagina normale e pannello mappa espanso scrollabile fino in fondo. */
@media (max-width: 768px) {
  /* Pagina Viaje normale: deve avere padding laterale, scroll normale e poco vuoto sotto. */
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .app-content {
    padding-left: 10px !important;
    padding-right: 10px !important;
    padding-bottom: calc(78px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .route-view {
    padding: 10px 0 calc(18px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-page,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-shell {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-history-panel {
    margin-bottom: 0 !important;
  }

  /* Mappa fullscreen: usa tutto lo spazio fino a sopra la bottom nav. */
  body.fd-route-passenger-map.ride-map-open #app.app--internal #rideSearchResults:not([hidden]) {
    bottom: calc(74px + env(safe-area-inset-bottom)) !important;
  }

  /* Quando il pannello dettagli è aperto, deve stare sotto la header e poter scorrere fino a Personaliza tu viaje. */
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    top: calc(58px + env(safe-area-inset-top)) !important;
    bottom: calc(8px + env(safe-area-inset-bottom)) !important;
    height: auto !important;
    max-height: none !important;
    display: flex !important;
    flex-direction: column-reverse !important;
    gap: 8px !important;
    overflow: hidden !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    flex: 0 0 auto !important;
    min-height: 58px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    touch-action: pan-y !important;
    padding-bottom: calc(28px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel .ride-map-vehicle-list,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel .ride-map-personalize,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel .ride-map-actions,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel .ride-map-note,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel .ride-map-customize {
    max-height: none !important;
    overflow: visible !important;
  }
}


/* v106 - mobile map layering and bottom-sheet fix.
   La mappa riempie anche dietro header e barra mobile; header e bottom nav restano sopra.
   Il pannello Detalles, quando aperto, ha altezza reale e scroll fino in fondo. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #app.app--internal #rideSearchResults:not([hidden]) {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100svh !important;
    max-height: 100svh !important;
    overflow: hidden !important;
    z-index: 70 !important;
    background: #eaf7ff !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas-wrap,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas-wrap--fullscreen,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas--fullscreen {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    border-radius: 0 !important;
  }

  #app.app--internal::before,
  #app.app--internal .app-main::before,
  #app.app--internal::after,
  #mobileBottomNav,
  .mobile-bottom-nav {
    z-index: 10050 !important;
  }
  .mobile-menu-btn { z-index: 10080 !important; }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-actions {
    top: calc(70px + env(safe-area-inset-top)) !important;
    right: 18px !important;
    z-index: 180 !important;
  }

  body.fd-route-passenger-map.ride-map-open:has(.ride-map-controls.is-expanded) #app.app--internal .ride-map-floating-actions {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls {
    position: fixed !important;
    left: 18px !important;
    right: 18px !important;
    bottom: calc(92px + env(safe-area-inset-bottom)) !important;
    top: auto !important;
    z-index: 220 !important;
    max-height: none !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls:not(.is-expanded) {
    transform: translateZ(0) !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    position: fixed !important;
    top: calc(72px + env(safe-area-inset-top)) !important;
    bottom: calc(92px + env(safe-area-inset-bottom)) !important;
    left: 18px !important;
    right: 18px !important;
    height: auto !important;
    max-height: none !important;
    display: flex !important;
    flex-direction: column-reverse !important;
    gap: 10px !important;
    overflow: hidden !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    flex: 0 0 74px !important;
    min-height: 74px !important;
    max-height: 74px !important;
    margin: 0 !important;
    position: relative !important;
    z-index: 2 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    touch-action: pan-y !important;
    padding: 18px 18px calc(46px + env(safe-area-inset-bottom)) !important;
    margin: 0 !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,.96) !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel > *:last-child {
    margin-bottom: calc(28px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel .ride-map-actions,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel .ride-map-customize,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel .ride-map-personalize {
    display: block !important;
    visibility: visible !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-shell {
    min-height: calc(100svh - 168px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-canvas {
    min-height: 360px !important;
  }
}

/* v107: scheda viaggio attivo sempre visibile sulla mappa mobile/autista */
.driver-map-active-trip-card {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  z-index: 28;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(14,165,233,.22);
  border-radius: 22px;
  box-shadow: 0 18px 44px rgba(15,23,42,.18);
  padding: 14px;
  backdrop-filter: blur(10px);
}
.driver-map-active-trip-card[hidden] { display: none !important; }
.driver-map-active-trip-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.driver-map-active-trip-card__top span {
  display: block;
  color: #0284c7;
  font-weight: 800;
  font-size: .78rem;
  text-transform: uppercase;
}
.driver-map-active-trip-card__top strong {
  display: block;
  color: #0f172a;
  font-size: 1.05rem;
}
.driver-map-active-trip-card__route {
  color: #475569;
  font-size: .92rem;
  line-height: 1.25;
  margin-bottom: 12px;
  max-height: 2.4em;
  overflow: hidden;
}
.driver-map-active-trip-card__actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.driver-map-active-trip-card__actions .btn {
  min-height: 42px;
  padding-left: 8px;
  padding-right: 8px;
  font-size: .82rem;
}
@media (max-width: 768px) {
  .driver-map-shell:has(.driver-map-active-trip-card:not([hidden])) .driver-map-actions {
    display: none !important;
  }
  .driver-map-active-trip-card {
    left: 14px;
    right: 14px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    z-index: 45;
  }
  .driver-map-active-trip-card__actions {
    gap: 7px;
  }
  .driver-map-active-trip-card__actions .btn {
    min-height: 40px;
    border-radius: 14px;
  }
}


/* v108: mobile driver screens - active trip/history visible, readable text, normal panels */
@media (max-width: 768px) {
  body.fd-route-driver-dashboard #app.app--internal .driver-page,
  body.fd-route-driver-dashboard #app.app--internal .driver-shell,
  body.fd-route-driver-dashboard #app.app--internal .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-panel * {
    color: #0f172a;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel__header h2,
  body.fd-route-driver-dashboard #app.app--internal .driver-history-item__route,
  body.fd-route-driver-dashboard #app.app--internal .driver-request-card__route strong,
  body.fd-route-driver-dashboard #app.app--internal .ride-estimate-card__row strong {
    color: #0f172a !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel__header p,
  body.fd-route-driver-dashboard #app.app--internal .driver-history-item__meta,
  body.fd-route-driver-dashboard #app.app--internal .driver-request-card__meta,
  body.fd-route-driver-dashboard #app.app--internal .driver-status-message {
    color: #64748b !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) {
    padding-left: 10px !important;
    padding-right: 10px !important;
    padding-bottom: calc(92px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel[hidden] {
    display: none !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel {
    display: block !important;
    border: 1px solid rgba(14, 165, 233, .22) !important;
    box-shadow: 0 16px 38px rgba(15,23,42,.12) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel__actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel__actions .btn {
    min-height: 46px !important;
    color: #0f172a !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel__actions .btn-primary {
    color: #ffffff !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-history-list,
  body.fd-route-driver-dashboard #app.app--internal .driver-requests-list {
    color: #0f172a !important;
  }

  /* Buscar viaje: una pagina normale ma compatta; mostra viaggio attivo se esiste, richieste e storico. */
  #app.app--internal .driver-page--mobile-search {
    height: auto !important;
    min-height: calc(100svh - 58px - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 10px 10px calc(92px + env(safe-area-inset-bottom)) !important;
  }

  #app.app--internal .driver-page--mobile-search .driver-shell {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
  }

  #app.app--internal .driver-page--mobile-search .driver-hero-card,
  #app.app--internal .driver-page--mobile-search .driver-map-panel,
  #app.app--internal .driver-page--mobile-search .driver-grid {
    display: none !important;
  }

  #app.app--internal .driver-page--mobile-search .driver-active-trip-panel:not([hidden]),
  #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverRequestsList),
  #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverTripsHistoryList) {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 18px 16px !important;
    border-radius: 24px !important;
    background: rgba(255,255,255,.97) !important;
  }

  #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverTripsHistoryList) {
    display: block !important;
  }

  #app.app--internal .driver-page--mobile-search #driverRequestsList,
  #app.app--internal .driver-page--mobile-search #driverTripsHistoryList {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

/* v109: unify mobile driver pages with Profil/Billetera, fix fullscreen toolbar offset */
@media (max-width: 768px) {
  body.fd-route-driver-dashboard #app.app--internal .driver-page,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search {
    padding-left: 18px !important;
    padding-right: 18px !important;
    padding-bottom: calc(104px + env(safe-area-inset-bottom)) !important;
    max-width: none !important;
    width: 100% !important;
    overflow: visible !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-shell,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-shell {
    width: 100% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: 14px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-hero-card {
    display: flex !important;
    min-height: 172px !important;
    padding: 26px 22px 22px !important;
    border-radius: 28px !important;
    margin: 0 !important;
    background: linear-gradient(180deg, var(--fd-navy) 0%, var(--fd-navy-2) 100%) !important;
    color: #fff !important;
    box-shadow: var(--fd-shadow-strong) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card .page-title,
  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card .page-subtitle,
  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card p,
  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card span,
  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card strong {
    color: #fff !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-grid {
    display: none !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverRequestsList),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverTripsHistoryList),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-active-trip-panel:not([hidden]) {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 18px !important;
    border-radius: 24px !important;
    background: rgba(255,255,255,.98) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel:not([hidden]) {
    order: -1 !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal::before,
  body.driver-map-fullscreen-mode #app.app--internal .app-main::before,
  body.driver-map-fullscreen-mode #app.app--internal .app-main::after,
  body.driver-map-fullscreen-mode #app.app--internal::after,
  body.driver-map-fullscreen-mode .mobile-bottom-nav {
    z-index: 10050 !important;
  }

  body.driver-map-fullscreen-mode .driver-map-shell.is-driver-map-expanded .driver-map-toolbar {
    top: calc(96px + env(safe-area-inset-top)) !important;
    left: 14px !important;
    right: 14px !important;
    z-index: 10020 !important;
  }

  body.driver-map-fullscreen-mode .driver-map-shell.is-driver-map-expanded .driver-map-actions {
    bottom: calc(96px + env(safe-area-inset-bottom)) !important;
    z-index: 10020 !important;
  }

  body.driver-map-fullscreen-mode .driver-map-shell.is-driver-map-expanded .driver-map-canvas {
    inset: 0 !important;
  }
}

/* v110: driver mobile spacing, map re-entry and toolbar polish */
@media (max-width: 768px) {
  body.fd-route-driver-dashboard #app.app--internal .app-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search {
    padding-left: 10px !important;
    padding-right: 10px !important;
    padding-bottom: calc(82px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-shell,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-shell {
    gap: 12px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-hero-card {
    min-height: 150px !important;
    padding: 24px 20px 20px !important;
    border-radius: 26px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverRequestsList),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverTripsHistoryList),
  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel:not([hidden]) {
    padding: 16px !important;
    border-radius: 22px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-panel {
    margin-bottom: 8px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-shell {
    min-height: 420px !important;
    border-radius: 22px !important;
    background: #d7f5ff !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-canvas {
    min-height: 420px !important;
    height: 56vh !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    align-items: stretch !important;
    padding: 10px !important;
    border-radius: 22px !important;
    background: rgba(232, 249, 255, .82) !important;
    backdrop-filter: blur(10px) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar .btn {
    min-height: 54px !important;
    border-radius: 16px !important;
    padding: 10px 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    white-space: normal !important;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .08) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar .btn svg,
  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar .btn i {
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 auto !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-provider-label {
    grid-column: 1 / -1 !important;
    width: fit-content !important;
    max-width: 100% !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.94) !important;
    color: #0f2437 !important;
    font-weight: 800 !important;
    box-shadow: 0 8px 18px rgba(15,23,42,.08) !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar {
    top: calc(74px + env(safe-area-inset-top)) !important;
    left: 10px !important;
    right: 10px !important;
    z-index: 10020 !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn {
    min-height: 50px !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-actions {
    bottom: calc(88px + env(safe-area-inset-bottom)) !important;
  }
}

/* v111: driver mobile parity with Perfil/Billetera + fullscreen map cleanup */
@media (max-width: 768px) {
  body.fd-route-driver-dashboard #app.app--internal .app-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .route-view {
    padding-left: clamp(18px, 3.5vw, 24px) !important;
    padding-right: clamp(18px, 3.5vw, 24px) !important;
    padding-top: 8px !important;
    padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search,
  body.fd-route-driver-dashboard #app.app--internal .driver-shell,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-shell {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 12px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-hero-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel:not([hidden]),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverRequestsList),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverTripsHistoryList) {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-hero-card {
    min-height: 150px !important;
    padding: 24px 20px 20px !important;
    border-radius: 26px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel:not([hidden]),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverRequestsList),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverTripsHistoryList) {
    padding: 16px !important;
    border-radius: 22px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-grid {
    display: none !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .app-content,
  body.driver-map-fullscreen-mode #app.app--internal .route-view,
  body.driver-map-fullscreen-mode #app.app--internal .driver-page,
  body.driver-map-fullscreen-mode #app.app--internal .driver-shell,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-panel {
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100svh !important;
    min-height: 100svh !important;
    max-height: 100svh !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
    z-index: 9990 !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-canvas,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded #driverMap {
    position: absolute !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100svh !important;
    min-height: 100svh !important;
    max-height: 100svh !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar {
    top: calc(82px + env(safe-area-inset-top)) !important;
    left: 20px !important;
    right: 20px !important;
    z-index: 10020 !important;
    padding: 10px !important;
    border-radius: 22px !important;
    background: rgba(232, 249, 255, .72) !important;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .10) !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn {
    min-height: 48px !important;
    border-radius: 16px !important;
    font-size: 13px !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-actions:not(:has(.btn:not([hidden]))) {
    display: none !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-actions {
    bottom: calc(88px + env(safe-area-inset-bottom)) !important;
    left: 20px !important;
    right: 20px !important;
    z-index: 10020 !important;
  }
}


/* v108: fix mobile bottom-sheet scroll in passenger map.
   Il pannello "Personaliza tu viaje" non deve essere tagliato e deve poter scorrere fino in fondo. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    top: calc(64px + env(safe-area-inset-top)) !important;
    bottom: calc(82px + env(safe-area-inset-bottom)) !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column-reverse !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    touch-action: pan-y !important;
    padding: 16px 16px calc(96px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-section,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-card,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-grid {
    max-height: none !important;
    overflow: visible !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-card {
    display: block !important;
    width: 100% !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-card summary {
    min-height: 52px !important;
    position: relative !important;
    z-index: 2 !important;
    touch-action: manipulation !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-card[open] .ride-customization-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding-bottom: calc(36px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-section[hidden] {
    display: none !important;
  }
}

/* v109 - correzione spazio sotto Personaliza tu viaje e bottom sheet sopra barra mobile.
   Il contenitore non deve finire sotto la bottom nav e il contenuto non deve avere vuoto eccessivo in fondo. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls {
    bottom: calc(98px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    top: calc(64px + env(safe-area-inset-top)) !important;
    bottom: calc(98px + env(safe-area-inset-bottom)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    flex: 0 0 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    margin: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 14px 14px 14px !important;
    margin: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel > *:last-child {
    margin-bottom: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-section,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-card {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-card[open] .ride-customization-grid {
    padding-bottom: 8px !important;
    margin-bottom: 0 !important;
  }
}

/* v110 - allineamento padding laterale autista.
   Panel de conductor e Buscar viaje devono avere la stessa spaziatura di Perfil e Billetera. */
@media (max-width: 768px) {
  body.fd-route-driver-dashboard #app.app--internal .route-view {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search,
  body.fd-route-driver-dashboard #app.app--internal .driver-shell,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-shell {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    gap: 8px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-hero-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel:not([hidden]),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverRequestsList),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverTripsHistoryList) {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-hero-card {
    padding-top: 12px !important;
    padding-bottom: 11px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel:not([hidden]) {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}

/* v112 - correzione finale spazi autista: Panel de conductor / Buscar viaje
   - stesso bordo esterno di Perfil/Billetera
   - meno padding interno laterale e inferiore
   - meno spazio tra titolo/paragrafo e pill En línea */
@media (max-width: 768px) {
  body.fd-route-driver-dashboard #app.app--internal .app-content {
    padding-left: 10px !important;
    padding-right: 10px !important;
    padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .route-view {
    padding-left: 4px !important;
    padding-right: 4px !important;
    padding-top: 7px !important;
    padding-bottom: calc(74px + env(safe-area-inset-bottom)) !important;
    max-width: 520px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search,
  body.fd-route-driver-dashboard #app.app--internal .driver-shell,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-shell {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 8px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-hero-card {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 12px 12px 10px !important;
    border-radius: 22px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card > div:first-child,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-hero-card > div:first-child {
    margin: 0 !important;
    padding: 0 !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card .page-title,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-hero-card .page-title {
    margin: 0 0 4px !important;
    line-height: 1.04 !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-hero-card .page-subtitle,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-hero-card .page-subtitle {
    margin: 0 !important;
    line-height: 1.28 !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-online-badge,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-online-badge {
    margin: 0 !important;
    padding: 7px 10px !important;
    align-self: flex-start !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel:not([hidden]),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverRequestsList),
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel:has(#driverTripsHistoryList) {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 12px 12px 10px !important;
    border-radius: 22px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel__header,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel__header {
    margin: 0 0 8px !important;
    padding: 0 !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel__header h2,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel__header h2 {
    margin: 0 0 4px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel__header p,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-panel__header p {
    margin: 0 !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-grid,
  body.fd-route-driver-dashboard #app.app--internal .driver-page--mobile-search .driver-grid {
    gap: 8px !important;
    margin: 0 !important;
  }
}

/* v113 - SOLO Panel de conductor: togli padding extra, senza toccare Buscar viaje */
@media (max-width: 768px) {
  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 6px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-shell {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 6px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-hero-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-active-trip-panel:not([hidden]) {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 6px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    padding-bottom: 8px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-hero-card {
    padding-top: 10px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-active-trip-panel:not([hidden]) {
    padding-top: 10px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-grid {
    gap: 6px !important;
    margin-bottom: 0 !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-shell > :last-child,
  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-panel:last-child {
    margin-bottom: 0 !important;
  }
}


/* v114 - correzioni finali: Panel de conductor più coerente, logo routing per ruolo e bottom sheet mappa stabile. */
@media (max-width: 768px) {
  /* Non tocchiamo Buscar viaje: queste regole valgono solo per Panel de conductor normale. */
  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-hero-card {
    padding: 15px 14px 14px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-active-trip-panel:not([hidden]) {
    padding: 14px 14px 13px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-panel__header {
    margin-bottom: 10px !important;
  }

  /* Il logo interno deve essere percepito come bottone. */
  #app.app--internal .sidebar-brand-logo,
  .mobile-menu-drawer__header img {
    cursor: pointer !important;
  }

  /* Il contenitore/handle del pannello mappa resta grande uguale quando si apre. */
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    left: 14px !important;
    right: 14px !important;
    width: auto !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    width: 100% !important;
    flex: 0 0 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;
    padding: 12px 16px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel {
    padding: 14px 14px calc(32px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-section {
    margin-bottom: 16px !important;
    padding-bottom: 8px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-customization-card[open] .ride-customization-grid {
    padding-bottom: calc(28px + env(safe-area-inset-bottom)) !important;
    margin-bottom: 8px !important;
  }
}

@media (min-width: 769px) {
  #app.app--internal .sidebar-brand-logo {
    cursor: pointer !important;
  }

  #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-hero-card {
    padding: 24px !important;
  }

  #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-panel,
  #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-map-panel,
  #app.app--internal .driver-page:not(.driver-page--mobile-search) .driver-active-trip-panel:not([hidden]) {
    padding: 22px !important;
  }
}

/* v115 - fix testi su card bianche, padding Solicitar Viaje e posizione pagina */
@media (max-width: 768px) {
  /* Buscar viaje / Panel conductor: i contenuti dentro card bianche devono restare scuri. */
  body.fd-route-driver-dashboard #app.app--internal .driver-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-map-panel,
  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel:not([hidden]),
  body.fd-route-driver-dashboard #app.app--internal .driver-status-card,
  body.fd-route-driver-dashboard #app.app--internal .driver-stat-card,
  body.fd-route-driver-dashboard #app.app--internal .ride-navigation-card {
    color: var(--fd-ink, #0f172a) !important;
    -webkit-text-fill-color: currentColor !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-driver-dashboard #app.app--internal .driver-map-panel :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-driver-dashboard #app.app--internal .driver-active-trip-panel:not([hidden]) :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-driver-dashboard #app.app--internal .driver-status-card :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-driver-dashboard #app.app--internal .driver-stat-card :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-driver-dashboard #app.app--internal .ride-navigation-card :is(h1,h2,h3,h4,p,span,strong,b,label,small,div) {
    color: var(--fd-ink, #0f172a) !important;
    -webkit-text-fill-color: currentColor !important;
    text-shadow: none !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-panel__header p,
  body.fd-route-driver-dashboard #app.app--internal .driver-status-message,
  body.fd-route-driver-dashboard #app.app--internal .driver-map-provider-label,
  body.fd-route-driver-dashboard #app.app--internal .driver-stat-card span {
    color: var(--fd-muted, #64748b) !important;
    -webkit-text-fill-color: currentColor !important;
  }

  /* Viaje: tutte le card/pannelli bianchi hanno testo scuro, non bianco. */
  body.fd-route-passenger-map #app.app--internal .ride-request-panel,
  body.fd-route-passenger-map #app.app--internal .ride-history-panel,
  body.fd-route-passenger-map #app.app--internal .ride-navigation-card,
  body.fd-route-passenger-map #app.app--internal .ride-estimate-card,
  body.fd-route-passenger-map #app.app--internal .profile-section,
  body.fd-route-passenger-map #app.app--internal .ride-customization-card,
  body.fd-route-passenger-map #app.app--internal .ride-map-controls__panel,
  body.fd-route-passenger-map #app.app--internal #rideSearchResults {
    color: var(--fd-ink, #0f172a) !important;
    -webkit-text-fill-color: currentColor !important;
  }

  body.fd-route-passenger-map #app.app--internal .ride-request-panel :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-passenger-map #app.app--internal .ride-history-panel :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-passenger-map #app.app--internal .ride-navigation-card :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-passenger-map #app.app--internal .ride-estimate-card :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-passenger-map #app.app--internal .profile-section :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-passenger-map #app.app--internal .ride-customization-card :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-passenger-map #app.app--internal .ride-map-controls__panel :is(h1,h2,h3,h4,p,span,strong,b,label,small,div),
  body.fd-route-passenger-map #app.app--internal #rideSearchResults :is(h1,h2,h3,h4,p,span,strong,b,label,small,div) {
    color: var(--fd-ink, #0f172a) !important;
    -webkit-text-fill-color: currentColor !important;
    text-shadow: none !important;
  }

  body.fd-route-passenger-map #app.app--internal .ride-request-panel__header p,
  body.fd-route-passenger-map #app.app--internal .ride-history-panel__header p,
  body.fd-route-passenger-map #app.app--internal .form-hint,
  body.fd-route-passenger-map #app.app--internal .ride-estimate-card__hint,
  body.fd-route-passenger-map #app.app--internal .section-title-row__muted {
    color: var(--fd-muted, #64748b) !important;
    -webkit-text-fill-color: currentColor !important;
  }

  /* I bottoni primari e danger restano bianchi su blu/rosso. */
  body.fd-route-driver-dashboard #app.app--internal .btn-primary,
  body.fd-route-driver-dashboard #app.app--internal .btn-primary *,
  body.fd-route-driver-dashboard #app.app--internal .btn--danger,
  body.fd-route-driver-dashboard #app.app--internal .btn--danger *,
  body.fd-route-passenger-map #app.app--internal .btn-primary,
  body.fd-route-passenger-map #app.app--internal .btn-primary *,
  body.fd-route-passenger-map #app.app--internal .btn--danger,
  body.fd-route-passenger-map #app.app--internal .btn--danger * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }

  /* Solicitar viaje: stesso padding laterale di Perfil e meno spazio sopra. */
  body.fd-route-passenger-request #app.app--internal .route-view:has(.passenger-request-page) {
    padding-left: 14px !important;
    padding-right: 14px !important;
    padding-top: 0 !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-page {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
    padding-top: calc(4px + env(safe-area-inset-top)) !important;
    place-items: start center !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }
}

/* v116 - correzioni richieste: più spazio sopra Solicitar viaje e padding Viaje coerente. */
@media (max-width: 768px) {
  /* Solicitar viaje: non troppo attaccata in alto, ma ancora compatta. */
  body.fd-route-passenger-request #app.app--internal .route-view:has(.passenger-request-page) {
    padding-left: 14px !important;
    padding-right: 14px !important;
    padding-top: 8px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-page {
    padding-left: 14px !important;
    padding-right: 14px !important;
    padding-top: calc(12px + env(safe-area-inset-top)) !important;
    place-items: start center !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero {
    padding-top: 4px !important;
    margin-top: 0 !important;
  }

  /* Viaje: recupera quei 2/3 px mancanti allineandola a Perfil. */
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .app-content {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .route-view {
    padding-left: 2px !important;
    padding-right: 2px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-page,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-shell,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-layout,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-hero-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-request-panel,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-navigation-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-estimate-card,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-history-panel {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }
}

/* v117 - fix mirato logo interno, spazio Solicitar viaje e padding superiore Viaje */
@media (max-width: 768px) {
  /* Logo interno cliccabile: sidebar desktop, drawer mobile e logo vicino/hamburger. */
  #app.app--internal .sidebar-brand-logo,
  .mobile-menu-drawer__header img,
  #brandLink {
    cursor: pointer !important;
  }

  /* Solicitar viaje: il cliente ha chiesto più spazio sopra rispetto alla v11. */
  body.fd-route-passenger-request #app.app--internal .route-view:has(.passenger-request-page) {
    padding-top: 14px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-page {
    padding-top: calc(20px + env(safe-area-inset-top)) !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero {
    padding-top: 6px !important;
  }

  /* Viaje: abbassa di 2px il padding superiore per allinearlo a Perfil. */
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .route-view {
    padding-top: 8px !important;
  }
}

/* v118 - correzioni mirate richieste: Detalles più compatto, Solicitar più giù, Viaje 1px più su. */
@media (max-width: 768px) {
  /* Nel contenitore che apre il pannello mappa, avvicina titolo e riepilogo km/minuti. */
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    gap: 6px !important;
    column-gap: 6px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-label,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-summary {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Solicitar viaje: aggiunge ancora un po' di spazio sopra. */
  body.fd-route-passenger-request #app.app--internal .route-view:has(.passenger-request-page) {
    padding-top: 18px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-page {
    padding-top: calc(26px + env(safe-area-inset-top)) !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero {
    padding-top: 8px !important;
  }

  /* Viaje: 1px in meno di spazio sopra rispetto alla versione precedente. */
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .route-view {
    padding-top: 7px !important;
  }
}

/* Cliente 09/05 - fix definitivo Solicitar viaje mobile:
   la pagina deve scorrere, lo sfondo azzurro deve arrivare ai bordi,
   le card offerte devono stare una sotto l'altra. */
@media (max-width: 768px) {
  html:has(body.fd-route-passenger-request),
  body.fd-route-passenger-request,
  html:has(#app.app--internal .passenger-request-page),
  body:has(#app.app--internal .passenger-request-page) {
    height: auto !important;
    min-height: 100% !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-y !important;
  }

  body.fd-route-passenger-request #app.app--internal,
  body.fd-route-passenger-request #app.app--internal .app-main,
  body.fd-route-passenger-request #app.app--internal .app-content,
  body.fd-route-passenger-request #app.app--internal .route-view,
  #app.app--internal .route-view:has(.passenger-request-page) {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    background: #c8effb !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-request #app.app--internal .app-content {
    padding: 0 0 calc(88px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-request #app.app--internal .route-view:has(.passenger-request-page) {
    padding: 0 !important;
    margin: 0 !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-page,
  #app.app--internal .passenger-request-page {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: calc(100svh - 58px - 74px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    max-height: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    padding: calc(22px + env(safe-area-inset-top)) 0 calc(120px + env(safe-area-inset-bottom)) !important;
    overflow: visible !important;
    background: #c8effb !important;
    place-items: start center !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero,
  #app.app--internal .passenger-request-hero {
    width: 100% !important;
    max-width: 520px !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
    box-sizing: border-box !important;
  }

  #passengerOffersPanel,
  .passenger-request-offers {
    width: 100% !important;
    max-width: 520px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
    box-sizing: border-box !important;
  }

  #passengerOffersPanel .home-features-grid,
  .passenger-request-offers .home-features-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
}

/* Cliente 09/05 - mobile: meno spazio sotto Solicitar, niente bianco laterale, Contraoferta allineata a sinistra */
@media (max-width: 768px) {
  html:has(body.fd-route-passenger-request),
  body.fd-route-passenger-request,
  body.fd-route-passenger-request #app.app--internal,
  body.fd-route-passenger-request #app.app--internal .app-main,
  body.fd-route-passenger-request #app.app--internal .app-content,
  body.fd-route-passenger-request #app.app--internal .route-view,
  #app.app--internal .route-view:has(.passenger-request-page) {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: #c8effb !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-request #app.app--internal .app-content {
    min-height: auto !important;
    padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-request #app.app--internal .route-view:has(.passenger-request-page) {
    min-height: auto !important;
    padding: 0 !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-page,
  #app.app--internal .passenger-request-page {
    min-height: auto !important;
    padding-top: calc(18px + env(safe-area-inset-top)) !important;
    padding-bottom: calc(18px + env(safe-area-inset-bottom)) !important;
    margin: 0 !important;
    background: #c8effb !important;
  }

  #passengerOffersPanel,
  .passenger-request-offers {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  #passengerCallCard .passenger-counter-offer-form,
  #driverCallCard .driver-negotiate-form,
  #passengerCallCard .passenger-counter-offer-form span,
  #driverCallCard .driver-negotiate-form span {
    text-align: left !important;
    align-items: stretch !important;
    justify-items: stretch !important;
  }

  #passengerCallCard .passenger-counter-offer-form > span,
  #driverCallCard .driver-negotiate-form > span {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
  }
}

/* Cliente 09/05 - Viaje mobile: elimina il vuoto eccessivo sotto la pagina.
   Non tocca Solicitar viaje e non tocca la mappa aperta. */
@media (max-width: 768px) {
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .app-content {
    padding-bottom: calc(70px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .route-view {
    padding-bottom: calc(4px + env(safe-area-inset-bottom)) !important;
    margin-bottom: 0 !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-page,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-shell,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-layout {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
  }

  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-shell > *:last-child,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-layout > *:last-child,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-history-panel,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-estimate-card:last-child,
  body.fd-route-passenger-map:not(.ride-map-open) #app.app--internal .ride-request-panel:last-child {
    margin-bottom: 0 !important;
  }
}

/* v99 - Viaje mobile: elimina lo spazio eccessivo sotto "Mis solicitudes recientes".
   Non tocca Solicitar viaje e non si applica quando la mappa è aperta. */
@media (max-width: 768px) {
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .app-content:has(.ride-page) {
    padding-bottom: calc(68px + env(safe-area-inset-bottom)) !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .route-view:has(.ride-page) {
    min-height: auto !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-page,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-shell,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-layout {
    min-height: auto !important;
    height: auto !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-shell {
    gap: 8px !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-history-panel:last-of-type {
    margin-bottom: 0 !important;
    padding-bottom: 12px !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) #rideHistoryPagination {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) #rideHistoryDetails:empty,
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-history-list:empty {
    display: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* Cliente 09/05 - Viaje mobile: aggiunge un respiro corretto sotto Mis solicitudes recientes.
   La patch precedente aveva tolto troppo spazio; qui lasciamo solo un margine mobile controllato. */
@media (max-width: 768px) {
  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .app-content:has(.ride-page) {
    padding-bottom: calc(82px + env(safe-area-inset-bottom)) !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .route-view:has(.ride-page) {
    padding-bottom: calc(14px + env(safe-area-inset-bottom)) !important;
  }

  body:not(.ride-map-open) #app.app--internal:not(.app--ride-map-open) .ride-history-panel:last-of-type {
    margin-bottom: calc(18px + env(safe-area-inset-bottom)) !important;
    padding-bottom: 20px !important;
  }
}

/* Cliente 09/05 - Mappa: pannello a comparsa più pulito e contenitore/handle più leggibili. */
body.ride-map-open #app.app--internal .ride-map-controls__toggle {
  position: relative !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,249,255,.96)) !important;
  border: 1px solid rgba(14,165,233,.24) !important;
  box-shadow: 0 18px 48px rgba(2,45,74,.22) !important;
}

body.ride-map-open #app.app--internal .ride-map-controls__toggle::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 7px;
  transform: translateX(-50%);
  width: 46px;
  height: 5px;
  border-radius: 999px;
  background: rgba(14,116,144,.22);
}

body.ride-map-open #app.app--internal .ride-map-controls__toggle-label {
  display: block !important;
  color: #062743 !important;
  font-size: .98rem !important;
  font-weight: 900 !important;
  letter-spacing: -.02em !important;
  padding-top: 6px !important;
}

body.ride-map-open #app.app--internal .ride-map-controls__toggle-summary {
  display: block !important;
  margin-top: 3px !important;
  color: #64748b !important;
  font-size: .82rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}

body.ride-map-open #app.app--internal .ride-map-controls__toggle-icon {
  background: linear-gradient(135deg, rgba(14,165,233,.14), rgba(37,99,235,.10)) !important;
  border: 1px solid rgba(14,165,233,.20) !important;
  color: #075985 !important;
}

body.ride-map-open #app.app--internal .ride-map-controls__panel {
  background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(244,250,255,.98)) !important;
  border: 1px solid rgba(14,165,233,.20) !important;
  box-shadow: 0 24px 70px rgba(2,45,74,.24) !important;
}

body.ride-map-open #app.app--internal .ride-map-topbar {
  border-radius: 22px !important;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(239,249,255,.94)) !important;
  border: 1px solid rgba(14,165,233,.18) !important;
  box-shadow: 0 12px 32px rgba(2,45,74,.10) !important;
}

body.ride-map-open #app.app--internal .ride-map-topbar__estimate {
  min-width: 0 !important;
}

body.ride-map-open #app.app--internal .ride-map-topbar__label {
  color: #0f7599 !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
}

body.ride-map-open #app.app--internal .ride-map-topbar__actions--icons {
  gap: 8px !important;
}

body.ride-map-open #app.app--internal .ride-map-action-icon,
body.ride-map-open #app.app--internal .ride-map-floating-action {
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(14,165,233,.20) !important;
  box-shadow: 0 10px 24px rgba(2,45,74,.16) !important;
}

body.ride-map-open #app.app--internal .ride-map-action-icon--danger,
body.ride-map-open #app.app--internal .ride-map-floating-action--danger {
  background: linear-gradient(135deg, #fee2e2, #fff7ed) !important;
  border-color: rgba(239,68,68,.32) !important;
  color: #b91c1c !important;
}

body.ride-map-open #app.app--internal .ride-vehicle-options-section,
body.ride-map-open #app.app--internal .ride-navigation-card,
body.ride-map-open #app.app--internal .ride-estimate-card,
body.ride-map-open #app.app--internal .ride-customization-card {
  border-radius: 22px !important;
  background: rgba(255,255,255,.78) !important;
  border: 1px solid rgba(14,165,233,.14) !important;
  box-shadow: 0 10px 26px rgba(2,45,74,.08) !important;
}

/* Fix 09/05 - il SOS nella header mobile deve essere un bottone reale, non pseudo-elemento. */
@media (max-width: 768px) {
  #app.app--internal::after {
    display: none !important;
    content: none !important;
    pointer-events: none !important;
  }

  #app.app--internal .fd-mobile-top-sos-button {
    position: fixed !important;
    top: calc(13px + env(safe-area-inset-top)) !important;
    right: 15px !important;
    z-index: 10020 !important;
    min-width: 42px !important;
    height: 29px !important;
    padding: 0 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: linear-gradient(180deg, #ff4156, #ec1d34) !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 950 !important;
    letter-spacing: .02em !important;
    box-shadow: 0 8px 16px rgba(236,29,52,.30) !important;
    cursor: pointer !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  #app.app--internal .fd-mobile-top-sos-button:active {
    transform: translateY(1px) scale(.98) !important;
  }
}

@media (min-width: 769px) {
  #app.app--internal .fd-mobile-top-sos-button {
    display: none !important;
  }
}

/* Fix 09/05 - ripristino visibilità SOS header mobile.
   Il precedente fix nascondeva lo pseudo-SOS ma il bottone reale veniva creato solo in alcune pagine.
   Ora app.js crea il bottone reale su tutte le pagine interne passenger/driver. */
@media (max-width: 768px) {
  body.fd-mobile-top-sos-ready #app.app--internal::after {
    display: none !important;
    content: none !important;
  }

  #app.app--internal .fd-mobile-top-sos-button,
  body #fdPassengerMobileTopSosButton.fd-mobile-top-sos-button,
  body #fdDriverMobileTopSosButton.fd-mobile-top-sos-button {
    position: fixed !important;
    top: calc(13px + env(safe-area-inset-top)) !important;
    right: 15px !important;
    z-index: 2147483000 !important;
    min-width: 42px !important;
    height: 29px !important;
    padding: 0 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: linear-gradient(180deg, #ff4156, #ec1d34) !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    letter-spacing: .02em !important;
    box-shadow: 0 8px 16px rgba(236,29,52,.30) !important;
    cursor: pointer !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  #app:not(.app--internal) .fd-mobile-top-sos-button {
    display: none !important;
  }
}

/* Cliente 09/05 - richieste finali: paragrafo compatto, icona solicitar azzurra in mappa, desktop 2 colonne. */
#app.app--internal .route-view p {
  max-width: 400px;
}

body.ride-map-open #app.app--internal .mobile-bottom-nav__item[data-route="passenger-request"] .mobile-bottom-nav__icon,
body.ride-map-open #app.app--internal .mobile-bottom-nav__item[data-route="passenger-request"] .mobile-bottom-nav__label,
body.ride-map-open #app.app--internal .mobile-bottom-nav__item[data-route="passenger-request"] .mobile-bottom-nav__svg,
body.ride-map-open #app.app--internal #btnRequestRide,
#app.app--internal.app--ride-map-open .mobile-bottom-nav__item[data-route="passenger-request"] .mobile-bottom-nav__icon,
#app.app--internal.app--ride-map-open .mobile-bottom-nav__item[data-route="passenger-request"] .mobile-bottom-nav__label,
#app.app--internal.app--ride-map-open .mobile-bottom-nav__item[data-route="passenger-request"] .mobile-bottom-nav__svg,
#app.app--internal.app--ride-map-open #btnRequestRide {
  color: #1d9bf0 !important;
  border-color: rgba(29, 155, 240, .42) !important;
}

@media (min-width: 769px) {
  body.fd-route-passenger-request #app.app--internal .route-view:has(.passenger-request-page) {
    padding: 0 !important;
    background: #c8effb !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-page,
  #app.app--internal .passenger-request-page {
    width: 100% !important;
    max-width: none !important;
    min-height: calc(100vh - 24px) !important;
    margin: 0 !important;
    padding: clamp(34px, 5vw, 70px) clamp(28px, 6vw, 92px) !important;
    border-radius: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(320px, .95fr) minmax(360px, .78fr) !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(32px, 5vw, 84px) !important;
    background: #c8effb !important;
    overflow: hidden !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-page::before,
  #app.app--internal .passenger-request-page::before {
    display: none !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero,
  #app.app--internal .passenger-request-hero {
    width: 100% !important;
    max-width: 560px !important;
    justify-self: end !important;
    display: grid !important;
    justify-items: center !important;
    align-content: center !important;
    gap: 22px !important;
    text-align: center !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero__avatar,
  #app.app--internal .passenger-request-hero__avatar {
    width: 92px !important;
    height: 92px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero h1,
  #app.app--internal .passenger-request-hero h1 {
    font-size: clamp(42px, 4.5vw, 68px) !important;
    margin: 0 !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-cta,
  #app.app--internal .passenger-request-cta {
    width: min(100%, 440px) !important;
    padding-top: 0 !important;
    gap: 20px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-cta__icon,
  #app.app--internal .passenger-request-cta__icon {
    width: min(30vw, 300px) !important;
    max-width: 300px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-cta__label,
  #app.app--internal .passenger-request-cta__label {
    font-size: clamp(42px, 4.7vw, 72px) !important;
  }

  body.fd-route-passenger-request #app.app--internal #passengerOffersPanel,
  body.fd-route-passenger-request #app.app--internal .passenger-request-offers,
  #app.app--internal #passengerOffersPanel,
  #app.app--internal .passenger-request-offers {
    width: 100% !important;
    max-width: 500px !important;
    justify-self: start !important;
    align-self: center !important;
    display: grid !important;
    gap: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    z-index: 1 !important;
  }

  #passengerOffersPanel .passenger-request-offers__list,
  .passenger-request-offers .passenger-request-offers__list,
  #passengerOffersPanel .home-features-grid,
  .passenger-request-offers .home-features-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  #passengerOffersPanel .passenger-request-offers__card,
  #passengerOffersPanel .home-feature-card,
  .passenger-request-offers .home-feature-card {
    width: 100% !important;
    padding: 22px 24px !important;
    border-radius: 24px !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .10) !important;
    border: 1px solid rgba(255, 255, 255, .82) !important;
  }

  #passengerOffersPanel .passenger-request-offers__card h3,
  #passengerOffersPanel .home-feature-card h3,
  .passenger-request-offers .home-feature-card h3 {
    margin: 0 0 8px !important;
    color: #0b3768 !important;
    font-size: clamp(20px, 1.7vw, 26px) !important;
    line-height: 1.1 !important;
    font-weight: 900 !important;
  }

  #passengerOffersPanel .passenger-request-offers__card p,
  #passengerOffersPanel .home-feature-card p,
  .passenger-request-offers .home-feature-card p {
    margin: 0 !important;
    max-width: 400px !important;
    color: #475569 !important;
    font-size: 16px !important;
    line-height: 1.45 !important;
  }

  #passengerContactBtn.passenger-request-offers__contact,
  #passengerContactBtn {
    justify-self: start !important;
    min-width: 190px !important;
    min-height: 52px !important;
    font-size: 17px !important;
    box-shadow: 0 14px 30px rgba(29, 155, 240, .25) !important;
  }
}

/* Cliente 09/05 - camera video live durante il viaggio: modal pulito e senza galleria. */
.fd-camera-backdrop {
  z-index: 36000 !important;
}

.fd-camera-card {
  width: min(94vw, 520px) !important;
  padding: 18px !important;
  border-radius: 28px !important;
  background: rgba(255, 255, 255, .98) !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .24) !important;
}

.fd-camera-card__head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 14px !important;
}

.fd-camera-card__head strong {
  display: block !important;
  color: #0b3768 !important;
  font-size: 20px !important;
  font-weight: 900 !important;
}

.fd-camera-card__head span {
  display: block !important;
  max-width: 360px !important;
  color: #64748b !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}

.fd-camera-card__video {
  width: 100% !important;
  aspect-ratio: 9 / 14 !important;
  max-height: 62vh !important;
  display: block !important;
  object-fit: cover !important;
  border-radius: 22px !important;
  background: #020617 !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12) !important;
}

.fd-camera-card__actions {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  margin-top: 14px !important;
}

.fd-camera-card__actions .btn {
  flex: 1 1 160px !important;
}

/* Fix 09/05 - SOS header mobile realmente cliccabile + popup ruolo + desktop solicitar più centrato. */
.fd-role-confirm-modal__card {
  max-width: 430px !important;
  text-align: center !important;
  border-radius: 28px !important;
  padding: 26px !important;
  box-shadow: 0 26px 80px rgba(15, 23, 42, .26) !important;
}

.fd-role-confirm-modal__icon {
  width: 54px !important;
  height: 54px !important;
  margin: 0 auto 12px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg, #e0f2fe, #bae6fd) !important;
  color: #0369a1 !important;
  font-size: 28px !important;
  font-weight: 900 !important;
  box-shadow: inset 0 0 0 1px rgba(14, 165, 233, .25) !important;
}

.fd-role-confirm-modal__card h3,
.fd-confirm-modal__card h3 {
  color: #0b3768 !important;
  font-weight: 900 !important;
}

@media (max-width: 768px) {
  #app.app--internal .fd-mobile-top-sos-button,
  body #fdPassengerMobileTopSosButton.fd-mobile-top-sos-button,
  body #fdDriverMobileTopSosButton.fd-mobile-top-sos-button {
    display: inline-flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}

@media (min-width: 769px) {
  body.fd-route-passenger-request #app.app--internal .passenger-request-page,
  #app.app--internal .passenger-request-page {
    padding-left: max(74px, clamp(48px, 7vw, 120px)) !important;
    grid-template-columns: minmax(300px, .82fr) minmax(360px, .78fr) !important;
    gap: clamp(28px, 4vw, 70px) !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero,
  #app.app--internal .passenger-request-hero {
    max-width: 480px !important;
    justify-self: center !important;
    transform: translateX(22px) !important;
    gap: 16px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero h1,
  #app.app--internal .passenger-request-hero h1 {
    font-size: clamp(34px, 3.6vw, 56px) !important;
    letter-spacing: -1px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero__avatar,
  #app.app--internal .passenger-request-hero__avatar {
    width: 78px !important;
    height: 78px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-cta,
  #app.app--internal .passenger-request-cta {
    width: min(100%, 360px) !important;
    gap: 14px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-cta__icon,
  #app.app--internal .passenger-request-cta__icon {
    width: min(24vw, 250px) !important;
    max-width: 250px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-cta__label,
  #app.app--internal .passenger-request-cta__label {
    font-size: clamp(34px, 3.8vw, 58px) !important;
    line-height: .98 !important;
  }
}


/* Fix 09/05 - SOS header mobile sempre visibile/cliccabile sopra la pagina Viaje. */
@media (max-width: 768px) {
  body.fd-mobile-top-sos-ready #fdPassengerMobileTopSosButton.fd-mobile-top-sos-button,
  body.fd-mobile-top-sos-ready #fdDriverMobileTopSosButton.fd-mobile-top-sos-button,
  #fdPassengerMobileTopSosButton.fd-mobile-top-sos-button,
  #fdDriverMobileTopSosButton.fd-mobile-top-sos-button {
    position: fixed !important;
    top: calc(13px + env(safe-area-inset-top)) !important;
    right: 15px !important;
    z-index: 2147483640 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  .fd-confirm-modal__card {
    border-radius: 28px !important;
    box-shadow: 0 26px 80px rgba(15, 23, 42, .26) !important;
  }
}

/* Fix 09/05 - desktop Solicitar viaje: colonna sinistra più interna e leggermente più compatta. */
@media (min-width: 769px) {
  body.fd-route-passenger-request #app.app--internal .passenger-request-page,
  #app.app--internal .passenger-request-page {
    padding-left: max(120px, clamp(90px, 10vw, 170px)) !important;
    grid-template-columns: minmax(280px, .72fr) minmax(360px, .78fr) !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero,
  #app.app--internal .passenger-request-hero {
    transform: translateX(48px) !important;
    max-width: 420px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-hero h1,
  #app.app--internal .passenger-request-hero h1 {
    font-size: clamp(30px, 3.1vw, 48px) !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-cta__icon,
  #app.app--internal .passenger-request-cta__icon {
    width: min(21vw, 220px) !important;
    max-width: 220px !important;
  }

  body.fd-route-passenger-request #app.app--internal .passenger-request-cta__label,
  #app.app--internal .passenger-request-cta__label {
    font-size: clamp(30px, 3.2vw, 50px) !important;
  }
}

/* Fix 09/05 - mappa passeggero: icona Solicitar viaje azzurra nel pannello a comparsa
   e meno spazio tra titolo/sottotitolo del contenitore che apre il pannello. */
body.fd-route-passenger-map #app.app--internal .ride-map-controls__panel #btnRequestRide.ride-map-action-icon--primary,
body.fd-route-passenger-map #app.app--internal .ride-map-controls__panel #btnRequestRide.ride-map-action-icon--primary svg,
body.fd-route-passenger-map #app.app--internal .ride-map-controls__panel #btnRequestRide.ride-map-action-icon--primary i,
body.fd-route-passenger-map #app.app--internal .ride-map-controls__panel #btnRequestRide.ride-map-action-icon--primary [data-lucide] {
  color: #1d9bf0 !important;
  stroke: #1d9bf0 !important;
}

body.fd-route-passenger-map #app.app--internal .ride-map-controls__panel #btnRequestRide.ride-map-action-icon--primary {
  background: rgba(29, 155, 240, .12) !important;
  border-color: rgba(29, 155, 240, .28) !important;
}

body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle,
body.fd-route-passenger-map #app.app--internal .ride-map-controls__toggle {
  gap: 2px !important;
  row-gap: 2px !important;
}

body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-label,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-summary,
body.fd-route-passenger-map #app.app--internal .ride-map-controls__toggle-label,
body.fd-route-passenger-map #app.app--internal .ride-map-controls__toggle-summary {
  line-height: 1.08 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}


/* Fix 09/05 - mappa: meno spazio sopra "Detalles del viaje" nel contenitore che apre il pannello. */
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle,
body.fd-route-passenger-map #app.app--internal .ride-map-controls__toggle {
  padding-top: 8px !important;
}

body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle::before,
body.fd-route-passenger-map #app.app--internal .ride-map-controls__toggle::before {
  top: 4px !important;
  height: 4px !important;
}

body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-label,
body.fd-route-passenger-map #app.app--internal .ride-map-controls__toggle-label {
  padding-top: 1px !important;
}

/* Fix 09/05 - stabilizza il contenitore che apre il pannello mappa: niente salto testi quando si apre. */
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle {
  min-height: 54px !important;
  height: 54px !important;
  padding: 7px 14px !important;
  gap: 2px !important;
  row-gap: 2px !important;
  transform: none !important;
  box-sizing: border-box !important;
}

body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle-label,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle-summary,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle-label,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle-summary {
  line-height: 1.05 !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}

body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle-label {
  font-size: 15px !important;
}

body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle-summary {
  font-size: 12px !important;
}

body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__panel {
  border-radius: 22px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,251,255,.96)) !important;
  border: 1px solid rgba(22,119,201,.14) !important;
  box-shadow: 0 18px 46px rgba(15,37,64,.18) !important;
}

/* Fix cliente 09/05 - Mobile mappa: il contenitore Detalles del viaje resta identico da chiuso/aperto. */
body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle,
body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle {
  min-height: 56px !important;
  height: 56px !important;
  padding: 8px 13px 8px !important;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 38px !important;
  align-content: center !important;
  align-items: center !important;
  gap: 1px 9px !important;
  transform: none !important;
}

body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle::before,
body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle::before,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle::before,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle::before {
  top: 5px !important;
  height: 4px !important;
}

body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle-label,
body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle-summary,
body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle-label,
body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle-summary,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle-label,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle-summary,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle-label,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle-summary {
  grid-column: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.06 !important;
  transform: none !important;
}

body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle-icon,
body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle-icon,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls__toggle-icon,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-controls.is-expanded .ride-map-controls__toggle-icon {
  grid-column: 2 !important;
  grid-row: 1 / span 2 !important;
  align-self: center !important;
  margin: 0 !important;
  transform: none !important;
}

body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar {
  padding: 15px !important;
  gap: 13px !important;
  border-radius: 20px !important;
}

body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__actions--icons,
body.fd-route-passenger-map #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__actions,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__actions--icons,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__actions {
  padding-top: 6px !important;
  gap: 9px !important;
}

/* Fix 09/05 - mappa: padding identico handle chiuso/aperto e icone senza sfondo nel pannello. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    flex: 0 0 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;
    padding: 12px 14px 12px 18px !important;
    box-sizing: border-box !important;
    gap: 2px 10px !important;
    column-gap: 10px !important;
    line-height: 1.15 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle::before,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle::before {
    top: 6px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-label,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle-label {
    padding-top: 5px !important;
    margin: 0 !important;
    line-height: 1.05 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-summary,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle-summary {
    margin: 1px 0 0 0 !important;
    line-height: 1.1 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-icon,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle-icon {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    margin: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    gap: 8px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel {
    padding: 12px 12px 12px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-topbar {
    gap: 8px !important;
    padding: 12px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-topbar__actions,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-topbar__actions--icons {
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-action-icon,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-action {
    background: transparent !important;
    background-image: none !important;
    border-color: transparent !important;
    box-shadow: none !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-action-icon svg,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-action svg {
    background: transparent !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-action-icon--danger,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-action--danger {
    background: transparent !important;
    background-image: none !important;
    border-color: transparent !important;
    box-shadow: none !important;
    color: #b91c1c !important;
  }
}

/* Fix 09/05 definitivo: Solicitar Viaje mobile - spazio sopra card e testi centrati. */
@media (max-width: 768px) {
  body.fd-route-passenger-request #app.app--internal #passengerOffersPanel,
  body.fd-route-passenger-request #app.app--internal .passenger-request-offers,
  #app.app--internal #passengerOffersPanel,
  #app.app--internal .passenger-request-offers {
    margin-top: 18px !important;
  }

  #passengerOffersPanel .passenger-request-offers__card,
  #passengerOffersPanel .home-feature-card,
  .passenger-request-offers .home-feature-card {
    text-align: center !important;
  }

  #passengerOffersPanel .passenger-request-offers__card h3,
  #passengerOffersPanel .home-feature-card h3,
  .passenger-request-offers .home-feature-card h3,
  #passengerOffersPanel .passenger-request-offers__card p,
  #passengerOffersPanel .home-feature-card p,
  .passenger-request-offers .home-feature-card p {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  #passengerOffersPanel .passenger-request-offers__card p,
  #passengerOffersPanel .home-feature-card p,
  .passenger-request-offers .home-feature-card p {
    max-width: 100% !important;
  }
}


/* v118 role switch save + Spanish milestone emphasis */
.profile-form button[type="submit"][disabled] {
  opacity: .78;
  cursor: wait;
}
.profile-section--role .option-card.is-selected {
  border-color: rgba(14, 116, 204, .75) !important;
  box-shadow: 0 16px 34px rgba(14, 116, 204, .16) !important;
  background: linear-gradient(180deg, #ffffff 0%, #eef7ff 100%) !important;
}
#driverMilestonesPanel .home-feature-card,
#passengerOffersPanel .passenger-request-offers__card,
#passengerOffersPanel .home-feature-card {
  border: 2px solid rgba(14, 116, 204, .24) !important;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .12) !important;
}
#driverMilestonesPanel .home-feature-card h3,
#passengerOffersPanel .passenger-request-offers__card h3,
#passengerOffersPanel .home-feature-card h3 {
  font-weight: 900 !important;
}
#driverMilestonesPanel .home-feature-card p,
#passengerOffersPanel .passenger-request-offers__card p,
#passengerOffersPanel .home-feature-card p {
  font-weight: 650 !important;
}


/* v119 milestone km cycle counters */
.driver-milestone-card {
  position: relative;
  overflow: hidden;
}
.driver-milestone-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 8px;
}
.driver-milestone-card__head h3 {
  margin: 0 !important;
}
.driver-milestone-card__remaining {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #eaf6ff;
  border: 1px solid rgba(14, 116, 204, .18);
  color: #075a9b;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.driver-milestone-card__progress {
  height: 9px;
  margin-top: 14px;
  border-radius: 999px;
  background: rgba(14, 116, 204, .12);
  overflow: hidden;
}
.driver-milestone-card__progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #0ea5e9 0%, #0e74cc 100%);
}
.driver-milestone-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 10px;
  color: #526176;
  font-size: 12px;
  font-weight: 700;
}
.driver-milestone-card__meta strong {
  color: #0f355d;
  font-size: 13px;
  text-align: right;
}
@media (max-width: 640px) {
  .driver-milestone-card__head {
    flex-direction: column;
    gap: 8px;
  }
  .driver-milestone-card__remaining {
    width: 100%;
  }
  .driver-milestone-card__meta {
    align-items: flex-start;
    flex-direction: column;
  }
  .driver-milestone-card__meta strong {
    text-align: left;
  }
}

/* Cliente 18/05 - Solicitar viaje: bottone Contáctanos piena larghezza. */
#app.app--internal #passengerContactBtn,
body.fd-route-passenger-request #app.app--internal #passengerContactBtn,
#passengerContactBtn.passenger-request-offers__contact {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 15px !important;
  justify-self: stretch !important;
}

/* Cliente 18/05 - Ricerca conductor: overlay/timer sempre a schermo intero. */
body.fd-passenger-search-locked {
  overflow: hidden !important;
  height: 100vh !important;
  touch-action: none !important;
}

#fdPassengerRideSearchOverlay.fd-passenger-search-overlay {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  min-height: 100dvh !important;
  z-index: 2147483000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: max(22px, env(safe-area-inset-top)) 20px max(22px, env(safe-area-inset-bottom)) !important;
  background:
    radial-gradient(circle at 50% 18%, rgba(48, 190, 255, .36), transparent 34%),
    linear-gradient(180deg, rgba(5, 32, 60, .98), rgba(8, 75, 118, .96)) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  overflow: hidden !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-card {
  width: min(100%, 430px) !important;
  min-height: min(680px, calc(100dvh - 44px)) !important;
  border-radius: 34px !important;
  padding: 30px 22px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  text-align: center !important;
  color: #0b2440 !important;
  background: rgba(255, 255, 255, .98) !important;
  border: 1px solid rgba(255, 255, 255, .78) !important;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .38) !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-ring {
  --fd-search-progress: 1;
  width: min(48vw, 190px) !important;
  height: min(48vw, 190px) !important;
  margin: 0 0 10px !important;
  border-radius: 999px !important;
  display: grid !important;
  place-items: center !important;
  position: relative !important;
  background: conic-gradient(#118bd5 calc(var(--fd-search-progress) * 360deg), #e3eef8 0deg) !important;
  box-shadow: 0 18px 42px rgba(17, 139, 213, .24), inset 0 0 0 1px rgba(255,255,255,.6) !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-ring::after {
  content: "" !important;
  position: absolute !important;
  inset: 15px !important;
  border-radius: inherit !important;
  background: #ffffff !important;
  box-shadow: inset 0 8px 22px rgba(15, 23, 42, .06) !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-ring span {
  position: relative !important;
  z-index: 1 !important;
  color: #082f4f !important;
  font-size: clamp(34px, 10vw, 48px) !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: -.04em !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-card h2 {
  margin: 0 !important;
  color: #071a2f !important;
  font-size: clamp(30px, 8.5vw, 44px) !important;
  line-height: 1.04 !important;
  font-weight: 950 !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-card p {
  margin: 0 !important;
  max-width: 330px !important;
  color: #53677c !important;
  font-size: 17px !important;
  line-height: 1.45 !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-route {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 26px minmax(0, 1fr) !important;
  gap: 0 12px !important;
  margin: 8px 0 0 !important;
  padding: 18px 16px !important;
  border-radius: 22px !important;
  border: 1px solid #dbeafe !important;
  background: #f8fbff !important;
  text-align: left !important;
  align-items: stretch !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-route__rail {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: grid !important;
  grid-template-rows: 14px minmax(30px, 1fr) 14px !important;
  justify-items: center !important;
  align-self: stretch !important;
  padding: 3px 0 !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-route__rail i {
  width: 13px !important;
  height: 13px !important;
  border-radius: 999px !important;
  display: block !important;
  background: #118bd5 !important;
  box-shadow: 0 0 0 5px rgba(17, 139, 213, .12) !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-route__rail i:last-child {
  background: #e22323 !important;
  box-shadow: 0 0 0 5px rgba(226, 35, 35, .10) !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-route__rail span {
  width: 0 !important;
  min-height: 36px !important;
  height: 100% !important;
  border-left: 3px dashed #25a7dc !important;
  margin: 7px 0 !important;
  display: block !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-route__texts {
  grid-column: 2 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  display: grid !important;
  gap: 28px !important;
  align-content: center !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-route > span {
  display: none !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-route strong {
  display: block !important;
  color: #0f2942 !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
  overflow-wrap: anywhere !important;
}

#fdPassengerRideSearchOverlay #fdPassengerRideSearchCancelBtn {
  width: 100% !important;
  min-height: 56px !important;
  justify-content: center !important;
  margin-top: 6px !important;
  border-radius: 999px !important;
  color: #0b7fb7 !important;
  background: #ffffff !important;
  border: 1px solid rgba(11, 127, 183, .22) !important;
  box-shadow: 0 14px 30px rgba(15, 23, 42, .08) !important;
}

#fdPassengerRideSearchOverlay #fdPassengerRideSearchCancelBtn:disabled {
  opacity: .72 !important;
  pointer-events: none !important;
}

#fdPassengerRideSearchOverlay .fd-passenger-search-card small {
  display: block !important;
  max-width: 330px !important;
  color: #75889a !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}

/* Cliente 18/05 - timer ricerca: nessuna scritta di chiusura, scelta dopo 3 minuti, icona solicitar sempre visibile in mappa. */
#fdPassengerRideSearchOverlay .fd-passenger-search-card small {
  display: none !important;
}
#fdPassengerRideRetryOverlay .fd-passenger-search-card--retry {
  min-height: auto !important;
  padding: 34px 24px !important;
}
#fdPassengerRideRetryOverlay .fd-passenger-search-expired-icon {
  width: 86px !important;
  height: 86px !important;
  border-radius: 999px !important;
  display: grid !important;
  place-items: center !important;
  color: #118bd5 !important;
  background: rgba(17, 139, 213, .12) !important;
  border: 1px solid rgba(17, 139, 213, .22) !important;
  box-shadow: 0 16px 38px rgba(17, 139, 213, .18) !important;
}
#fdPassengerRideRetryOverlay .fd-passenger-search-expired-icon svg,
#fdPassengerRideRetryOverlay .fd-passenger-search-expired-icon i {
  width: 42px !important;
  height: 42px !important;
  stroke-width: 2.6 !important;
}
#fdPassengerRideRetryOverlay .fd-passenger-search-actions {
  width: 100% !important;
  display: grid !important;
  gap: 12px !important;
  margin-top: 8px !important;
}
#fdPassengerRideRetryOverlay .fd-passenger-search-actions .btn {
  width: 100% !important;
  min-height: 54px !important;
  justify-content: center !important;
}
body.fd-route-passenger-map.ride-map-open #btnRequestRideIcon.ride-map-floating-action--primary:not([hidden]) {
  display: inline-grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #ffffff !important;
  background: linear-gradient(135deg, #159be8, #0878bd) !important;
  border-color: rgba(255,255,255,.42) !important;
}
body.fd-route-passenger-map.ride-map-open #btnRequestRideIcon.ride-map-floating-action--primary svg,
body.fd-route-passenger-map.ride-map-open #btnRequestRideIcon.ride-map-floating-action--primary i {
  color: #ffffff !important;
  stroke: #ffffff !important;
}


/* v8: timer route graphic aligned/symmetric */
#fdPassengerRideSearchOverlay .fd-passenger-search-route {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  margin: 8px 0 0 !important;
  padding: 18px !important;
  border-radius: 22px !important;
  border: 1px solid #dbeafe !important;
  background: #f8fbff !important;
  text-align: left !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-route__rail,
#fdPassengerRideSearchOverlay .fd-passenger-search-route__texts {
  display: none !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-route__item {
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) !important;
  align-items: center !important;
  min-height: 42px !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-route__dot {
  width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  display: block !important;
  justify-self: center !important;
  background: #118bd5 !important;
  box-shadow: 0 0 0 8px rgba(17,139,213,.12) !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-route__dot--dropoff {
  background: #e22323 !important;
  box-shadow: 0 0 0 8px rgba(226,35,35,.10) !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-route__line {
  width: 0 !important;
  height: 30px !important;
  margin: 4px 0 4px 20px !important;
  border-left: 3px dashed #25a7dc !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-route strong {
  display: block !important;
  color: #0f2942 !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
  overflow-wrap: anywhere !important;
}

/* v24 Uber-like passenger map driver selection */
.fd-driver-map-popover {
  min-width: 190px;
  display: grid;
  gap: 8px;
  font-family: inherit;
  color: #0f2742;
}
.fd-driver-map-popover strong { font-size: 15px; }
.fd-driver-map-popover .btn { width: 100%; justify-content: center; }
.fd-select-driver-map-btn { min-height: 38px; padding: 9px 14px; }



/* v28: conserva la freccia dentro il contenitore Detalles del viaje e nasconde solo i controlli mappa che restano dietro al pannello */
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-icon {
  display: inline-grid !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle::before {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .gm-bundled-control,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .gm-svpc,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .leaflet-control-zoom {
  display: none !important;
  pointer-events: none !important;
}

/* v35 route map markers and admin driver documents */
.fd-route-map-pin { background: transparent; border: 0; }
.fd-route-map-pin__inner {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 900;
  font-size: 17px;
  border: 4px solid #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .24);
}
.admin-documents-list { display: grid; gap: 14px; }
.admin-document-card {
  border: 1px solid rgba(15, 23, 42, .10);
  border-radius: 20px;
  padding: 16px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}
.admin-document-card__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}
@media (max-width: 680px) {
  .admin-document-card__top { flex-direction: column; }
  .admin-document-card .admin-center-card__actions { display: grid; grid-template-columns: 1fr; width: 100%; }
}

/* Fix 26/05 - Desktop passenger map: il pannello Detalles del viaje non deve comportarsi come bottom-sheet mobile.
   Su computer diventa un drawer compatto laterale e la topbar interna va a righe, così prezzo e pulsanti non si sovrappongono. */
@media (min-width: 769px) {
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls {
    position: absolute !important;
    top: 24px !important;
    left: 24px !important;
    right: auto !important;
    bottom: 24px !important;
    width: min(480px, calc(100% - 128px)) !important;
    max-width: 480px !important;
    height: auto !important;
    max-height: calc(100% - 48px) !important;
    z-index: 120 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    top: 24px !important;
    bottom: 24px !important;
    max-height: calc(100% - 48px) !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle {
    width: 100% !important;
    min-height: 58px !important;
    height: 58px !important;
    flex: 0 0 auto !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 16px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 14px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__estimate,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__meta,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__actions,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__actions--icons,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-surcharge-banner,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-trip-recording-inline {
    grid-column: 1 !important;
    grid-row: auto !important;
    min-width: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__estimate {
    display: block !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__label {
    display: block !important;
    margin-bottom: 4px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__estimate strong {
    display: block !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    font-size: clamp(28px, 2.4vw, 36px) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.045em !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__meta {
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__actions,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-topbar__actions--icons {
    display: flex !important;
    flex-flow: row wrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 8px !important;
    margin-top: 2px !important;
    padding-top: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .ride-map-action-icon {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    flex: 0 0 42px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell .option-card {
    min-height: 66px !important;
    padding: 12px 14px !important;
  }
}


/* v130 - mobile override: keep route A/B markers visible */
@media (max-width: 768px) {
  body.fd-route-passenger-map #app.app--internal .fd-route-field,
  body.fd-route-passenger-request #app.app--internal .fd-route-field {
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: start !important;
  }
  body.fd-route-passenger-map #app.app--internal .fd-route-dot,
  body.fd-route-passenger-request #app.app--internal .fd-route-dot {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
    font-weight: 900 !important;
    font-size: 16px !important;
    border-radius: 999px !important;
  }
  body.fd-route-driver-dashboard #app.app--internal .driver-grid > .driver-panel--summary {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}


/* v133: mobile passenger search polished */
.driver-request-card .driver-negotiate-form.driver-request-card__offers .driver-offer-label,
.driver-request-card__offers .driver-offer-label {
  justify-self: start !important;
  text-align: left !important;
  margin-left: 0 !important;
}
.driver-request-card .driver-negotiate-form.driver-request-card__offers,
.driver-request-card__offers {
  align-items: end !important;
}
@media (max-width: 760px) {
  .driver-request-card .driver-negotiate-form.driver-request-card__offers .driver-offer-label,
  .driver-request-card__offers .driver-offer-label {
    justify-self: start !important;
  }
}

#fdPassengerRideSearchOverlay.fd-passenger-search-overlay {
  padding: max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom)) !important;
  align-items: center !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-card {
  width: min(calc(100vw - 28px), 440px) !important;
  min-height: auto !important;
  max-height: min(92dvh, calc(100vh - 28px)) !important;
  padding: 24px 18px 18px !important;
  border-radius: 34px !important;
  gap: 14px !important;
  justify-content: flex-start !important;
  overflow-y: auto !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-ring {
  width: clamp(132px, 42vw, 172px) !important;
  height: clamp(132px, 42vw, 172px) !important;
  min-width: clamp(132px, 42vw, 172px) !important;
  min-height: clamp(132px, 42vw, 172px) !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  flex: 0 0 auto !important;
  margin: 0 auto 4px !important;
  background: conic-gradient(#0a84ff calc(var(--fd-search-progress) * 360deg), #e8f3ff 0deg) !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-ring::after {
  inset: 14px !important;
  border-radius: 50% !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-ring span {
  font-size: clamp(30px, 8.4vw, 42px) !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-card h2 {
  font-size: clamp(30px, 8vw, 40px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.04em !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-card p {
  font-size: 16px !important;
  line-height: 1.42 !important;
  max-width: 310px !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-route {
  padding: 16px !important;
  border-radius: 24px !important;
  margin-top: 2px !important;
}
#fdPassengerRideSearchOverlay .fd-passenger-search-actions .btn {
  min-height: 54px !important;
  font-size: 17px !important;
}
@media (max-width: 390px) {
  #fdPassengerRideSearchOverlay .fd-passenger-search-card {
    padding: 20px 14px 14px !important;
    border-radius: 30px !important;
    gap: 12px !important;
  }
  #fdPassengerRideSearchOverlay .fd-passenger-search-ring {
    width: 124px !important;
    height: 124px !important;
    min-width: 124px !important;
    min-height: 124px !important;
  }
  #fdPassengerRideSearchOverlay .fd-passenger-search-card h2 {
    font-size: 30px !important;
  }
  #fdPassengerRideSearchOverlay .fd-passenger-search-card p {
    font-size: 15px !important;
  }
}

/* Cliente 05/06 - mappa passeggero mobile: freccia invertita a pannello aperto e meno padding. */
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle,
body.fd-route-passenger-map #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
  padding-top: 7px !important;
  padding-bottom: 7px !important;
}

body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle-icon,
body.fd-route-passenger-map #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle-icon {
  transform: rotate(180deg) !important;
}

body.fd-route-passenger-map #app.app--internal .ride-map-controls__panel #btnRequestRide.ride-map-action-icon--primary,
body.fd-route-passenger-map #app.app--internal .ride-map-controls__panel #btnRequestRide.ride-map-action-icon--primary * {
  font-size: 0 !important;
  line-height: 0 !important;
}

/* Cliente 05/06 - icona Solicitar viaje fuori dal pannello: niente riempimento blu, solo bordo leggero. */
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-actions #btnRequestRideIcon.ride-map-floating-action--primary,
body.fd-route-passenger-map #app.app--internal .ride-map-floating-actions #btnRequestRideIcon.ride-map-floating-action--primary {
  background: rgba(255,255,255,.96) !important;
  background-image: none !important;
  border: 1px solid rgba(29,155,240,.72) !important;
  color: #1d9bf0 !important;
  box-shadow: 0 10px 20px rgba(6,39,67,.16) !important;
}

body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-actions #btnRequestRideIcon.ride-map-floating-action--primary svg,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-actions #btnRequestRideIcon.ride-map-floating-action--primary i,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-actions #btnRequestRideIcon.ride-map-floating-action--primary [data-lucide],
body.fd-route-passenger-map #app.app--internal .ride-map-floating-actions #btnRequestRideIcon.ride-map-floating-action--primary svg,
body.fd-route-passenger-map #app.app--internal .ride-map-floating-actions #btnRequestRideIcon.ride-map-floating-action--primary i,
body.fd-route-passenger-map #app.app--internal .ride-map-floating-actions #btnRequestRideIcon.ride-map-floating-action--primary [data-lucide] {
  color: #1d9bf0 !important;
  stroke: #1d9bf0 !important;
}
/* Fix mobile route letters A/B/C/D: keep letters white inside colored route dots. */
body.fd-route-passenger-map .fd-route-dot,
body.fd-route-passenger-request .fd-route-dot,
body.fd-route-passenger-map #app.app--internal .fd-route-dot,
body.fd-route-passenger-request #app.app--internal .fd-route-dot {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-shadow: none !important;
}



/* v131 - final hard fix: A/B/C/D route letters white on mobile Safari and dynamic stops */
html body.fd-route-passenger-map #app.app--internal .fd-route-fields .fd-route-dot,
html body.fd-route-passenger-request #app.app--internal .fd-route-fields .fd-route-dot,
html body.fd-route-passenger-map #app.app--internal .fd-route-extra-stops .fd-route-dot,
html body.fd-route-passenger-request #app.app--internal .fd-route-extra-stops .fd-route-dot,
html body.fd-route-passenger-map .fd-route-fields span.fd-route-dot,
html body.fd-route-passenger-request .fd-route-fields span.fd-route-dot {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-fill-color: #ffffff !important;
  text-shadow: none !important;
  opacity: 1 !important;
}
html body.fd-route-passenger-map #app.app--internal .fd-route-fields .fd-route-dot::first-letter,
html body.fd-route-passenger-request #app.app--internal .fd-route-fields .fd-route-dot::first-letter,
html body.fd-route-passenger-map #app.app--internal .fd-route-extra-stops .fd-route-dot::first-letter,
html body.fd-route-passenger-request #app.app--internal .fd-route-extra-stops .fd-route-dot::first-letter {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-fill-color: #ffffff !important;
}

/* Cliente 06/06 - passenger map mobile: niente icona macchinina flottante, CTA sotto al posto del menu. */
body.fd-route-passenger-map #app.app--internal .ride-map-floating-actions #btnRequestRideIcon,
body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-floating-actions #btnRequestRideIcon,
#app.app--internal .ride-map-fullscreen-shell #btnRequestRideIcon[hidden] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
body.fd-route-passenger-map.ride-map-open #fdPassengerLocationRequired,
body.fd-route-passenger-map #rideSearchResults #fdPassengerLocationRequired { display: none !important; }
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-sheet {
    bottom: calc(142px + env(safe-area-inset-bottom)) !important;
    z-index: 2147482300 !important;
    max-height: 34dvh !important;
  }
}

/* vFINAL 07/06 - Passenger map mobile: la CTA Solicitar viaje sostituisce davvero il menu inferiore.
   Il menu #mobileBottomNav è fuori da #app, quindi i vecchi selettori non lo nascondevano. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #mobileBottomNav,
  body.fd-route-passenger-map.fd-mobile-ride-action-active #mobileBottomNav,
  body.fd-route-passenger-map.fd-passenger-search-locked #mobileBottomNav,
  body.fd-route-passenger-map.ride-map-open .mobile-bottom-nav,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .mobile-bottom-nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal #rideSearchResults:not([hidden]) {
    bottom: calc(96px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .fd-mobile-ride-bottom-bar {
    position: fixed !important;
    left: max(18px, env(safe-area-inset-left)) !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    bottom: max(12px, env(safe-area-inset-bottom)) !important;
    z-index: 2147483000 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 8px !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.98) !important;
    border: 1px solid rgba(10,132,255,.18) !important;
    box-shadow: 0 18px 48px rgba(6,24,47,.28) !important;
    backdrop-filter: blur(18px) saturate(1.18) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.18) !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar[hidden],
  body.fd-route-passenger-map.fd-mobile-ride-action-active .fd-mobile-ride-bottom-bar[hidden] {
    display: none !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar__text,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .fd-mobile-ride-bottom-bar__text {
    display: none !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar__request,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .fd-mobile-ride-bottom-bar__request {
    width: 100% !important;
    min-height: 62px !important;
    border-radius: 22px !important;
    font-size: 17px !important;
    font-weight: 950 !important;
    letter-spacing: .01em !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    box-shadow: 0 12px 28px rgba(10,132,255,.32) !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar__request svg,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .fd-mobile-ride-bottom-bar__request svg {
    width: 24px !important;
    height: 24px !important;
    stroke-width: 2.5 !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar__cancel,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .fd-mobile-ride-bottom-bar__cancel {
    width: 100% !important;
    min-height: 58px !important;
    border-radius: 22px !important;
    font-size: 16px !important;
    font-weight: 950 !important;
    justify-content: center !important;
  }

  /* Elige directamente: stesso allineamento/larghezza del pannello Detalles e più spazio tra i due contenitori. */
  body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-sheet {
    left: max(18px, env(safe-area-inset-left)) !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    bottom: calc(238px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-width: none !important;
    z-index: 2147482300 !important;
    max-height: 30dvh !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls {
    left: max(18px, env(safe-area-inset-left)) !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    bottom: calc(104px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    top: calc(64px + env(safe-area-inset-top)) !important;
    bottom: calc(104px + env(safe-area-inset-bottom)) !important;
  }

  body.fd-route-passenger-map.ride-map-open #fdPassengerLocationRequired,
  body.fd-route-passenger-map.fd-mobile-ride-action-active #fdPassengerLocationRequired,
  body.fd-route-passenger-map #rideSearchResults #fdPassengerLocationRequired {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

/* Fix 07/06 - Passenger map mobile: mappa fino al bordo inferiore e sheet driver meno alta.
   La CTA Solicitar viaje rimane sovrapposta alla mappa e sostituisce il menu mobile. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #mobileBottomNav,
  body.fd-route-passenger-map.fd-mobile-ride-action-active #mobileBottomNav,
  body.fd-route-passenger-map.ride-map-open .mobile-bottom-nav,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .mobile-bottom-nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .app-main,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .app-content,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .route-view {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    overflow: hidden !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal #rideSearchResults:not([hidden]) {
    bottom: 0 !important;
    height: 100% !important;
    min-height: 100% !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-fullscreen-shell,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas-wrap,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas-wrap--fullscreen,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-canvas--fullscreen {
    bottom: 0 !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .fd-mobile-ride-bottom-bar {
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
    z-index: 2147483000 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls {
    bottom: calc(96px + env(safe-area-inset-bottom)) !important;
  }

  /* Fix 07/06 - abbassa di 18px il pannello Elige directamente richiesto dal cliente. */
body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-sheet {
    left: max(18px, env(safe-area-inset-left)) !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    bottom: calc(170px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: 29dvh !important;
  }
}

/* Fix 07/06 - mobile driver map controls compatti.
   I comandi non devono coprire tutta la mappa: su telefono diventano una piccola toolbar flottante. */
@media (max-width: 768px) {
  body.fd-route-driver-dashboard #app.app--internal .driver-map-shell {
    position: relative !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar {
    position: absolute !important;
    top: calc(10px + env(safe-area-inset-top)) !important;
    left: 10px !important;
    right: auto !important;
    width: auto !important;
    max-width: calc(100% - 20px) !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    padding: 6px !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, .78) !important;
    border: 1px solid rgba(14, 165, 233, .18) !important;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .12) !important;
    backdrop-filter: blur(14px) saturate(1.15) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.15) !important;
    z-index: 60 !important;
    pointer-events: auto !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar .btn,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn {
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    font-size: 0 !important;
    line-height: 1 !important;
    color: #0f355d !important;
    background: rgba(255, 255, 255, .94) !important;
    border: 1px solid rgba(148, 163, 184, .24) !important;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .10) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar .btn svg,
  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar .btn i,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn svg,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn i {
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
    stroke-width: 2.25 !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar .btn span,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn span {
    display: none !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar #driverMapSosBtn,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar #driverMapSosBtn {
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .02em !important;
    color: #fff !important;
    background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%) !important;
    border-color: rgba(220, 38, 38, .42) !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar #driverMapFullscreenBtn::before,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar #driverMapFullscreenBtn::before {
    content: "⛶";
    font-size: 18px;
    line-height: 1;
    font-weight: 900;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar #driverMapOpenNavBtn::before,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar #driverMapOpenNavBtn::before {
    content: "↗";
    font-size: 19px;
    line-height: 1;
    font-weight: 900;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-provider-label,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-provider-label {
    order: 99 !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 142px !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
    font-size: 10.5px !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    color: #0f355d !important;
    background: rgba(255,255,255,.92) !important;
    box-shadow: none !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-canvas,
  body.fd-route-driver-dashboard #app.app--internal #driverMap {
    min-height: 440px !important;
  }
}

@media (max-width: 380px) {
  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar {
    gap: 5px !important;
    padding: 5px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar .btn,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
  }

  body.fd-route-driver-dashboard #app.app--internal .driver-map-toolbar #driverMapSosBtn,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar #driverMapSosBtn {
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
  }
}

/* Fix 07/06 - driver mobile fullscreen reale/fallback.
   Su Chrome Android prova fullscreen nativo, ma nei browser in-app usiamo questo fullscreen CSS. */
@media (max-width: 768px) {
  html.driver-map-fullscreen-mode,
  body.driver-map-fullscreen-mode {
    width: 100vw !important;
    height: 100dvh !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
    touch-action: none !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .app-header,
  body.driver-map-fullscreen-mode #app.app--internal .app-sidebar,
  body.driver-map-fullscreen-mode #app.app--internal .driver-hero-card,
  body.driver-map-fullscreen-mode #app.app--internal .driver-panel__header,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-panel > .driver-panel__header,
  body.driver-map-fullscreen-mode #app.app--internal .driver-active-trip-panel,
  body.driver-map-fullscreen-mode #app.app--internal .driver-grid,
  body.driver-map-fullscreen-mode #mobileBottomNav,
  body.driver-map-fullscreen-mode .mobile-bottom-nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal,
  body.driver-map-fullscreen-mode #app.app--internal .app-main,
  body.driver-map-fullscreen-mode #app.app--internal .app-content,
  body.driver-map-fullscreen-mode #app.app--internal .route-view,
  body.driver-map-fullscreen-mode #app.app--internal .driver-page,
  body.driver-map-fullscreen-mode #app.app--internal .driver-shell,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-panel {
    position: static !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #eaf6ff !important;
    border: 0 !important;
    border-radius: 0 !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded,
  #app.app--internal .driver-map-shell.is-driver-map-expanded:fullscreen,
  #app.app--internal .driver-map-shell.is-driver-map-expanded:-webkit-full-screen {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    background: #eaf6ff !important;
    z-index: 2147483000 !important;
    touch-action: auto !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-canvas,
  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded #driverMap,
  #app.app--internal .driver-map-shell.is-driver-map-expanded:fullscreen .driver-map-canvas,
  #app.app--internal .driver-map-shell.is-driver-map-expanded:-webkit-full-screen .driver-map-canvas {
    position: absolute !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-toolbar,
  #app.app--internal .driver-map-shell.is-driver-map-expanded:fullscreen .driver-map-toolbar,
  #app.app--internal .driver-map-shell.is-driver-map-expanded:-webkit-full-screen .driver-map-toolbar {
    position: absolute !important;
    top: calc(12px + env(safe-area-inset-top)) !important;
    left: 10px !important;
    right: auto !important;
    width: auto !important;
    max-width: calc(100vw - 20px) !important;
    z-index: 2147483100 !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded #driverMapFullscreenBtn::before,
  #app.app--internal .driver-map-shell.is-driver-map-expanded:fullscreen #driverMapFullscreenBtn::before,
  #app.app--internal .driver-map-shell.is-driver-map-expanded:-webkit-full-screen #driverMapFullscreenBtn::before {
    content: "×" !important;
    font-size: 25px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-actions:not(:has(.btn:not([hidden]))) {
    display: none !important;
  }

  body.driver-map-fullscreen-mode #app.app--internal .driver-map-shell.is-driver-map-expanded .driver-map-actions {
    position: absolute !important;
    left: 12px !important;
    right: 12px !important;
    bottom: calc(12px + env(safe-area-inset-bottom)) !important;
    z-index: 2147483100 !important;
  }
}

/* Fix 07/06 - Passenger mobile map final layout:
   Elige direttamente 5px più giù, lista autisti scrollabile e pannello Detalles sopra. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-sheet {
    left: max(18px, env(safe-area-inset-left)) !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    bottom: calc(165px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: 29dvh !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    overflow: hidden !important;
    z-index: 2147482300 !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-list {
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    padding-right: 3px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    z-index: 2147482450 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel {
    position: relative !important;
    z-index: 2147482451 !important;
    max-height: 46dvh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
}

/* Cliente 07/06 - mobile conductor: il primo tasto sotto non è più "Buscar viaje" ma accendi/spegni disponibilità. */
@media (max-width: 768px) {
  #app.app--internal .mobile-bottom-nav__item--driver-power {
    border-radius: 22px !important;
    border: 1px solid rgba(15, 35, 61, .08) !important;
    transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease !important;
  }

  #app.app--internal .mobile-bottom-nav__item--driver-power .mobile-bottom-nav__icon {
    width: 38px !important;
    height: 38px !important;
    border-radius: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 auto 3px !important;
  }

  #app.app--internal .mobile-bottom-nav__item--driver-power.is-online {
    background: rgba(220, 252, 231, .95) !important;
    color: #047857 !important;
    box-shadow: 0 10px 24px rgba(4, 120, 87, .14) !important;
  }

  #app.app--internal .mobile-bottom-nav__item--driver-power.is-online .mobile-bottom-nav__icon {
    background: #10b981 !important;
    color: #fff !important;
  }

  #app.app--internal .mobile-bottom-nav__item--driver-power.is-offline {
    background: rgba(255, 241, 242, .95) !important;
    color: #be123c !important;
    box-shadow: 0 10px 24px rgba(190, 18, 60, .12) !important;
  }

  #app.app--internal .mobile-bottom-nav__item--driver-power.is-offline .mobile-bottom-nav__icon {
    background: #ef4444 !important;
    color: #fff !important;
  }

  #app.app--internal .mobile-bottom-nav__item--driver-power.is-loading {
    opacity: .72 !important;
    transform: scale(.98) !important;
  }
}

/* v118 - toggle del pannello mappa bianco pieno anche quando aperto */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    background: #fff !important;
    background-color: #fff !important;
    opacity: 1 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

/* Fix 07/06 - il contenitore toggle Detalles del viaje deve restare nello stesso punto,
   con stessa larghezza/altezza/padding, sia aperto che chiuso. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    position: fixed !important;
    left: max(18px, env(safe-area-inset-left)) !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    top: auto !important;
    bottom: calc(104px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-width: none !important;
    transform: none !important;
    margin: 0 !important;
    z-index: 2147482450 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    width: 100% !important;
    min-height: 62px !important;
    height: 62px !important;
    padding: 11px 14px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 34px !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    column-gap: 10px !important;
    background: #fff !important;
    background-color: #fff !important;
    opacity: 1 !important;
    border: 1px solid rgba(15,23,42,.10) !important;
    box-shadow: 0 18px 46px rgba(15,23,42,.18) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-icon,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle-icon {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    justify-self: end !important;
    width: 34px !important;
    height: 34px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: calc(100% + 10px) !important;
    top: auto !important;
    width: 100% !important;
    max-height: min(54dvh, 460px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    border-radius: 24px !important;
    box-sizing: border-box !important;
    z-index: 2147482451 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls:not(.is-expanded) .ride-map-controls__panel {
    display: none !important;
  }
}

/* Fix 07/06 v120 - pannello Detalles stabile: il toggle non cambia dimensione/posizione
   e il panel si apre sempre sopra senza spostare il toggle. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded {
    position: fixed !important;
    left: max(18px, env(safe-area-inset-left)) !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    bottom: calc(var(--fd-map-bottom-cta-h, 92px) + 18px + env(safe-area-inset-bottom)) !important;
    top: auto !important;
    width: auto !important;
    max-width: none !important;
    height: 62px !important;
    min-height: 62px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    z-index: 2147482600 !important;
    overflow: visible !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 62px !important;
    min-height: 62px !important;
    max-height: 62px !important;
    padding: 11px 14px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 34px !important;
    grid-template-rows: 20px 18px !important;
    align-items: center !important;
    column-gap: 10px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    background-color: #fff !important;
    opacity: 1 !important;
    border: 1px solid rgba(15,23,42,.12) !important;
    box-shadow: 0 18px 46px rgba(15,23,42,.18) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-label,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle-label,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-summary,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle-summary {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-icon,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle-icon {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    justify-self: end !important;
    align-self: center !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__panel {
    display: none !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__panel {
    display: flex !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: calc(100% + 10px) !important;
    top: auto !important;
    width: 100% !important;
    max-width: none !important;
    max-height: min(58dvh, 500px) !important;
    margin: 0 !important;
    padding: 14px !important;
    border-radius: 26px !important;
    box-sizing: border-box !important;
    flex-direction: column !important;
    gap: 12px !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    background: #fff !important;
    border: 1px solid rgba(15,23,42,.12) !important;
    box-shadow: 0 24px 64px rgba(15,23,42,.26) !important;
    z-index: 2147482601 !important;
  }
}

@media (max-width: 768px) {
  .fd-mobile-ride-bottom-bar.is-searching {
    bottom: calc(10px + env(safe-area-inset-bottom)) !important;
    transform: translateY(-4px) !important;
  }
  .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__text strong {
    font-size: 30px !important;
  }
}

/* FINAL 07/06 - Passenger map containers aligned + real visible timer + clearer map markers. */
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-sheet,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls,
  body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .fd-mobile-ride-bottom-bar {
    left: max(18px, env(safe-area-inset-left)) !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    width: auto !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-sheet {
    bottom: calc(252px + env(safe-area-inset-bottom)) !important;
    max-height: 27dvh !important;
    padding: 18px 20px !important;
    border-radius: 26px !important;
    background: rgba(255,255,255,.98) !important;
    border: 1px solid rgba(15, 23, 42, .08) !important;
    box-shadow: 0 18px 42px rgba(6,24,47,.22) !important;
    overflow-y: auto !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-sheet__header {
    gap: 6px !important;
  }
  body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-sheet__header span {
    font-size: 13px !important;
    letter-spacing: .11em !important;
    line-height: 1.05 !important;
  }
  body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-sheet__header strong {
    font-size: 26px !important;
    line-height: 1.02 !important;
  }
  body.fd-route-passenger-map.ride-map-open .fd-nearby-driver-sheet__header small {
    font-size: 14px !important;
    line-height: 1.32 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls {
    bottom: calc(116px + env(safe-area-inset-bottom)) !important;
    z-index: 2147482200 !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle,
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls.is-expanded .ride-map-controls__toggle {
    min-height: 76px !important;
    height: 76px !important;
    padding: 12px 22px !important;
    border-radius: 26px !important;
    background: #ffffff !important;
    border: 1px solid rgba(15, 23, 42, .08) !important;
    box-shadow: 0 14px 34px rgba(6,24,47,.18) !important;
    box-sizing: border-box !important;
  }

  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-label {
    font-size: 22px !important;
    line-height: 1.06 !important;
  }
  body.fd-route-passenger-map.ride-map-open #app.app--internal .ride-map-controls__toggle-summary {
    font-size: 13.5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .fd-mobile-ride-bottom-bar {
    bottom: max(12px, env(safe-area-inset-bottom)) !important;
    padding: 8px !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.98) !important;
    border: 1px solid rgba(10,132,255,.16) !important;
    box-shadow: 0 18px 48px rgba(6,24,47,.28) !important;
    z-index: 2147483000 !important;
  }

  body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar__request,
  body.fd-route-passenger-map.fd-mobile-ride-action-active .fd-mobile-ride-bottom-bar__request {
    min-height: 64px !important;
    border-radius: 22px !important;
  }

  /* Searching state: show the timer clearly ABOVE the cancel action; never leave the CTA visible. */
  body.fd-route-passenger-map .fd-mobile-ride-bottom-bar.is-searching {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 10px !important;
    transform: none !important;
  }
  body.fd-route-passenger-map .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__text {
    display: grid !important;
    place-items: center !important;
    gap: 2px !important;
    min-height: 70px !important;
    padding: 8px 10px !important;
    border-radius: 22px !important;
    background: linear-gradient(180deg,#eaf7ff,#ffffff) !important;
    border: 1px solid rgba(10,132,255,.18) !important;
    text-align: center !important;
  }
  body.fd-route-passenger-map .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__text strong {
    display: block !important;
    color: #071a2f !important;
    font-size: 34px !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    letter-spacing: -.04em !important;
  }
  body.fd-route-passenger-map .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__text span {
    display: block !important;
    color: #40556b !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
  }
  body.fd-route-passenger-map .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__request {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  body.fd-route-passenger-map .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__cancel {
    display: flex !important;
    min-height: 54px !important;
    border-radius: 20px !important;
    background: #fff !important;
  }

  body.fd-route-passenger-map.ride-map-open .custom-driver-pin__inner,
  body.fd-route-passenger-map.ride-map-open .custom-driver-cluster__inner {
    display: grid !important;
    place-items: center !important;
    font-size: 0 !important;
  }
}


/* Family Drivers UX polish - mobile-first referrals and Uber-like cards */
@media (max-width: 768px) {
  #app.app--internal .profile-page {
    background: linear-gradient(180deg, #f7fbff 0%, #eef5ff 44%, #ffffff 100%) !important;
  }

  #app.app--internal .profile-shell {
    width: min(100%, 480px) !important;
    margin: 0 auto !important;
    padding: 14px 14px calc(120px + env(safe-area-inset-bottom)) !important;
    gap: 14px !important;
  }

  #app.app--internal .profile-header-card,
  #app.app--internal .profile-section {
    border-radius: 28px !important;
    border: 1px solid rgba(15, 23, 42, .08) !important;
    box-shadow: 0 18px 42px rgba(6, 24, 47, .10) !important;
    background: rgba(255, 255, 255, .96) !important;
  }

  #app.app--internal .profile-header-card {
    position: relative !important;
    overflow: hidden !important;
    padding: 24px 20px !important;
    background: radial-gradient(circle at 85% 0%, rgba(10,132,255,.20), transparent 34%), linear-gradient(135deg, #071a2f 0%, #0f3158 100%) !important;
    color: #fff !important;
  }

  #app.app--internal .profile-header-card .page-title,
  #app.app--internal .profile-header-card .page-subtitle {
    color: #fff !important;
  }

  #app.app--internal .profile-header-card .page-title {
    font-size: clamp(28px, 8vw, 40px) !important;
    letter-spacing: -.05em !important;
    line-height: .98 !important;
  }

  #app.app--internal .referrals-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  #app.app--internal .referrals-grid .admin-stat-card {
    min-height: 92px !important;
    padding: 14px 10px !important;
    border-radius: 22px !important;
    text-align: center !important;
  }

  #app.app--internal .referrals-grid .admin-stat-card span {
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
  }

  #app.app--internal .referrals-grid .admin-stat-card strong {
    font-size: clamp(18px, 5vw, 25px) !important;
    letter-spacing: -.04em !important;
  }

  #app.app--internal .referrals-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  #app.app--internal .referrals-actions .btn {
    width: 100% !important;
    min-height: 52px !important;
    border-radius: 18px !important;
  }

  #app.app--internal .referrals-qr-section {
    display: grid !important;
    place-items: center !important;
    text-align: center !important;
    gap: 14px !important;
  }

  #app.app--internal .referrals-qr-image {
    width: min(78vw, 300px) !important;
    aspect-ratio: 1 / 1 !important;
    padding: 14px !important;
    border-radius: 30px !important;
    border: 1px solid rgba(15, 23, 42, .10) !important;
    box-shadow: 0 20px 50px rgba(6, 24, 47, .16) !important;
    background: #fff !important;
  }

  #app.app--internal .referrals-qr-fallback {
    width: 100% !important;
    justify-content: center !important;
  }

  #app.app--internal .input {
    min-height: 54px !important;
    border-radius: 18px !important;
    font-size: 16px !important;
  }
}

/* UX 24/06 - Passenger map: rimuove pannelli a comparsa non richiesti e mantiene solo mappa + CTA/timer. */
body.ride-map-open #nearbyDriverChoiceSheet,
body.ride-map-open .fd-nearby-driver-sheet {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
@media (max-width: 768px) {
  body.ride-map-open #rideMapControls,
  body.ride-map-open .ride-map-controls,
  body.ride-map-open #rideMapControlsToggle,
  body.ride-map-open .ride-map-controls__toggle,
  body.ride-map-open #rideMapControlsPanel,
  body.ride-map-open .ride-map-controls__panel {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  body.ride-map-open .fd-mobile-ride-bottom-bar {
    left: 24px !important;
    right: 24px !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 24px) !important;
    border-radius: 30px !important;
    padding: 14px !important;
    box-shadow: 0 20px 48px rgba(3, 23, 42, .25) !important;
  }
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    gap: 12px !important;
  }
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__text strong {
    font-size: 32px !important;
    line-height: 1 !important;
    letter-spacing: -0.04em !important;
  }
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__cancel {
    display: inline-flex !important;
    min-height: 48px !important;
    padding-inline: 16px !important;
    white-space: nowrap !important;
  }
  body.ride-map-open #fdPassengerRideSearchOverlay,
  body.ride-map-open .fd-passenger-search-overlay {
    display: none !important;
  }
}


/* UX 24/06 FIX 2 - Timer sotto forma verticale: bottone sempre sotto, mai a destra. */
@media (max-width: 768px) {
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
    padding: 16px 18px 18px !important;
  }
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__text {
    width: 100% !important;
    text-align: center !important;
    border-radius: 22px !important;
    padding: 12px 10px !important;
  }
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__text strong,
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching #fdMobileRideBottomTitle {
    display: block !important;
    font-size: 42px !important;
    line-height: .95 !important;
    letter-spacing: -0.05em !important;
    margin-bottom: 6px !important;
  }
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__text span,
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching #fdMobileRideBottomSubtitle {
    display: block !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
  }
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching .fd-mobile-ride-bottom-bar__cancel,
  body.ride-map-open .fd-mobile-ride-bottom-bar.is-searching #btnMobileCancelRide {
    width: 100% !important;
    min-height: 56px !important;
    justify-content: center !important;
    align-items: center !important;
    border-radius: 22px !important;
    margin: 0 !important;
    white-space: normal !important;
    font-size: 18px !important;
    font-weight: 800 !important;
  }
}


/* FIX 27/06: desktop passenger map - floating Solicitar viaje outside the details panel */
body.fd-route-passenger-map.ride-map-open:not(.fd-public-tracking) #app.app--internal .ride-map-floating-actions #btnRequestRideIcon.ride-map-floating-action--primary:not([hidden]),
body.fd-route-passenger-map:not(.fd-public-tracking) #app.app--internal .ride-map-floating-actions #btnRequestRideIcon.ride-map-floating-action--primary:not([hidden]) {
  display: inline-grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  place-items: center !important;
  background: rgba(255,255,255,.96) !important;
  background-image: none !important;
  border: 1px solid rgba(29,155,240,.72) !important;
  color: #1d9bf0 !important;
  box-shadow: 0 10px 20px rgba(6,39,67,.16) !important;
}
body.fd-public-tracking #btnRequestRideIcon,
body.fd-public-tracking #btnRequestRide,
body.fd-public-tracking #btnMobileRequestRide,
body.fd-public-tracking .fd-mobile-ride-bottom-bar,
body.fd-public-tracking .fd-desktop-ride-timer-bar {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.fd-desktop-ride-timer-bar {
  position: absolute !important;
  left: 50% !important;
  bottom: 28px !important;
  transform: translateX(-50%) !important;
  z-index: 70 !important;
  min-width: min(560px, calc(100vw - 360px)) !important;
  max-width: 640px !important;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  gap: 16px !important;
  align-items: center !important;
  padding: 14px 16px !important;
  border-radius: 28px !important;
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(190,215,235,.82) !important;
  box-shadow: 0 22px 60px rgba(6,39,67,.22) !important;
  backdrop-filter: blur(16px) saturate(1.15) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.15) !important;
}
.fd-desktop-ride-timer-bar[hidden] { display: none !important; }
.fd-desktop-ride-timer-bar__time {
  min-width: 100px !important;
  padding: 12px 16px !important;
  border-radius: 20px !important;
  text-align: center !important;
  font-weight: 950 !important;
  font-size: 34px !important;
  line-height: 1 !important;
  letter-spacing: -0.04em !important;
  color: #06182f !important;
  background: linear-gradient(180deg,#f1f9ff,#ffffff) !important;
  border: 1px solid rgba(190,215,235,.92) !important;
}
.fd-desktop-ride-timer-bar__text { min-width: 0 !important; display: grid !important; gap: 2px !important; }
.fd-desktop-ride-timer-bar__text strong { font-size: 16px !important; color: #08243e !important; }
.fd-desktop-ride-timer-bar__text span { font-size: 13px !important; color: #64748b !important; }
.fd-desktop-ride-timer-bar__cancel { white-space: nowrap !important; min-height: 46px !important; }
@media (max-width: 767px) { .fd-desktop-ride-timer-bar { display: none !important; } }

/* FD PROFILE FINAL PATCH 2026-07-02
   Richiesta: pagina profilo mobile senza sfondo/padding nel contenitore principale;
   hero e contenitori interni con padding 10px. */
@media (max-width: 768px) {
  body.fd-route-profile,
  body.fd-route-profile #app.app--internal,
  body.fd-route-profile #app.app--internal .app-main,
  body.fd-route-profile #app.app--internal .app-main--internal,
  body.fd-route-profile #app.app--internal .app-content,
  body.fd-route-profile #app.app--internal .route-view,
  body.fd-route-profile #app.app--internal .profile-page,
  body.fd-route-profile #app.app--internal .profile-shell,
  body.fd-route-profile #app.app--internal .profile-form {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    border: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body.fd-route-profile #app.app--internal .profile-page,
  body.fd-route-profile #app.app--internal .profile-shell,
  body.fd-route-profile #app.app--internal .profile-form {
    padding: 0 !important;
  }

  body.fd-route-profile #app.app--internal .profile-shell,
  body.fd-route-profile #app.app--internal .profile-form {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
  }

  body.fd-route-profile #app.app--internal .profile-header-card,
  body.fd-route-profile #app.app--internal .profile-section,
  body.fd-route-profile #app.app--internal .driver-profile-options,
  body.fd-route-profile #app.app--internal .profile-actions,
  body.fd-route-profile #app.app--internal .profile-status {
    padding: 10px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body.fd-route-profile #app.app--internal .profile-header-card {
    min-height: auto !important;
  }

  body.fd-route-profile #app.app--internal .profile-header-card :is(.page-title, h1) {
    margin-bottom: 6px !important;
  }

  body.fd-route-profile #app.app--internal .profile-header-card :is(.page-subtitle, p) {
    max-width: 100% !important;
    margin-bottom: 8px !important;
  }

  body.fd-route-profile #app.app--internal .form-grid,
  body.fd-route-profile #app.app--internal .option-list,
  body.fd-route-profile #app.app--internal .driver-profile-options__grid,
  body.fd-route-profile #app.app--internal .profile-avatar-row {
    gap: 10px !important;
  }
}

/* FD patch 2026-07-05: pulsante chiaro per ricerca automatica quando è stato scelto un autista. */
.fd-passenger-auto-driver-search-btn {
  width: 100%;
  justify-content: center;
  margin-top: 10px;
}


/* FD_20260705_PASSENGER_PANEL_REBUILD_V2
   CSS nuovo e finale per mappa passeggero: mappa + pannello stabile + CTA. */
body.fd-route-passenger-map.ride-map-open #mobileBottomNav,
body.fd-route-passenger-map.ride-map-open .mobile-bottom-nav,
body.fd-route-passenger-map.ride-map-open #fdMobileRideBottomBar,
body.fd-route-passenger-map.ride-map-open .fd-mobile-ride-bottom-bar,
body.fd-route-passenger-map.ride-map-open #btnRequestRideIcon,
body.fd-route-passenger-map.ride-map-open .ride-map-floating-action--primary {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.fd-route-passenger-map.ride-map-open #rideSearchResults,
body.fd-route-passenger-map.ride-map-open .ride-map-fullscreen-shell,
body.fd-route-passenger-map.ride-map-open .ride-map-canvas-wrap,
body.fd-route-passenger-map.ride-map-open #rideMap {
  min-height: 100dvh !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControls.fd-passenger-panel-v2,
body.fd-route-passenger-map.ride-map-open #rideMapControls {
  position: fixed !important;
  left: max(12px, env(safe-area-inset-left)) !important;
  right: max(12px, env(safe-area-inset-right)) !important;
  bottom: max(12px, env(safe-area-inset-bottom)) !important;
  z-index: 2147483000 !important;
  max-width: 720px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 10px !important;
  transform: none !important;
  height: auto !important;
  max-height: calc(100dvh - 96px) !important;
  pointer-events: none !important;
  touch-action: pan-y !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControls > * {
  pointer-events: auto !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsToggle {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  min-height: 58px !important;
  width: 100% !important;
  border: 1px solid rgba(15, 23, 42, .10) !important;
  border-radius: 24px !important;
  padding: 12px 16px !important;
  background: rgba(255, 255, 255, .96) !important;
  color: #102033 !important;
  box-shadow: 0 18px 45px rgba(2, 8, 23, .18) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.2) !important;
  backdrop-filter: blur(18px) saturate(1.2) !important;
  touch-action: manipulation !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsToggle .ride-map-controls__toggle-label {
  font-weight: 950 !important;
  font-size: 16px !important;
  line-height: 1.1 !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsToggle .ride-map-controls__toggle-summary {
  display: block !important;
  margin-top: 2px !important;
  color: rgba(15, 23, 42, .62) !important;
  font-size: 12.5px !important;
  line-height: 1.15 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsToggle .ride-map-controls__toggle-icon {
  transition: transform .18s ease !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControls.fd-panel-open #rideMapControlsToggle .ride-map-controls__toggle-icon,
body.fd-route-passenger-map.ride-map-open #rideMapControls.is-expanded #rideMapControlsToggle .ride-map-controls__toggle-icon {
  transform: rotate(180deg) !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel {
  display: block !important;
  visibility: visible !important;
  position: relative !important;
  width: 100% !important;
  max-height: min(52dvh, 430px) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  -webkit-overflow-scrolling: touch !important;
  background: rgba(255,255,255,.97) !important;
  border: 1px solid rgba(15, 23, 42, .10) !important;
  border-radius: 28px !important;
  padding: 14px !important;
  box-shadow: 0 24px 60px rgba(2, 8, 23, .20) !important;
  transform: none !important;
  opacity: 1 !important;
  touch-action: pan-y !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControls.fd-panel-closed #rideMapControlsPanel,
body.fd-route-passenger-map.ride-map-open #rideMapControls:not(.fd-panel-open):not(.is-expanded) #rideMapControlsPanel {
  display: none !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel .ride-map-topbar {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto !important;
  gap: 8px !important;
  align-items: start !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel .ride-map-topbar__estimate strong {
  font-size: 22px !important;
  line-height: 1.05 !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel .ride-map-topbar__meta,
body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel .ride-surcharge-banner {
  grid-column: 1 / -1 !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel .ride-map-topbar__actions {
  display: flex !important;
  gap: 6px !important;
  flex-wrap: nowrap !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel #btnRequestRide {
  display: none !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel .profile-section {
  margin-top: 12px !important;
  padding: 12px !important;
  border-radius: 22px !important;
  background: rgba(248, 250, 252, .92) !important;
  border: 1px solid rgba(15, 23, 42, .07) !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel .option-list {
  display: grid !important;
  gap: 8px !important;
}
body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel .option-card {
  min-height: 52px !important;
  padding: 10px 12px !important;
  border-radius: 18px !important;
}
body.fd-route-passenger-map.ride-map-open #btnRequestRidePrimary.fd-map-panel-request-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 56px !important;
  width: 100% !important;
  border-radius: 999px !important;
  font-weight: 950 !important;
  box-shadow: 0 18px 42px rgba(10,132,255,.30) !important;
  touch-action: manipulation !important;
}
@media (max-width: 768px) {
  body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel {
    max-height: min(50dvh, 390px) !important;
    padding: 12px !important;
  }
  body.fd-route-passenger-map.ride-map-open #rideMapControlsPanel .ride-customization-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
}

/* FD_20260705_PASSENGER_PANEL_BEAUTIFUL_STABLE_V3
   Nuovo pannello mappa passeggero: bello, fisso, senza movimenti automatici. */
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open {
  overflow: hidden !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #app,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideSearchResults,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open .ride-map-fullscreen-shell,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open .ride-map-canvas-wrap,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMap {
  height: 100dvh !important;
  min-height: 100dvh !important;
  max-height: 100dvh !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControls.fd-passenger-panel-v3 {
  position: fixed !important;
  inset: auto max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important;
  z-index: 2147483000 !important;
  width: auto !important;
  max-width: 680px !important;
  margin-inline: auto !important;
  display: grid !important;
  gap: 10px !important;
  height: auto !important;
  max-height: calc(100dvh - 88px) !important;
  transform: none !important;
  translate: none !important;
  animation: none !important;
  transition: none !important;
  will-change: auto !important;
  touch-action: manipulation !important;
  pointer-events: none !important;
  background: transparent !important;
  padding: 0 !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControls.fd-passenger-panel-v3 > * {
  pointer-events: auto !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControls.fd-passenger-panel-v3 #rideMapControlsToggle {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 28px !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  gap: 2px 10px !important;
  width: 100% !important;
  min-height: 70px !important;
  padding: 22px 16px 13px !important;
  border: 1px solid rgba(12, 24, 40, .10) !important;
  border-radius: 28px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.96)) !important;
  box-shadow: 0 18px 48px rgba(2, 8, 23, .20), 0 2px 10px rgba(2,8,23,.08) !important;
  color: #0f172a !important;
  transform: none !important;
  animation: none !important;
  transition: box-shadow .18s ease, border-color .18s ease !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.25) !important;
  backdrop-filter: blur(18px) saturate(1.25) !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControls.fd-passenger-panel-v3 #rideMapControlsToggle:active {
  box-shadow: 0 12px 34px rgba(2, 8, 23, .18) !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open .fd-panel-v3-handle {
  position: absolute !important;
  top: 9px !important;
  left: 50% !important;
  width: 46px !important;
  height: 5px !important;
  border-radius: 99px !important;
  background: rgba(15, 23, 42, .22) !important;
  transform: translateX(-50%) !important;
  pointer-events: none !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsToggle .ride-map-controls__toggle-label {
  display: block !important;
  font-size: 16px !important;
  font-weight: 950 !important;
  letter-spacing: -.02em !important;
  line-height: 1.08 !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsToggle .ride-map-controls__toggle-summary {
  display: block !important;
  max-width: 100% !important;
  margin-top: 3px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  color: rgba(15, 23, 42, .62) !important;
  font-size: 12.5px !important;
  font-weight: 750 !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsToggle .ride-map-controls__toggle-icon {
  grid-row: 1 / span 2 !important;
  grid-column: 2 !important;
  width: 28px !important;
  height: 28px !important;
  display: inline-grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  background: rgba(15, 23, 42, .06) !important;
  transform: rotate(0deg) !important;
  transition: transform .18s ease !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControls.fd-panel-open #rideMapControlsToggle .ride-map-controls__toggle-icon {
  transform: rotate(180deg) !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControls.fd-passenger-panel-v3 #rideMapControlsPanel {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  max-height: min(54dvh, 440px) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  -webkit-overflow-scrolling: touch !important;
  padding: 14px !important;
  border: 1px solid rgba(12, 24, 40, .10) !important;
  border-radius: 30px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(248,250,252,.97)) !important;
  box-shadow: 0 24px 64px rgba(2, 8, 23, .22) !important;
  transform: none !important;
  translate: none !important;
  opacity: 1 !important;
  animation: none !important;
  transition: none !important;
  touch-action: pan-y !important;
  scrollbar-width: thin !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControls.fd-panel-closed #rideMapControlsPanel,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControls:not(.fd-panel-open) #rideMapControlsPanel {
  display: none !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .ride-map-topbar {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto !important;
  gap: 10px !important;
  align-items: start !important;
  padding: 4px 2px 10px !important;
  border-bottom: 1px solid rgba(15, 23, 42, .08) !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .ride-map-topbar__estimate strong {
  font-size: clamp(22px, 6vw, 30px) !important;
  line-height: 1 !important;
  letter-spacing: -.04em !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .ride-map-topbar__meta,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .ride-surcharge-banner,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .ride-trip-recording-inline {
  grid-column: 1 / -1 !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .ride-map-topbar__actions {
  display: flex !important;
  gap: 7px !important;
  align-items: center !important;
  justify-content: flex-end !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .ride-map-action-icon {
  width: 42px !important;
  height: 42px !important;
  border-radius: 16px !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel #btnRequestRide {
  display: none !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .profile-section {
  margin: 12px 0 0 !important;
  padding: 12px !important;
  border: 1px solid rgba(15, 23, 42, .07) !important;
  border-radius: 24px !important;
  background: rgba(248, 250, 252, .92) !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .section-title-row h2 {
  font-size: 14px !important;
  font-weight: 950 !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .option-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 8px !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .option-card {
  min-height: 54px !important;
  padding: 10px 12px !important;
  border-radius: 19px !important;
  background: #fff !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .option-card.is-selected,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControlsPanel .option-card[aria-checked="true"] {
  border-color: rgba(10,132,255,.42) !important;
  box-shadow: 0 10px 24px rgba(10,132,255,.12) !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #btnRequestRidePrimary.fd-map-panel-request-btn-v3,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #btnRequestRidePrimary.fd-map-panel-request-btn {
  display: inline-flex !important;
  width: 100% !important;
  min-height: 58px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  border-radius: 999px !important;
  font-size: 16px !important;
  font-weight: 950 !important;
  letter-spacing: -.01em !important;
  box-shadow: 0 18px 42px rgba(10, 132, 255, .34) !important;
  transform: none !important;
  animation: none !important;
  transition: filter .15s ease, box-shadow .15s ease !important;
  touch-action: manipulation !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #btnRequestRidePrimary.fd-map-panel-request-btn-v3:active {
  filter: brightness(.96) !important;
  box-shadow: 0 12px 30px rgba(10, 132, 255, .28) !important;
}
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #mobileBottomNav,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open .mobile-bottom-nav,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #fdMobileRideBottomBar,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open .fd-mobile-ride-bottom-bar,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #btnRequestRideIcon,
body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open .ride-map-floating-action--primary {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
@media (max-width: 520px) {
  body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControls.fd-passenger-panel-v3 {
    inset-inline: 10px !important;
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
    max-height: calc(100dvh - 78px) !important;
  }
  body.fd-route-passenger-map.fd-passenger-map-panel-v3.ride-map-open #rideMapControls.fd-passenger-panel-v3 #rideMapControlsPanel {
    max-height: min(52dvh, 410px) !important;
    padding: 12px !important;
  }
}

/* Passenger map v5: rebuilt from zero. No drag, no old bottom sheet JS dependency. */
body.fd-route-passenger-map.fd-passenger-map-v5-active{overflow:hidden!important;background:#eaf6fb!important;}
body.fd-route-passenger-map.fd-passenger-map-v5-active #app{height:100dvh!important;overflow:hidden!important;background:#eaf6fb!important;}
body.fd-route-passenger-map.fd-passenger-map-v5-active .app-main{height:calc(100dvh - 90px)!important;min-height:0!important;overflow:hidden!important;display:block!important;padding:0!important;}
body.fd-route-passenger-map.fd-passenger-map-v5-active .app-content,body.fd-route-passenger-map.fd-passenger-map-v5-active .route-view{height:100%!important;min-height:0!important;overflow:hidden!important;padding:0!important;margin:0!important;max-width:none!important;}
body.fd-route-passenger-map.fd-passenger-map-v5-active .app-footer,body.fd-route-passenger-map.fd-passenger-map-v5-active .mobile-bottom-nav,body.fd-route-passenger-map.fd-passenger-map-v5-active .bottom-nav,body.fd-route-passenger-map.fd-passenger-map-v5-active [data-mobile-nav],body.fd-route-passenger-map.fd-passenger-map-v5-active .app-mobile-nav{display:none!important;}
.fd-passenger-map-v5{position:relative;width:100%;height:100%;min-height:520px;overflow:hidden;background:#dff3fb;font-family:Lato,system-ui,-apple-system,Segoe UI,sans-serif;color:#14213d;}
.fd-passenger-map-v5__map{position:absolute;inset:0;z-index:1;background:#dbeafe;}
.fd-passenger-map-v5__map-actions{position:absolute;right:14px;top:16px;z-index:5;display:grid;gap:10px;}
.fd-passenger-map-v5__map-actions button{border:0;border-radius:999px;background:#fff;color:#0b4778;font-weight:900;min-width:48px;height:48px;padding:0 12px;box-shadow:0 10px 28px rgba(15,35,65,.18);}
.fd-passenger-sheet-v5{position:absolute;left:14px;right:14px;bottom:96px;z-index:6;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border:1px solid rgba(11,71,120,.12);border-radius:30px;box-shadow:0 24px 65px rgba(9,30,66,.20);max-height:min(62dvh,560px);overflow:hidden;transition:max-height .22s ease,transform .22s ease;}
.fd-passenger-sheet-v5.is-collapsed{max-height:86px;}
.fd-passenger-sheet-v5__header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px;border-bottom:1px solid rgba(11,71,120,.08);}
.fd-passenger-sheet-v5__eyebrow{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:900;color:#0f7ae5;}
.fd-passenger-sheet-v5 h1{margin:3px 0 0;font-size:24px;line-height:1.1;font-weight:900;color:#14213d;}
#fdPassengerSheetToggle{width:46px;height:46px;border:0;border-radius:999px;background:#edf6ff;color:#0b66c3;font-size:24px;font-weight:900;}
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle{transform:rotate(180deg);}
.fd-passenger-sheet-v5__body{max-height:calc(min(62dvh,560px) - 86px);overflow:auto;overscroll-behavior:contain;padding:18px 22px 22px;}
.fd-passenger-route-v5{position:relative;border:1px solid #d9e7f4;border-radius:24px;background:#fff;padding:16px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);}
.fd-passenger-route-v5__rail{position:absolute;left:38px;top:58px;bottom:58px;border-left:4px dotted #d8e4ef;}
.fd-passenger-field-v5{position:relative;display:grid;grid-template-columns:52px 1fr 42px;align-items:center;gap:12px;margin:0;padding:10px 0;}
.fd-passenger-field-v5__badge{width:52px;height:52px;border-radius:999px;display:grid;place-items:center;color:#fff;font-size:22px;font-weight:900;box-shadow:0 0 0 10px rgba(15,122,229,.09);z-index:2;}
.fd-passenger-field-v5--pickup .fd-passenger-field-v5__badge{background:#1877f2;}
.fd-passenger-field-v5--dropoff .fd-passenger-field-v5__badge{background:#f41f5b;box-shadow:0 0 0 10px rgba(244,31,91,.09);}
.fd-passenger-field-v5--stop .fd-passenger-field-v5__badge{background:#f97316;box-shadow:0 0 0 10px rgba(249,115,22,.09);}
.fd-passenger-field-v5__content{display:block;min-width:0;}
.fd-passenger-field-v5__content b{display:block;margin:0 0 6px;font-size:15px;color:#14213d;}
.fd-passenger-field-v5__content input{width:100%;height:50px;border:1px solid #dce8f2;border-radius:18px;background:#fff;padding:0 16px;font-size:16px;color:#14213d;box-shadow:0 6px 20px rgba(9,30,66,.05);outline:none;}
.fd-passenger-field-v5__content input:focus{border-color:#0f7ae5;box-shadow:0 0 0 4px rgba(15,122,229,.13);}
.fd-passenger-field-v5>button{width:40px;height:40px;border:0;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:24px;font-weight:900;}
.fd-passenger-stops-v5{position:relative;z-index:2;}
.fd-passenger-sheet-v5__buttons{display:grid;gap:12px;margin:14px 0;}
.fd-passenger-sheet-v5__buttons button,.fd-driver-choice-v5 button{height:48px;border-radius:999px;border:1px solid #cfe1f2;background:#fff;color:#0b66c3;font-weight:900;font-size:15px;}
.fd-driver-choice-v5{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;margin:14px 0;padding:14px;border-radius:20px;background:#ecfdf5;border:1px solid #bbf7d0;color:#14532d;}
.fd-driver-choice-v5 span{font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;opacity:.75;}
.fd-driver-choice-v5 strong{font-size:17px;}
.fd-driver-choice-v5 button{grid-row:1 / span 2;grid-column:2;background:#fff;color:#15803d;border-color:#bbf7d0;padding:0 14px;}
.fd-passenger-meta-v5{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0;}
.fd-passenger-meta-v5 div{border-radius:18px;background:#f8fbff;border:1px solid #dce8f2;padding:12px;text-align:center;}
.fd-passenger-meta-v5 span{display:block;font-size:12px;color:#64748b;font-weight:800;}
.fd-passenger-meta-v5 strong{display:block;margin-top:4px;color:#0b4778;font-weight:900;font-size:15px;}
.fd-passenger-hint-v5{margin:10px 2px 0;font-size:13px;line-height:1.35;color:#526276;}
.fd-passenger-cta-v5{position:absolute;left:14px;right:14px;bottom:18px;z-index:7;display:grid;gap:8px;}
#fdRequestRideBtn{height:62px;border:0;border-radius:999px;background:linear-gradient(135deg,#0f7ae5,#0b4778);color:#fff;font-size:18px;font-weight:900;box-shadow:0 18px 40px rgba(15,122,229,.32);}
#fdRequestRideBtn:disabled{opacity:.6;}
#fdRequestStatus{min-height:0;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 10px 28px rgba(9,30,66,.12);padding:0 14px;max-height:0;overflow:hidden;color:#14213d;font-weight:800;transition:all .2s ease;}
#fdRequestStatus:not(:empty){padding:12px 14px;max-height:120px;}
#fdRequestStatus[data-type="error"]{background:#fff1f2;color:#9f1239;}
#fdRequestStatus[data-type="ok"]{background:#ecfdf5;color:#14532d;}
#fdRequestStatus[data-type="warn"]{background:#fffbeb;color:#92400e;}
@media (max-width:480px){.fd-passenger-sheet-v5{left:0;right:0;bottom:92px;border-radius:30px 30px 0 0;max-height:60dvh}.fd-passenger-sheet-v5__header{padding-left:24px;padding-right:18px}.fd-passenger-sheet-v5__body{padding:16px 18px 20px}.fd-passenger-field-v5{grid-template-columns:48px 1fr 40px;gap:10px}.fd-passenger-field-v5__badge{width:48px;height:48px}.fd-passenger-route-v5__rail{left:39px}.fd-passenger-meta-v5{gap:8px}.fd-passenger-meta-v5 div{padding:10px 6px}.fd-passenger-cta-v5{bottom:14px}.fd-passenger-map-v5__map-actions{top:12px;right:10px}}

/* Passenger map v6 refinements: stable full-height sheet, centered toggle, visible map controls, filters, dynamic route letters */
body.fd-route-passenger-map.fd-passenger-map-v5-active .app-main{height:calc(100dvh - 82px)!important;}
.fd-passenger-map-v5__map-actions{top:76px!important;right:16px!important;z-index:8!important;}
.fd-passenger-sheet-v5{bottom:78px!important;max-height:calc(100dvh - 190px)!important;border-radius:30px 30px 0 0!important;}
.fd-passenger-sheet-v5.is-collapsed{max-height:86px!important;}
.fd-passenger-sheet-v5__body{max-height:calc(100dvh - 276px)!important;padding-bottom:24px!important;}
#fdPassengerSheetToggle{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:52px!important;height:52px!important;min-width:52px!important;padding:0!important;line-height:1!important;font-size:0!important;position:relative!important;box-shadow:inset 0 0 0 1px rgba(11,71,120,.05)!important;}
#fdPassengerSheetToggle::before{content:"";width:12px;height:12px;border-right:3px solid #0b66c3;border-bottom:3px solid #0b66c3;transform:translateY(-3px) rotate(45deg);display:block;}
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle{transform:none!important;}
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle::before{transform:translateY(3px) rotate(225deg);}
.fd-passenger-cta-v5{bottom:max(0px,env(safe-area-inset-bottom))!important;left:14px!important;right:14px!important;}
#fdRequestRideBtn{height:64px!important;border-radius:28px!important;}
.fd-passenger-options-v6{margin:14px 0;padding:14px;border:1px solid #d9e7f4;border-radius:22px;background:#f8fbff;}
.fd-passenger-options-v6__title{font-size:13px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:#0b66c3;margin:0 0 10px;}
.fd-passenger-options-v6__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;}
.fd-passenger-options-v6 label span,.fd-passenger-note-v6 span{display:block;font-size:12px;font-weight:900;color:#526276;margin-bottom:5px;}
.fd-passenger-options-v6 select,.fd-passenger-note-v6 textarea{width:100%;border:1px solid #dce8f2;border-radius:16px;background:#fff;color:#14213d;font-weight:800;outline:none;}
.fd-passenger-options-v6 select{height:44px;padding:0 12px;}
.fd-passenger-note-v6 textarea{min-height:58px;resize:vertical;padding:10px 12px;font-family:inherit;}
.fd-passenger-options-v6__chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none;}
.fd-passenger-options-v6__chips::-webkit-scrollbar{display:none;}
.fd-passenger-options-v6__chips label{flex:0 0 auto;}
.fd-passenger-options-v6__chips input{position:absolute;opacity:0;pointer-events:none;}
.fd-passenger-options-v6__chips span{display:inline-flex!important;align-items:center;justify-content:center;height:38px;padding:0 13px;margin:0!important;border:1px solid #d3e4f4;border-radius:999px;background:#fff;color:#0b4778;font-size:13px!important;font-weight:900!important;white-space:nowrap;}
.fd-passenger-options-v6__chips input:checked + span{background:#e7f2ff;border-color:#0f7ae5;color:#075da8;box-shadow:0 0 0 3px rgba(15,122,229,.12);}
@media (max-width:480px){
  body.fd-route-passenger-map.fd-passenger-map-v5-active .app-main{height:calc(100dvh - 82px)!important;}
  .fd-passenger-map-v5__map-actions{top:72px!important;right:12px!important;}
  .fd-passenger-sheet-v5{left:0!important;right:0!important;bottom:76px!important;max-height:calc(100dvh - 178px)!important;}
  .fd-passenger-sheet-v5__body{max-height:calc(100dvh - 264px)!important;}
  .fd-passenger-options-v6__grid{grid-template-columns:1fr;}
}


/* Passenger map v7: bottom sheet fino al bordo, controlli mappa liberi, CTA leggibile */
body.fd-route-passenger-map.fd-passenger-map-v5-active .app-main{height:calc(100dvh - 82px)!important;}
.fd-passenger-map-v5__map-actions{top:12px!important;right:12px!important;left:auto!important;z-index:5!important;display:flex!important;flex-direction:row!important;gap:10px!important;align-items:center!important;}
.fd-passenger-map-v5__map-actions button{height:52px!important;min-width:52px!important;border-radius:26px!important;}
#fdPassengerClearDriverBtn{min-width:88px!important;padding:0 18px!important;}
.fd-passenger-sheet-v5{left:0!important;right:0!important;bottom:0!important;top:92px!important;max-height:none!important;height:auto!important;border-radius:30px 30px 0 0!important;display:flex!important;flex-direction:column!important;}
.fd-passenger-sheet-v5.is-collapsed{top:auto!important;height:86px!important;max-height:86px!important;}
.fd-passenger-sheet-v5__header{flex:0 0 86px!important;}
.fd-passenger-sheet-v5__body{flex:1 1 auto!important;max-height:none!important;min-height:0!important;overflow-y:auto!important;padding-bottom:132px!important;-webkit-overflow-scrolling:touch!important;}
#fdPassengerSheetToggle{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:52px!important;height:52px!important;min-width:52px!important;padding:0!important;line-height:1!important;font-size:0!important;position:relative!important;}
#fdPassengerSheetToggle::before{content:""!important;width:12px!important;height:12px!important;border-right:3px solid #0b66c3!important;border-bottom:3px solid #0b66c3!important;transform:translateY(-3px) rotate(45deg)!important;display:block!important;}
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle::before{transform:translateY(3px) rotate(225deg)!important;}
.fd-passenger-cta-v5{left:16px!important;right:16px!important;bottom:max(10px,env(safe-area-inset-bottom))!important;z-index:9!important;pointer-events:none!important;}
#fdRequestRideBtn{pointer-events:auto!important;height:64px!important;border-radius:28px!important;font-size:18px!important;}
#fdRequestStatus{pointer-events:auto!important;}
#fdRequestStatus[data-type="info"]{display:none!important;}
.fd-passenger-hint-v5{font-weight:800!important;color:#526276!important;margin-bottom:10px!important;}
@media (max-width:480px){
  .fd-passenger-map-v5__map-actions{top:12px!important;right:12px!important;}
  .fd-passenger-sheet-v5{left:0!important;right:0!important;bottom:0!important;top:92px!important;}
  .fd-passenger-sheet-v5__body{padding-left:18px!important;padding-right:18px!important;padding-bottom:136px!important;}
}


/* Passenger map v8: pannello stabile, CTA separata, controlli mappa non sovrapposti, pagamento corretto */
body.fd-route-passenger-map.fd-passenger-map-v5-active,
body.fd-route-passenger-map.fd-passenger-map-v5-active html{overscroll-behavior:none!important;}
body.fd-route-passenger-map.fd-passenger-map-v5-active .app-main{height:calc(100dvh - 82px)!important;overflow:hidden!important;}
.fd-passenger-map-v5__map-actions{
  top:16px!important;
  left:16px!important;
  right:auto!important;
  z-index:4!important;
  display:flex!important;
  flex-direction:row!important;
  gap:10px!important;
  align-items:center!important;
  max-width:calc(100% - 32px)!important;
}
.fd-passenger-map-v5__map-actions button{
  height:50px!important;
  min-width:50px!important;
  border-radius:25px!important;
  padding:0 14px!important;
  font-size:15px!important;
}
#fdPassengerClearDriverBtn{min-width:108px!important;}
.fd-passenger-sheet-v5{
  left:0!important;
  right:0!important;
  top:96px!important;
  bottom:0!important;
  height:auto!important;
  max-height:none!important;
  border-radius:30px 30px 0 0!important;
  display:flex!important;
  flex-direction:column!important;
  transform:none!important;
  transition:none!important;
  will-change:auto!important;
  overflow:hidden!important;
  z-index:6!important;
}
.fd-passenger-sheet-v5.is-collapsed{
  top:auto!important;
  bottom:0!important;
  height:88px!important;
  max-height:88px!important;
  transform:none!important;
}
.fd-passenger-sheet-v5__header{
  flex:0 0 88px!important;
  min-height:88px!important;
  padding:18px 32px 16px 24px!important;
}
.fd-passenger-sheet-v5__body{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  padding:18px 18px 188px!important;
  scroll-padding-bottom:190px!important;
  transform:none!important;
}
#fdPassengerSheetToggle{
  width:54px!important;
  height:54px!important;
  min-width:54px!important;
  border-radius:50%!important;
  display:inline-grid!important;
  place-items:center!important;
  padding:0!important;
  line-height:1!important;
  font-size:0!important;
  background:#edf6ff!important;
  color:#0b66c3!important;
}
#fdPassengerSheetToggle::before{
  content:""!important;
  width:13px!important;
  height:13px!important;
  border-right:3px solid currentColor!important;
  border-bottom:3px solid currentColor!important;
  transform:translateY(-2px) rotate(45deg)!important;
  transform-origin:center!important;
  display:block!important;
  margin:0!important;
}
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle::before{transform:translateY(3px) rotate(225deg)!important;}
.fd-passenger-cta-v5{
  position:absolute!important;
  left:16px!important;
  right:16px!important;
  bottom:max(12px,env(safe-area-inset-bottom))!important;
  z-index:9!important;
  pointer-events:none!important;
  gap:6px!important;
}
#fdRequestRideBtn{
  pointer-events:auto!important;
  height:62px!important;
  border-radius:28px!important;
  font-size:17px!important;
  letter-spacing:-.01em!important;
}
#fdRequestStatus{pointer-events:auto!important;}
#fdRequestStatus:empty{display:none!important;}
#fdRequestStatus[data-type="info"]{display:none!important;}
.fd-passenger-options-v6{margin-bottom:16px!important;}
.fd-passenger-options-v8__extras{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0;}
.fd-passenger-options-v8__extras label span{display:block;font-size:12px;font-weight:900;color:#526276;margin-bottom:5px;}
.fd-passenger-options-v8__extras select{width:100%;height:44px;border:1px solid #dce8f2;border-radius:16px;background:#fff;color:#14213d;font-weight:800;padding:0 12px;outline:none;}
.fd-wallet-hint-v8{display:block;margin-top:6px;color:#b45309;font-size:11px;font-weight:900;line-height:1.25;}
.fd-wallet-hint-v8[hidden]{display:none!important;}
.fd-passenger-options-v6 select:focus,.fd-passenger-options-v8__extras select:focus,.fd-passenger-note-v6 textarea:focus{border-color:#0f7ae5!important;box-shadow:0 0 0 4px rgba(15,122,229,.13)!important;}
.fd-passenger-options-v6__chips label,
.fd-passenger-options-v6__chips span,
.fd-passenger-sheet-v5__buttons button,
.fd-passenger-options-v6 select,
.fd-passenger-options-v8__extras select,
.fd-passenger-note-v6 textarea{touch-action:manipulation!important;}
@media (max-width:480px){
  .fd-passenger-map-v5__map-actions{top:12px!important;left:12px!important;right:auto!important;}
  .fd-passenger-sheet-v5{top:92px!important;bottom:0!important;}
  .fd-passenger-sheet-v5__body{padding-left:18px!important;padding-right:18px!important;padding-bottom:192px!important;}
  .fd-passenger-options-v6__grid,.fd-passenger-options-v8__extras{grid-template-columns:1fr!important;}
  .fd-passenger-meta-v5{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}

/* Passenger map v9: fixed controls, beautiful centered chevron, usable collapsed sheet */
body.fd-route-passenger-map.fd-passenger-map-v5-active .app-main{
  height:calc(100dvh - 82px)!important;
  overflow:hidden!important;
}
.fd-passenger-map-v5__map-actions{
  top:104px!important;
  right:14px!important;
  left:auto!important;
  z-index:5!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
  align-items:end!important;
}
.fd-passenger-map-v5__map-actions button{
  height:56px!important;
  min-width:56px!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.96)!important;
  color:#0b4778!important;
  box-shadow:0 12px 28px rgba(9,30,66,.20)!important;
}
#fdPassengerClearDriverBtn{min-width:86px!important;font-size:17px!important;}
.fd-passenger-sheet-v5{
  top:104px!important;
  bottom:0!important;
  left:0!important;
  right:0!important;
  border-radius:30px 30px 0 0!important;
  box-shadow:0 -18px 45px rgba(9,30,66,.18)!important;
  z-index:6!important;
}
.fd-passenger-sheet-v5__header{
  flex:0 0 88px!important;
  min-height:88px!important;
  padding:18px 34px 16px 24px!important;
}
.fd-passenger-sheet-v5__header::before{
  content:"";
  position:absolute;
  top:12px;
  left:50%;
  width:48px;
  height:5px;
  border-radius:999px;
  background:#b7c3d0;
  transform:translateX(-50%);
  opacity:.9;
}
#fdPassengerSheetToggle{
  position:relative!important;
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
  background:linear-gradient(180deg,#f4f9ff,#e9f4ff)!important;
  color:#0b66c3!important;
  border:1px solid rgba(11,71,120,.08)!important;
  box-shadow:0 8px 20px rgba(9,30,66,.10), inset 0 1px 0 rgba(255,255,255,.9)!important;
  font-size:0!important;
  line-height:0!important;
  transform:none!important;
}
#fdPassengerSheetToggle::before,
#fdPassengerSheetToggle::after{
  content:""!important;
  position:absolute!important;
  top:50%!important;
  width:16px!important;
  height:4px!important;
  border:0!important;
  border-radius:999px!important;
  background:currentColor!important;
  margin:0!important;
  display:block!important;
  transform-origin:center!important;
}
/* pannello aperto: freccia giù per abbassarlo */
#fdPassengerSheetToggle::before{left:16px!important;transform:translateY(-50%) rotate(45deg)!important;}
#fdPassengerSheetToggle::after{right:16px!important;transform:translateY(-50%) rotate(-45deg)!important;}
/* pannello chiuso: freccia su per tirarlo su */
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle::before{left:16px!important;transform:translateY(-50%) rotate(-45deg)!important;}
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle::after{right:16px!important;transform:translateY(-50%) rotate(45deg)!important;}
.fd-passenger-sheet-v5__body{
  padding:16px 18px 112px!important;
  scroll-padding-bottom:118px!important;
}
.fd-passenger-cta-v5{
  left:16px!important;
  right:16px!important;
  bottom:max(14px,env(safe-area-inset-bottom))!important;
  z-index:8!important;
}
#fdRequestRideBtn{height:62px!important;border-radius:30px!important;}
/* Collapsed is a visible mini-panel, not a disappearing strip */
.fd-passenger-sheet-v5.is-collapsed{
  top:auto!important;
  bottom:0!important;
  height:252px!important;
  max-height:252px!important;
  display:flex!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-sheet-v5__header{
  flex:0 0 90px!important;
  min-height:90px!important;
  border-bottom:0!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-sheet-v5__body{
  display:block!important;
  overflow:hidden!important;
  padding:0 24px 92px!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-route-v5{
  display:block!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-route-v5__rail,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5>button,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5__content b,
.fd-passenger-sheet-v5.is-collapsed #fdStopsList,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-sheet-v5__buttons,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-options-v6,
.fd-passenger-sheet-v5.is-collapsed .fd-driver-choice-v5,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-meta-v5,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-hint-v5{display:none!important;}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5{
  display:grid!important;
  grid-template-columns:34px 1fr!important;
  gap:10px!important;
  padding:2px 0 8px!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5__badge{
  width:30px!important;height:30px!important;font-size:13px!important;box-shadow:0 0 0 4px rgba(15,122,229,.08)!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5__content input{
  height:30px!important;border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;font-size:14px!important;font-weight:900!important;pointer-events:none!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5--dropoff .fd-passenger-field-v5__badge{box-shadow:0 0 0 4px rgba(244,31,91,.08)!important;}
/* If a status was left by an old cached script, keep it hidden unless it is an actual error/ok/warn. */
#fdRequestStatus[data-type="info"],#fdRequestStatus:empty{display:none!important;}
@media (max-width:480px){
  .fd-passenger-map-v5__map-actions{top:96px!important;right:12px!important;left:auto!important;}
  .fd-passenger-sheet-v5{top:90px!important;}
  .fd-passenger-sheet-v5__body{padding-bottom:108px!important;}
  .fd-passenger-sheet-v5.is-collapsed{height:248px!important;max-height:248px!important;}
  .fd-passenger-sheet-v5.is-collapsed .fd-passenger-sheet-v5__body{padding-bottom:90px!important;}
}


/* Passenger map v10: premium bottom sheet polish + safe map controls */
body.fd-route-passenger-map.fd-passenger-map-v5-active .app-main{
  height:calc(100dvh - 82px)!important;
}
.fd-passenger-map-v5{
  background:#dff7f4!important;
}
.fd-passenger-map-v5__map-actions{
  top:104px!important;
  right:14px!important;
  left:auto!important;
  z-index:4!important;
  display:grid!important;
  gap:12px!important;
  pointer-events:auto!important;
}
.fd-passenger-map-v5__map-actions button{
  height:58px!important;
  min-width:58px!important;
  border-radius:29px!important;
  border:1px solid rgba(255,255,255,.72)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(242,248,255,.96))!important;
  color:#074b7f!important;
  box-shadow:0 16px 34px rgba(9,30,66,.20), inset 0 1px 0 rgba(255,255,255,.95)!important;
  backdrop-filter:blur(10px)!important;
}
#fdPassengerLocateBtn{font-size:0!important;position:relative!important;}
#fdPassengerLocateBtn::before,
#fdPassengerLocateBtn::after{content:""!important;position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;border-radius:999px!important;}
#fdPassengerLocateBtn::before{width:18px!important;height:18px!important;border:3px solid currentColor!important;background:transparent!important;}
#fdPassengerLocateBtn::after{width:5px!important;height:5px!important;background:currentColor!important;box-shadow:0 -15px 0 -1px currentColor,0 15px 0 -1px currentColor,15px 0 0 -1px currentColor,-15px 0 0 -1px currentColor!important;}
#fdPassengerClearDriverBtn{min-width:86px!important;font-size:17px!important;font-weight:950!important;letter-spacing:-.02em!important;}
.fd-passenger-sheet-v5{
  top:98px!important;
  bottom:0!important;
  left:0!important;
  right:0!important;
  border-radius:32px 32px 0 0!important;
  background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(250,253,255,.98) 72%,rgba(244,250,255,.98) 100%)!important;
  box-shadow:0 -24px 52px rgba(11,38,74,.20), inset 0 1px 0 rgba(255,255,255,.92)!important;
  border:1px solid rgba(205,224,239,.86)!important;
  border-bottom:0!important;
  overflow:hidden!important;
}
.fd-passenger-sheet-v5__header{
  position:relative!important;
  flex:0 0 88px!important;
  min-height:88px!important;
  padding:20px 28px 14px 24px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.99),rgba(255,255,255,.94))!important;
  border-bottom:1px solid rgba(213,226,237,.75)!important;
}
.fd-passenger-sheet-v5__header::before{
  content:""!important;
  position:absolute!important;
  top:11px!important;
  left:50%!important;
  width:54px!important;
  height:5px!important;
  border-radius:999px!important;
  transform:translateX(-50%)!important;
  background:linear-gradient(90deg,#d6dee8,#aebbc8,#d6dee8)!important;
  opacity:1!important;
}
.fd-passenger-sheet-v5__eyebrow{
  color:#0872d4!important;
  font-weight:950!important;
  letter-spacing:.08em!important;
}
.fd-passenger-sheet-v5__header h1{
  letter-spacing:-.045em!important;
  line-height:1!important;
}
#fdPassengerSheetToggle{
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  border-radius:50%!important;
  background:radial-gradient(circle at 35% 28%,#ffffff 0,#f2f8ff 55%,#e2f0ff 100%)!important;
  border:1px solid rgba(159,193,224,.52)!important;
  color:#0868bd!important;
  box-shadow:0 14px 28px rgba(9,30,66,.14), inset 0 1px 0 rgba(255,255,255,1)!important;
  font-size:0!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  line-height:0!important;
}
#fdPassengerSheetToggle::before,
#fdPassengerSheetToggle::after{
  content:""!important;
  position:absolute!important;
  width:18px!important;
  height:5px!important;
  top:50%!important;
  border-radius:999px!important;
  background:currentColor!important;
  border:0!important;
  box-shadow:0 1px 0 rgba(255,255,255,.55)!important;
  transition:transform .18s ease!important;
}
/* aperto: chevron giù per abbassare */
#fdPassengerSheetToggle::before{left:17px!important;transform:translateY(-50%) rotate(45deg)!important;}
#fdPassengerSheetToggle::after{right:17px!important;transform:translateY(-50%) rotate(-45deg)!important;}
/* chiuso: chevron su per aprire */
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle::before{left:17px!important;transform:translateY(-50%) rotate(-45deg)!important;}
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle::after{right:17px!important;transform:translateY(-50%) rotate(45deg)!important;}
.fd-passenger-sheet-v5__body{
  padding:18px 18px 92px!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:none!important;
}
.fd-passenger-sheet-v5__body::-webkit-scrollbar{display:none!important;}
.fd-passenger-route-v5,
.fd-passenger-options-v6{
  border:1px solid rgba(199,220,235,.92)!important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%)!important;
  box-shadow:0 12px 34px rgba(17,58,99,.07)!important;
  border-radius:26px!important;
}
.fd-passenger-field-v5__badge{
  box-shadow:0 0 0 9px rgba(20,128,231,.08),0 10px 20px rgba(17,58,99,.12)!important;
}
.fd-passenger-field-v5--dropoff .fd-passenger-field-v5__badge{
  box-shadow:0 0 0 9px rgba(244,31,91,.10),0 10px 20px rgba(17,58,99,.12)!important;
}
.fd-passenger-field-v5__content input{
  border:1px solid rgba(209,226,238,.95)!important;
  border-radius:19px!important;
  box-shadow:0 10px 20px rgba(17,58,99,.06), inset 0 1px 0 rgba(255,255,255,.9)!important;
}
.fd-passenger-sheet-v5__buttons{gap:12px!important;}
.fd-passenger-sheet-v5__buttons button,
.fd-passenger-options-v6__chips label{
  background:rgba(255,255,255,.86)!important;
  border:1px solid rgba(196,219,235,.9)!important;
  box-shadow:0 8px 18px rgba(17,58,99,.05)!important;
}
.fd-passenger-options-v6__title{
  color:#0872d4!important;
  font-weight:950!important;
  letter-spacing:.08em!important;
}
.fd-passenger-meta-v5 div{
  background:linear-gradient(180deg,#ffffff,#f7fbff)!important;
  border:1px solid rgba(202,222,237,.92)!important;
  border-radius:22px!important;
  box-shadow:0 8px 20px rgba(17,58,99,.05)!important;
}
.fd-passenger-hint-v5{
  margin:14px 4px 4px!important;
  padding:0!important;
  color:#4d6077!important;
  font-weight:800!important;
  line-height:1.22!important;
}
.fd-passenger-cta-v5{
  left:18px!important;
  right:18px!important;
  bottom:max(12px,env(safe-area-inset-bottom))!important;
  z-index:9!important;
}
#fdRequestRideBtn{
  height:62px!important;
  border-radius:31px!important;
  background:linear-gradient(135deg,#1688f2 0%,#07558d 100%)!important;
  box-shadow:0 18px 34px rgba(4,84,150,.30), inset 0 1px 0 rgba(255,255,255,.25)!important;
  font-weight:950!important;
  letter-spacing:-.025em!important;
}
/* Collapsed: always visible, elegant compact card */
.fd-passenger-sheet-v5.is-collapsed{
  top:auto!important;
  bottom:0!important;
  height:258px!important;
  max-height:258px!important;
  border-radius:30px 30px 0 0!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-sheet-v5__header{
  flex:0 0 92px!important;
  min-height:92px!important;
  border-bottom:0!important;
  background:transparent!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-sheet-v5__body{
  display:block!important;
  padding:0 26px 92px!important;
  overflow:hidden!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-route-v5{
  display:block!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-route-v5__rail,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5>button,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5__content b,
.fd-passenger-sheet-v5.is-collapsed #fdStopsList,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-sheet-v5__buttons,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-options-v6,
.fd-passenger-sheet-v5.is-collapsed .fd-driver-choice-v5,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-meta-v5,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-hint-v5{display:none!important;}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5{
  display:grid!important;
  grid-template-columns:34px 1fr!important;
  align-items:center!important;
  gap:10px!important;
  padding:0 0 8px!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5__badge{
  width:30px!important;
  height:30px!important;
  font-size:13px!important;
  box-shadow:0 0 0 6px rgba(15,122,229,.08)!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5__content input{
  height:30px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
  font-size:14px!important;
  font-weight:950!important;
  pointer-events:none!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5--dropoff .fd-passenger-field-v5__badge{box-shadow:0 0 0 6px rgba(244,31,91,.10)!important;}
#fdRequestStatus:empty,#fdRequestStatus[data-type="info"]{display:none!important;}
@media (max-width:480px){
  .fd-passenger-map-v5__map-actions{top:104px!important;right:14px!important;left:auto!important;}
  .fd-passenger-sheet-v5{top:92px!important;}
  .fd-passenger-sheet-v5__header{padding-left:24px!important;padding-right:28px!important;}
  .fd-passenger-sheet-v5__body{padding-left:18px!important;padding-right:18px!important;padding-bottom:88px!important;}
  .fd-passenger-cta-v5{left:18px!important;right:18px!important;bottom:max(10px,env(safe-area-inset-bottom))!important;}
  #fdRequestRideBtn{height:60px!important;font-size:16px!important;}
  .fd-passenger-sheet-v5.is-collapsed{height:258px!important;max-height:258px!important;}
  .fd-passenger-sheet-v5.is-collapsed .fd-passenger-sheet-v5__body{padding:0 26px 88px!important;}
}

/* Passenger map v11: compact circular map controls + fixed autocomplete dropdown */
body.fd-route-passenger-map.fd-passenger-map-v5-active .app-main{
  height:calc(100dvh - 82px)!important;
  overflow:hidden!important;
}
.fd-passenger-map-v5__map-actions{
  top:94px!important;
  right:12px!important;
  left:auto!important;
  z-index:5!important;
  display:grid!important;
  gap:10px!important;
  align-items:center!important;
  justify-items:end!important;
  pointer-events:auto!important;
}
.fd-passenger-map-v5__map-actions button{
  width:50px!important;
  min-width:50px!important;
  max-width:50px!important;
  height:50px!important;
  min-height:50px!important;
  padding:0!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(243,249,255,.96))!important;
  border:1px solid rgba(173,203,230,.58)!important;
  color:#074b7f!important;
  box-shadow:0 12px 26px rgba(9,30,66,.18), inset 0 1px 0 rgba(255,255,255,.95)!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
}
#fdPassengerLocateBtn::before{width:15px!important;height:15px!important;border-width:3px!important;}
#fdPassengerLocateBtn::after{width:4px!important;height:4px!important;box-shadow:0 -13px 0 -1px currentColor,0 13px 0 -1px currentColor,13px 0 0 -1px currentColor,-13px 0 0 -1px currentColor!important;}
#fdPassengerClearDriverBtn{
  font-size:13px!important;
  font-weight:950!important;
  line-height:1!important;
  letter-spacing:-.03em!important;
  white-space:normal!important;
}
/* Keep the sheet elegant but reduce useless empty space when opened. */
.fd-passenger-sheet-v5:not(.is-collapsed) .fd-passenger-sheet-v5__body{
  padding-bottom:76px!important;
  scroll-padding-bottom:82px!important;
}
.fd-passenger-sheet-v5:not(.is-collapsed) .fd-passenger-hint-v5{
  margin-bottom:2px!important;
}
.fd-passenger-cta-v5{
  left:18px!important;
  right:18px!important;
  bottom:max(10px,env(safe-area-inset-bottom))!important;
}
#fdRequestRideBtn{
  height:58px!important;
  border-radius:29px!important;
  font-size:16px!important;
}
/* Google Places autocomplete: no cropped text, less left padding, above keyboard/sheet. */
.pac-container{
  z-index:2147483647!important;
  border:1px solid rgba(190,211,228,.95)!important;
  border-radius:0 0 18px 18px!important;
  box-shadow:0 18px 42px rgba(9,30,66,.18)!important;
  overflow:hidden!important;
  font-family:Lato,system-ui,-apple-system,Segoe UI,sans-serif!important;
  max-width:calc(100vw - 38px)!important;
  min-width:min(500px, calc(100vw - 38px))!important;
}
.pac-container.fd-pac-v11-aligned{
  left:19px!important;
  right:19px!important;
  width:calc(100vw - 38px)!important;
}
.pac-item{
  min-height:46px!important;
  padding:7px 10px!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  line-height:1.15!important;
  white-space:normal!important;
  overflow:visible!important;
}
.pac-icon{
  flex:0 0 16px!important;
  width:16px!important;
  min-width:16px!important;
  margin:0 2px 0 0!important;
}
.pac-item-query{
  font-size:15px!important;
  font-weight:900!important;
  color:#14213d!important;
  padding-right:4px!important;
  white-space:normal!important;
}
.pac-matched{font-weight:950!important;}
.pac-item span:not(.pac-icon):not(.pac-item-query):not(.pac-matched){
  font-size:13px!important;
  color:#5b6b7f!important;
  white-space:normal!important;
}
@media (max-width:480px){
  .fd-passenger-map-v5__map-actions{top:94px!important;right:10px!important;gap:9px!important;}
  .fd-passenger-map-v5__map-actions button{width:48px!important;min-width:48px!important;max-width:48px!important;height:48px!important;}
  #fdPassengerClearDriverBtn{font-size:12px!important;}
  .fd-passenger-sheet-v5{top:92px!important;}
  .fd-passenger-sheet-v5:not(.is-collapsed) .fd-passenger-sheet-v5__body{padding-bottom:74px!important;}
  .pac-container.fd-pac-v11-aligned{left:16px!important;right:16px!important;width:calc(100vw - 32px)!important;min-width:calc(100vw - 32px)!important;max-width:calc(100vw - 32px)!important;}
}

/* Passenger map v12: CTA spacing + stable status/timer + driver overlay priority */
.fd-passenger-sheet-v5__body{
  padding-bottom:138px!important;
  scroll-padding-bottom:144px!important;
}
.fd-passenger-meta-v5{
  margin-bottom:18px!important;
}
.fd-passenger-hint-v5{
  margin-bottom:18px!important;
}
.fd-passenger-cta-v5{
  bottom:max(16px,env(safe-area-inset-bottom))!important;
}
#fdRequestRideBtn{
  margin-top:10px!important;
}
#fdRequestStatus{
  margin-top:12px!important;
  border-radius:18px!important;
  padding:13px 16px!important;
  font-weight:900!important;
  line-height:1.25!important;
}
#fdRequestStatus[data-type="ok"]{
  display:block!important;
  background:#eafbf2!important;
  color:#155f3a!important;
  border:1px solid rgba(21,95,58,.10)!important;
}
#fdRequestStatus .fd-request-status-title{display:block!important;}
#fdRequestStatus .fd-request-status-timer{display:block!important;margin-top:4px!important;color:#0b4778!important;}
body #modalRoot:not([hidden]){z-index:2147483646!important;}
.driver-fullscreen-request{z-index:2147483646!important;position:fixed!important;inset:0!important;}
.driver-fullscreen-request__card{box-shadow:0 -24px 60px rgba(9,30,66,.30)!important;}
@media (max-width:480px){
  .fd-passenger-sheet-v5__body{padding-bottom:134px!important;scroll-padding-bottom:140px!important;}
  .fd-passenger-cta-v5{bottom:max(14px,env(safe-area-inset-bottom))!important;}
}

/* FD_V13 passenger map: refined thin chevron + active request timer/cancel */
body.fd-route-passenger-map.fd-passenger-map-v5-active .fd-passenger-sheet-v5__header #fdPassengerSheetToggle,
.fd-passenger-sheet-v5__header #fdPassengerSheetToggle{
  font-size:0!important;
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  position:relative!important;
  background:linear-gradient(180deg,#fbfdff,#eef6ff)!important;
  border:1px solid rgba(11,71,120,.12)!important;
  box-shadow:0 12px 26px rgba(15,45,78,.12), inset 0 1px 0 rgba(255,255,255,.9)!important;
  transform:none!important;
  color:transparent!important;
}
.fd-passenger-sheet-v5__header #fdPassengerSheetToggle::before,
.fd-passenger-sheet-v5__header #fdPassengerSheetToggle::after{
  content:""!important;
  position:absolute!important;
  top:50%!important;
  width:17px!important;
  height:3px!important;
  border-radius:999px!important;
  background:#0d6fbc!important;
  box-shadow:none!important;
  transform-origin:center!important;
}
/* pannello aperto: freccia verso il basso, più sottile e centrata */
.fd-passenger-sheet-v5:not(.is-collapsed) #fdPassengerSheetToggle::before{left:15px!important;transform:translateY(-50%) rotate(45deg)!important;}
.fd-passenger-sheet-v5:not(.is-collapsed) #fdPassengerSheetToggle::after{right:15px!important;transform:translateY(-50%) rotate(-45deg)!important;}
/* pannello chiuso: freccia verso l'alto per riaprirlo */
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle::before{left:15px!important;transform:translateY(-50%) rotate(-45deg)!important;}
.fd-passenger-sheet-v5.is-collapsed #fdPassengerSheetToggle::after{right:15px!important;transform:translateY(-50%) rotate(45deg)!important;}
.fd-passenger-sheet-v5__header #fdPassengerSheetToggle:active{transform:scale(.98)!important;}

/* un po' più aria sopra il bottone, ma senza spazio vuoto esagerato sotto */
.fd-passenger-cta-v5{padding-top:12px!important;}
.fd-passenger-sheet-v5:not(.is-collapsed) .fd-passenger-sheet-v5__body{padding-bottom:92px!important;}

/* stato richiesta: niente errore rosso se esiste già una richiesta; mostra timer e cancella */
#fdRequestStatus.is-open-request,
#fdRequestStatus[data-type="ok"]{
  display:block!important;
  margin-top:10px!important;
  padding:14px 16px!important;
  border-radius:18px!important;
  background:#eafbf1!important;
  color:#0f5b36!important;
  font-weight:850!important;
  line-height:1.25!important;
  box-shadow:0 10px 26px rgba(22,163,74,.10)!important;
}
#fdRequestStatus .fd-request-status-title{display:block!important;font-size:15px!important;}
#fdRequestStatus .fd-request-status-timer{display:block!important;margin-top:5px!important;color:#0b4778!important;font-weight:950!important;font-size:14px!important;}
#fdRequestStatus .fd-request-status-cancel{
  width:100%!important;
  height:44px!important;
  margin-top:10px!important;
  border:0!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#b91c1c!important;
  font-weight:950!important;
  box-shadow:inset 0 0 0 1px rgba(185,28,28,.18)!important;
}
#fdRequestStatus .fd-request-status-cancel:disabled{opacity:.65!important;}

/* v14: richiesta attiva = form bloccato, timer/cancel chiari */
.fd-passenger-sheet-v5.is-request-locked input,
.fd-passenger-sheet-v5.is-request-locked select,
.fd-passenger-sheet-v5.is-request-locked textarea,
.fd-passenger-sheet-v5.is-request-locked .fd-passenger-sheet-v5__buttons button,
.fd-passenger-sheet-v5.is-request-locked .fd-driver-choice-v5 button,
.fd-passenger-sheet-v5.is-request-locked .fd-passenger-options-v6__chips input{
  pointer-events:none!important;
  opacity:.58!important;
}
.fd-passenger-sheet-v5.is-request-locked .fd-passenger-route-v5,
.fd-passenger-sheet-v5.is-request-locked .fd-passenger-options-v6,
.fd-passenger-sheet-v5.is-request-locked .fd-driver-choice-v5{
  filter:saturate(.78)!important;
}
#fdRequestRideBtn:disabled{
  opacity:.78!important;
  filter:saturate(.85)!important;
}
#fdRequestStatus.is-open-request{
  display:block!important;
  margin-top:12px!important;
  padding:16px 18px!important;
  border-radius:22px!important;
  background:#eafbf1!important;
  color:#115f37!important;
  box-shadow:0 12px 28px rgba(17,95,55,.10)!important;
  font-weight:900!important;
  line-height:1.24!important;
}
#fdRequestStatus.is-open-request .fd-request-status-title,
#fdRequestStatus.is-open-request .fd-request-status-timer,
#fdRequestStatus.is-open-request .fd-request-status-text{
  display:block!important;
}
#fdRequestStatus.is-open-request .fd-request-status-timer{
  margin-top:10px!important;
  color:#064b78!important;
  font-size:16px!important;
}
.fd-request-status-cancel,
.fd-request-status-primary,
.fd-request-status-secondary{
  width:100%!important;
  min-height:46px!important;
  margin-top:12px!important;
  border-radius:999px!important;
  font-weight:950!important;
  border:1px solid rgba(7,102,195,.22)!important;
}
.fd-request-status-cancel,
.fd-request-status-secondary{
  background:#fff!important;
  color:#9f1239!important;
}
.fd-request-status-primary{
  background:linear-gradient(135deg,#1688f2,#07558d)!important;
  color:#fff!important;
  border:0!important;
}
.fd-request-status-actions{
  display:grid!important;
  gap:8px!important;
  margin-top:4px!important;
}
#fdRequestStatus.is-expired-request{
  background:#fff7ed!important;
  color:#8a3a0a!important;
}

/* FD_V15: no horizontal drift, full visible timer actions, centered circular map controls */
html, body,
body.fd-route-passenger-map.fd-passenger-map-v5-active,
body.fd-route-passenger-map.fd-passenger-map-v5-active #app,
.fd-passenger-map-v5{
  overflow-x:hidden!important;
  max-width:100vw!important;
  overscroll-behavior-x:none!important;
}
.fd-passenger-map-v5,
.fd-passenger-sheet-v5,
.fd-passenger-sheet-v5__header,
.fd-passenger-sheet-v5__body,
.fd-passenger-cta-v5{
  box-sizing:border-box!important;
  max-width:100vw!important;
}
.fd-passenger-sheet-v5{
  left:0!important;
  right:0!important;
  width:100vw!important;
  transform:none!important;
  overflow:hidden!important;
  touch-action:pan-y!important;
}
.fd-passenger-sheet-v5__body{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  touch-action:pan-y!important;
  overscroll-behavior-x:none!important;
  overscroll-behavior-y:contain!important;
  padding-left:18px!important;
  padding-right:18px!important;
}
.fd-passenger-sheet-v5__body > *,
.fd-passenger-route-v5,
.fd-passenger-options-v6,
.fd-passenger-meta-v5,
.fd-passenger-hint-v5{
  max-width:100%!important;
  min-width:0!important;
}
.fd-passenger-field-v5,
.fd-passenger-field-v5__content,
.fd-passenger-field-v5__content input,
.fd-passenger-options-v6 select,
.fd-passenger-note-v6 textarea{
  min-width:0!important;
  max-width:100%!important;
}

/* durante timer/scaduto il bottone principale non deve coprire timer/cancella/azioni */
.fd-passenger-map-v5.is-request-locked #fdRequestRideBtn,
.fd-passenger-map-v5.is-request-expired #fdRequestRideBtn{
  display:none!important;
}
.fd-passenger-map-v5.is-request-locked .fd-passenger-cta-v5,
.fd-passenger-map-v5.is-request-expired .fd-passenger-cta-v5{
  pointer-events:auto!important;
  bottom:max(12px,env(safe-area-inset-bottom))!important;
  z-index:12!important;
}
.fd-passenger-map-v5.is-request-locked .fd-passenger-sheet-v5__body,
.fd-passenger-map-v5.is-request-expired .fd-passenger-sheet-v5__body{
  padding-bottom:220px!important;
  scroll-padding-bottom:230px!important;
}
#fdRequestStatus.is-open-request,
#fdRequestStatus.is-expired-request,
#fdRequestStatus[data-type="ok"],
#fdRequestStatus[data-type="warn"]{
  max-height:none!important;
  overflow:visible!important;
  padding:15px 16px!important;
  margin:0!important;
  border-radius:22px!important;
}
#fdRequestStatus .fd-request-status-actions{
  display:grid!important;
  gap:10px!important;
  margin-top:12px!important;
}
#fdRequestStatus .fd-request-status-cancel,
#fdRequestStatus .fd-request-status-primary,
#fdRequestStatus .fd-request-status-secondary{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:50px!important;
  margin:10px 0 0!important;
  padding:0 16px!important;
  line-height:1.1!important;
  white-space:normal!important;
}

/* controlli mappa: cerchi reali, Auto centrato */
.fd-passenger-map-v5__map-actions{
  top:86px!important;
  right:12px!important;
  gap:8px!important;
  display:grid!important;
  justify-items:center!important;
  align-items:center!important;
}
.fd-passenger-map-v5__map-actions button,
#fdPassengerClearDriverBtn,
#fdPassengerLocateBtn{
  width:48px!important;
  min-width:48px!important;
  max-width:48px!important;
  height:48px!important;
  min-height:48px!important;
  max-height:48px!important;
  padding:0!important;
  border-radius:50%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1!important;
}
#fdPassengerClearDriverBtn{
  font-size:12px!important;
  font-weight:950!important;
  letter-spacing:-.035em!important;
  white-space:nowrap!important;
}
#fdPassengerLocateBtn{
  font-size:0!important;
}

@media (max-width:480px){
  .fd-passenger-sheet-v5{left:0!important;right:0!important;width:100vw!important;}
  .fd-passenger-sheet-v5__body{padding-left:18px!important;padding-right:18px!important;}
  .fd-passenger-map-v5.is-request-locked .fd-passenger-sheet-v5__body,
  .fd-passenger-map-v5.is-request-expired .fd-passenger-sheet-v5__body{padding-bottom:230px!important;scroll-padding-bottom:240px!important;}
  .fd-passenger-map-v5__map-actions{top:84px!important;right:10px!important;}
}

/* FD_V16: pills filtri leggibili, senza checkbox visibili, toggle funzionanti */
.fd-passenger-options-v6__chips{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  overflow:visible!important;
  padding:4px 0 12px!important;
  margin:2px 0 8px!important;
  width:100%!important;
  max-width:100%!important;
}
.fd-passenger-options-v6__chips label{
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  flex:none!important;
  margin:0!important;
  padding:0!important;
  cursor:pointer!important;
  -webkit-tap-highlight-color:transparent!important;
}
.fd-passenger-options-v6__chips input[type="checkbox"]{
  position:absolute!important;
  inline-size:1px!important;
  block-size:1px!important;
  width:1px!important;
  height:1px!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  pointer-events:none!important;
}
.fd-passenger-options-v6__chips span{
  display:flex!important;
  width:100%!important;
  min-height:48px!important;
  height:auto!important;
  box-sizing:border-box!important;
  align-items:center!important;
  justify-content:center!important;
  padding:11px 12px!important;
  border:1.5px solid rgba(25,118,210,.18)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.96)!important;
  color:#36516d!important;
  font-size:14px!important;
  font-weight:850!important;
  line-height:1.15!important;
  text-align:center!important;
  white-space:normal!important;
  overflow:visible!important;
  box-shadow:0 8px 18px rgba(15,35,65,.045)!important;
  transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .12s ease!important;
}
.fd-passenger-options-v6__chips label:active span{transform:scale(.985)!important;}
.fd-passenger-options-v6__chips input[type="checkbox"]:checked + span{
  background:linear-gradient(180deg,#eef7ff 0%,#e6f2ff 100%)!important;
  border-color:#1682e6!important;
  color:#075da8!important;
  box-shadow:0 0 0 3px rgba(22,130,230,.14),0 10px 22px rgba(15,122,229,.12)!important;
}
.fd-passenger-options-v6__chips input[type="checkbox"]:focus-visible + span{
  outline:3px solid rgba(22,130,230,.28)!important;
  outline-offset:2px!important;
}
.fd-passenger-sheet-v5.is-request-locked .fd-passenger-options-v6__chips label,
.fd-passenger-sheet-v5.is-request-locked .fd-passenger-options-v6__chips span{
  pointer-events:none!important;
  cursor:not-allowed!important;
}
.fd-passenger-sheet-v5.is-request-locked .fd-passenger-options-v6__chips span{
  opacity:.58!important;
}
@media (max-width:360px){
  .fd-passenger-options-v6__chips{grid-template-columns:1fr!important;}
}

/* FD_V17: rimuove definitivamente i bordi squadrati esterni dalle pills */
.fd-passenger-options-v6__chips label,
.fd-passenger-options-v6__chips label:hover,
.fd-passenger-options-v6__chips label:focus,
.fd-passenger-options-v6__chips label:focus-within,
.fd-passenger-options-v6__chips label:active{
  appearance:none!important;
  -webkit-appearance:none!important;
  background:transparent!important;
  background-color:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  border-radius:999px!important;
  overflow:visible!important;
}
.fd-passenger-options-v6__chips input[type="checkbox"]{
  position:absolute!important;
  left:-9999px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  visibility:hidden!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
.fd-passenger-options-v6__chips span{
  border-radius:999px!important;
  overflow:hidden!important;
  outline:0!important;
}

/* v19 - mobile header drawer clean backdrop: remove grey curved background */
@media (max-width: 768px) {
  .mobile-menu-drawer,
  .mobile-menu-drawer * {
    box-sizing: border-box !important;
  }

  .mobile-menu-drawer {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    z-index: 10050 !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    background: transparent !important;
    clip-path: none !important;
    transform: none !important;
  }

  .mobile-menu-drawer__backdrop {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: rgba(2, 12, 22, .42) !important;
    backdrop-filter: blur(3px) !important;
    -webkit-backdrop-filter: blur(3px) !important;
    box-shadow: none !important;
    clip-path: none !important;
    transform: none !important;
  }

  .mobile-menu-drawer__backdrop::before,
  .mobile-menu-drawer__backdrop::after,
  .mobile-menu-drawer::before,
  .mobile-menu-drawer::after {
    content: none !important;
    display: none !important;
  }

  .mobile-menu-drawer__panel {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: auto !important;
    width: min(86vw, 360px) !important;
    max-width: 360px !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding: calc(16px + env(safe-area-inset-top)) 14px calc(22px + env(safe-area-inset-bottom)) !important;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%) !important;
    border-radius: 0 !important;
    border: 0 !important;
    box-shadow: 14px 0 34px rgba(3, 23, 43, .22) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    clip-path: none !important;
    transform: none !important;
  }

  .mobile-menu-drawer__panel::before,
  .mobile-menu-drawer__panel::after {
    content: none !important;
    display: none !important;
  }

  .mobile-menu-drawer__header {
    border-radius: 0 !important;
    background: transparent !important;
  }

  .mobile-menu-drawer__close {
    border-radius: 18px !important;
    background: #eef4fb !important;
    box-shadow: none !important;
  }
}

/* v20 - profilo allineato a Billetera + fix cambio ruolo/docs */
@media (max-width: 768px) {
  body.fd-route-profile #app.app--internal .profile-page,
  body.fd-route-profile #app.app--internal .profile-shell {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }

  body.fd-route-profile #app.app--internal .profile-shell {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
  }

  body.fd-route-profile #app.app--internal .profile-hero,
  body.fd-route-profile #app.app--internal .profile-section {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    border-radius: 28px !important;
  }

  body.fd-route-profile #app.app--internal .profile-hero {
    padding: 22px 18px !important;
  }

  body.fd-route-profile #app.app--internal .profile-section {
    padding: 18px !important;
  }
}

/* FD_V21: autista online/offline blu con icona bianca + autocomplete/tappe passeggero */
body.fd-route-driver-dashboard #app.app--internal #btnDriverMapAvailabilityToggle,
body.driver-map-fullscreen-mode #app.app--internal #btnDriverMapAvailabilityToggle,
#btnDriverMapAvailabilityToggle.fd-driver-map-availability,
.fd-driver-map-availability.is-offline,
.fd-driver-map-availability.is-online{
  background:linear-gradient(135deg,#0f8df2,#07538d)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 12px 28px rgba(7,83,141,.26)!important;
}
#btnDriverMapAvailabilityToggle svg,
#btnDriverMapAvailabilityToggle i,
.fd-driver-map-availability svg,
.fd-driver-map-availability i{
  color:#fff!important;
  stroke:#fff!important;
}
#btnDriverMapAvailabilityToggle span,
.fd-driver-map-availability span{color:#fff!important;}

/* pannello chiuso: mostra anche le fermate intermedie, non solo A e destinazione */
.fd-passenger-sheet-v5.is-collapsed #fdStopsList{
  display:block!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5--stop{
  display:grid!important;
  grid-template-columns:34px 1fr!important;
  gap:10px!important;
  padding:2px 0 8px!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5--stop .fd-passenger-field-v5__content b,
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5--stop > button{
  display:none!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5--stop .fd-passenger-field-v5__badge{
  width:30px!important;
  height:30px!important;
  font-size:13px!important;
  background:#ff7a1a!important;
  box-shadow:0 0 0 4px rgba(255,122,26,.12)!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-field-v5--stop .fd-passenger-field-v5__content input{
  height:30px!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  padding:0!important;
  font-size:14px!important;
  font-weight:900!important;
  pointer-events:none!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-route-v5.has-stops{
  max-height:118px!important;
  overflow:hidden!important;
}
.fd-passenger-sheet-v5.is-collapsed .fd-passenger-route-v5.has-stops #fdStopsList .fd-passenger-field-v5--stop:nth-of-type(n+3){display:none!important;}

/* autocomplete sempre sopra il pannello/bottone e righe compatte */
.pac-container.fd-pac-v11-aligned,
.pac-container{
  z-index:2147483000!important;
  border-radius:18px!important;
  overflow:hidden!important;
  box-shadow:0 18px 46px rgba(4,35,72,.18)!important;
  border:1px solid rgba(15,122,229,.12)!important;
}
.pac-item{
  padding:10px 12px!important;
  min-height:44px!important;
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  line-height:1.2!important;
}
.pac-icon{margin-left:0!important;margin-right:4px!important;flex:0 0 auto!important;}
.pac-item-query{font-size:15px!important;font-weight:800!important;}
.pac-matched{font-weight:950!important;}

/* FD passenger map v23: cumulative estimates for intermediate stops */
.fd-stop-estimates-v5{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:10px 0 12px;
  padding:10px;
  border:1px solid #dce8f2;
  border-radius:18px;
  background:#f8fbff;
}
.fd-stop-estimates-v5[hidden]{display:none!important;}
.fd-stop-estimates-v5__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding:2px 2px 6px;
}
.fd-stop-estimates-v5__header span{
  color:#0b4778;
  font-size:13px;
  font-weight:900;
}
.fd-stop-estimates-v5__header small{
  color:#64748b;
  font-size:11px;
  font-weight:800;
  text-align:right;
}
.fd-stop-estimates-v5__row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px;
  border:1px solid rgba(148,163,184,.28);
  border-radius:16px;
  background:#fff;
}
.fd-stop-estimates-v5__main{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  column-gap:8px;
  row-gap:2px;
  align-items:center;
}
.fd-stop-estimates-v5__route{
  grid-row:1 / span 2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:30px;
  padding:0 8px;
  border-radius:999px;
  background:#0f7ae5;
  color:#fff;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.fd-stop-estimates-v5__main strong{
  min-width:0;
  color:#0f172a;
  font-size:13px;
  font-weight:900;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.fd-stop-estimates-v5__main small{
  min-width:0;
  color:#64748b;
  font-size:11px;
  font-weight:700;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.fd-stop-estimates-v5__values{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  color:#475569;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.fd-stop-estimates-v5__values b{
  color:#0b7a39;
  font-size:13px;
  font-weight:900;
}
.fd-passenger-sheet-v5.is-collapsed .fd-stop-estimates-v5{display:none!important;}
@media (max-width:480px){
  .fd-stop-estimates-v5{padding:8px;border-radius:16px;}
  .fd-stop-estimates-v5__row{grid-template-columns:1fr;align-items:stretch;gap:6px;padding:9px;}
  .fd-stop-estimates-v5__values{flex-direction:row;align-items:center;justify-content:space-between;}
}

/* v23.1 - Passenger map desktop popup must stay outside the fixed sidebar.
   Mobile remains unchanged: this only applies when the desktop sidebar is present. */
@media (min-width: 769px) {
  body.fd-route-passenger-map.fd-passenger-map-v5-active #app.app--internal .app-main--internal .app-content {
    margin-left: 280px !important;
    width: calc(100vw - 280px) !important;
    max-width: calc(100vw - 280px) !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  body.fd-route-passenger-map.fd-passenger-map-v5-active .fd-passenger-map-v5 {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  body.fd-route-passenger-map.fd-passenger-map-v5-active .fd-passenger-sheet-v5 {
    position: fixed !important;
    left: calc(280px + 24px) !important;
    right: auto !important;
    top: auto !important;
    bottom: 24px !important;
    width: min(460px, calc(100vw - 328px)) !important;
    max-width: calc(100vw - 328px) !important;
    height: auto !important;
    max-height: calc(100dvh - 48px) !important;
    border-radius: 32px !important;
    z-index: 920 !important;
  }

  body.fd-route-passenger-map.fd-passenger-map-v5-active .fd-passenger-sheet-v5.is-collapsed {
    top: auto !important;
    height: 88px !important;
    max-height: 88px !important;
  }

  body.fd-route-passenger-map.fd-passenger-map-v5-active .fd-passenger-sheet-v5__body {
    max-height: calc(100dvh - 160px) !important;
    padding-bottom: 118px !important;
  }

  body.fd-route-passenger-map.fd-passenger-map-v5-active .fd-passenger-cta-v5 {
    position: fixed !important;
    left: calc(280px + 42px) !important;
    right: auto !important;
    bottom: 38px !important;
    width: min(424px, calc(100vw - 364px)) !important;
    max-width: calc(100vw - 364px) !important;
    z-index: 930 !important;
  }
}

/* v28: driver map true mobile fullscreen when shell is temporarily moved under body */
@media (max-width: 768px) {
  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    background: #eaf6ff !important;
    z-index: 2147483200 !important;
    touch-action: auto !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-canvas,
  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded #driverMap {
    position: absolute !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-toolbar {
    position: absolute !important;
    top: calc(12px + env(safe-area-inset-top)) !important;
    left: 10px !important;
    right: 10px !important;
    width: auto !important;
    max-width: calc(100vw - 20px) !important;
    z-index: 2147483300 !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-actions {
    position: absolute !important;
    left: 12px !important;
    right: 12px !important;
    bottom: calc(12px + env(safe-area-inset-bottom)) !important;
    z-index: 2147483300 !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded #driverMapFullscreenBtn::before {
    content: "×" !important;
    font-size: 25px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
  }
}

/* v29: controlli mappa autista come cerchietti icona quando la shell è in fullscreen mobile sotto body */
@media (max-width: 768px) {
  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-toolbar {
    position: absolute !important;
    top: calc(12px + env(safe-area-inset-top)) !important;
    left: 10px !important;
    right: 10px !important;
    width: auto !important;
    max-width: calc(100vw - 20px) !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    padding: 8px !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,.82) !important;
    border: 1px solid rgba(148,163,184,.22) !important;
    box-shadow: 0 14px 34px rgba(15,23,42,.16) !important;
    backdrop-filter: blur(16px) saturate(1.15) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.15) !important;
    z-index: 2147483300 !important;
    pointer-events: auto !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn {
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    font-size: 0 !important;
    line-height: 1 !important;
    color: #0f355d !important;
    background: rgba(255,255,255,.96) !important;
    border: 1px solid rgba(148,163,184,.26) !important;
    box-shadow: 0 8px 18px rgba(15,23,42,.12) !important;
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn svg,
  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn i {
    width: 19px !important;
    height: 19px !important;
    margin: 0 !important;
    display: block !important;
    flex: 0 0 auto !important;
    stroke-width: 2.35 !important;
    pointer-events: none !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-toolbar .btn span,
  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-provider-label {
    display: none !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-toolbar #driverMapSosBtn {
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    color: #fff !important;
    background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%) !important;
    border-color: rgba(220,38,38,.42) !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded #driverMapFullscreenBtn::before {
    content: "×" !important;
    font-size: 26px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded #driverMapOpenNavBtn::before {
    content: "↗" !important;
    font-size: 20px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
  }

  body.driver-map-fullscreen-mode > .driver-map-shell.is-driver-map-expanded .driver-map-report-card {
    z-index: 2147483400 !important;
    pointer-events: auto !important;
  }
}
