*{box-sizing:border-box}
body{
margin:0;
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
background:#f4f7fb;
color:#101828
}
.shell{max-width:720px;margin:auto;min-height:100vh}
.hero{
min-height:100vh;
padding:70px 24px;
display:flex;
flex-direction:column;
justify-content:center;
background:linear-gradient(160deg,#075fe4,#06358f);
color:white
}
.brand{font-weight:900;letter-spacing:1.5px;color:#0968ed}
.hero .brand{color:white}
.hero h1{font-size:44px;line-height:1.05;margin:20px 0 12px}
.hero p{font-size:18px}
.actions{display:grid;gap:12px;margin-top:25px}
.primary,.secondary,button{
display:inline-block;
padding:16px 18px;
border-radius:14px;
border:0;
font-size:16px;
font-weight:700;
text-decoration:none;
cursor:pointer
}
.primary,button{background:#0968ed;color:white}
.secondary{background:white;color:#075fe4}
.block{display:block;text-align:center;margin-top:18px}
.card{
background:white;
margin:22px;
padding:24px;
border-radius:22px;
box-shadow:0 10px 40px rgba(0,0,0,.08)
}
label{display:block;font-weight:700;margin:14px 0 7px}
input,select{
width:100%;
padding:15px;
border:1px solid #d6dce6;
border-radius:13px;
font-size:16px;
background:white
}
form button{width:100%;margin-top:20px}
.small{font-size:14px;text-align:center}
.small a{color:inherit}
.topbar{
display:flex;
justify-content:space-between;
align-items:center;
padding:18px 20px;
background:white
}
.topbar form{margin:0}
.textbtn{
background:none;
color:#0968ed;
padding:8px;
width:auto;
margin:0
}
.map{
height:300px;
background:
radial-gradient(circle at 30% 35%,#d9eaff 0 3px,transparent 4px),
linear-gradient(35deg,#edf2f7 25%,transparent 25%) 0 0/50px 50px,
linear-gradient(145deg,#e6edf5 25%,transparent 25%) 0 0/55px 55px,
#f7faff;
position:relative
}
.mapbadge{
position:absolute;
top:20px;
left:20px;
background:white;
padding:9px 12px;
border-radius:20px;
font-weight:800;
box-shadow:0 5px 20px rgba(0,0,0,.1)
}
.floating{margin-top:-45px;position:relative}
.section{padding:10px 22px 30px}
.ride{
background:white;
padding:16px;
border-radius:16px;
margin:12px 0;
box-shadow:0 5px 20px rgba(0,0,0,.05)
}
.ride span{padding:0 8px}
.status{
display:inline-block;
margin-top:9px;
padding:6px 10px;
border-radius:20px;
background:#eaf2ff;
color:#075fe4;
font-weight:800;
text-transform:capitalize
}
.status.big{font-size:18px}
.muted{color:#667085}

.live-map{
  width:100%;
  height:330px;
  margin-top:18px;
  border-radius:18px;
  overflow:hidden;
  background:#e9eef5;
}

.small-map{
  height:240px;
}

.quote-box{
  margin-top:16px;
  padding:18px;
  border-radius:16px;
  background:#eef5ff;
  border:1px solid #d7e6ff;
}

.quote-price{
  font-size:34px;
  font-weight:900;
  color:#0968ed;
  margin-bottom:4px;
}

.car-marker{
  font-size:32px;
  line-height:42px;
  text-align:center;
  filter:drop-shadow(0 4px 5px rgba(0,0,0,.25));
}

.toggle-row{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 0;
  font-weight:600;
}

.toggle-row input{
  width:22px;
  height:22px;
  margin:0;
}

/* ===== Ride Ride Professional Driver UI ===== */

.driver-pro-home,
.pro-page{
  min-height:100vh;
  padding-bottom:90px;
  background:#f4f7fb;
}

.driver-map-wrap{
  height:66vh;
  min-height:510px;
  position:relative;
  overflow:hidden;
  background:#dce5ef;
}

#driverHomeMap{
  position:absolute;
  inset:0;
  z-index:1;
}

.driver-top-row{
  position:absolute;
  top:18px;
  left:18px;
  right:18px;
  z-index:500;
  display:flex;
  justify-content:space-between;
  align-items:center;
  pointer-events:none;
}

.ride-brand-chip,
.driver-menu-circle{
  pointer-events:auto;
  background:white;
  box-shadow:0 8px 30px rgba(15,23,42,.16);
}

.ride-brand-chip{
  padding:11px 16px;
  border-radius:100px;
  font-size:14px;
  font-weight:900;
  letter-spacing:1.5px;
  color:#0968ed;
}

.driver-menu-circle{
  width:46px;
  height:46px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#101828;
  text-decoration:none;
  font-size:21px;
}

.earnings-chip{
  position:absolute;
  top:18px;
  left:50%;
  transform:translateX(-50%);
  z-index:501;
  background:#111827;
  color:white;
  padding:9px 22px;
  border-radius:100px;
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:8px;
  box-shadow:0 8px 28px rgba(0,0,0,.22);
}

.earnings-chip small{
  opacity:.7;
}

.earnings-chip strong{
  font-size:21px;
}

.online-pill{
  position:absolute;
  top:82px;
  left:50%;
  transform:translateX(-50%);
  z-index:500;
  background:white;
  border-radius:100px;
  padding:7px 12px;
  font-size:13px;
  font-weight:800;
  box-shadow:0 6px 20px rgba(0,0,0,.12);
}

.online-pill span{
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:50%;
  margin-right:5px;
}

.online-pill.on span{background:#22c55e}
.online-pill.off span{background:#94a3b8}

.go-form{
  position:absolute;
  z-index:501;
  left:50%;
  bottom:67px;
  transform:translateX(-50%);
}

.go-button{
  width:102px;
  height:102px;
  border-radius:50%;
  font-size:24px;
  font-weight:900;
  padding:0;
  margin:0;
  border:8px solid rgba(255,255,255,.8);
  box-shadow:0 12px 35px rgba(9,104,237,.35);
}

.go-button.online{
  background:#111827;
  font-size:15px;
}

.go-caption{
  position:absolute;
  z-index:501;
  left:50%;
  bottom:30px;
  transform:translateX(-50%);
  background:white;
  padding:8px 16px;
  border-radius:100px;
  font-weight:800;
  box-shadow:0 6px 24px rgba(15,23,42,.15);
  white-space:nowrap;
}

.approval-overlay{
  position:absolute;
  z-index:501;
  left:20px;
  right:20px;
  bottom:24px;
  background:white;
  padding:18px;
  border-radius:18px;
  display:flex;
  flex-direction:column;
  box-shadow:0 10px 35px rgba(0,0,0,.14);
}

.pro-section{
  padding:22px;
}

.section-heading-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.section-heading-row span{
  background:#e8f1ff;
  color:#0968ed;
  min-width:31px;
  height:31px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
}

.request-pro-card,
.active-pro-card,
.offline-card,
.pro-list-card{
  background:white;
  border-radius:22px;
  padding:20px;
  margin:14px 0;
  box-shadow:0 8px 30px rgba(15,23,42,.07);
}

.request-pro-head,
.pro-list-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:17px;
}

.request-point{
  display:flex;
  gap:13px;
  margin:14px 0;
  align-items:flex-start;
}

.request-point small,
.pro-list-meta{
  display:block;
  color:#667085;
  margin-bottom:3px;
}

.dot{
  width:12px;
  height:12px;
  border-radius:50%;
  margin-top:5px;
  flex-shrink:0;
}

.dot.pickup{
  background:#0968ed;
}

.dot.destination{
  background:#101828;
}

.active-pro-label{
  display:inline-block;
  padding:6px 10px;
  border-radius:100px;
  background:#e8f1ff;
  color:#0968ed;
  font-size:12px;
  font-weight:900;
  letter-spacing:.7px;
}

.pro-empty{
  background:white;
  border-radius:18px;
  padding:26px;
  text-align:center;
  color:#667085;
}

.pro-bottom-nav{
  position:fixed;
  z-index:999;
  bottom:0;
  left:50%;
  transform:translateX(-50%);
  width:min(720px,100%);
  height:76px;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(18px);
  border-top:1px solid #e5e7eb;
  display:grid;
  grid-template-columns:repeat(4,1fr);
}

.pro-bottom-nav a{
  text-decoration:none;
  color:#667085;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  font-size:20px;
}

.pro-bottom-nav a span{
  font-size:11px;
  font-weight:700;
}

.pro-bottom-nav a.active{
  color:#0968ed;
}

.pro-page-head{
  height:75px;
  display:grid;
  grid-template-columns:50px 1fr 50px;
  align-items:center;
  padding:0 18px;
  background:white;
}

.pro-page-head h1{
  text-align:center;
  font-size:22px;
}

.pro-back{
  color:#0968ed;
  text-decoration:none;
  font-size:28px;
}

.earn-hero{
  background:linear-gradient(145deg,#0968ed,#0649a9);
  color:white;
  padding:34px 25px;
}

.earn-hero small{
  opacity:.8;
}

.earn-big{
  font-size:48px;
  font-weight:900;
  margin:7px 0;
}

.earn-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:#e5e7eb;
}

.earn-grid>div{
  background:white;
  padding:21px;
}

.earn-grid small,
.earn-grid strong{
  display:block;
}

.earn-grid strong{
  font-size:24px;
  margin-top:5px;
}

.earn-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:17px 0;
  border-bottom:1px solid #e5e7eb;
}

.earn-row small{
  display:block;
  color:#667085;
  margin-top:4px;
}

.menu-profile{
  background:white;
  padding:30px 24px;
  display:flex;
  align-items:center;
  gap:17px;
}

.menu-profile h1{
  margin:0 0 5px;
}

.profile-avatar{
  width:68px;
  height:68px;
  border-radius:50%;
  background:#0968ed;
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:30px;
  font-weight:900;
}

.approved-pill{
  color:#0968ed;
  font-weight:700;
}

.menu-group{
  margin:18px;
  background:white;
  border-radius:20px;
  padding:8px 18px;
  box-shadow:0 5px 20px rgba(15,23,42,.04);
}

.menu-group h3{
  color:#667085;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.7px;
}

.menu-group>a,
.menu-info-row{
  min-height:61px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid #edf0f4;
  text-decoration:none;
  color:#101828;
  font-weight:650;
}

.menu-info-row small{
  display:block;
  color:#667085;
  font-weight:400;
  margin-top:3px;
}

.logout-wide{
  width:100%;
  background:#fff;
  color:#dc2626;
  margin:0;
}

.pro-status{
  background:#e8f1ff;
  color:#0968ed;
  padding:5px 9px;
  border-radius:100px;
  text-transform:capitalize;
  font-size:12px;
  font-weight:800;
}

.pro-trip-arrow{
  margin-top:5px;
}

.leaflet-control-attribution{
  font-size:9px!important;
}

.profile-photo-link{
  width:76px;
  height:76px;
  position:relative;
  flex-shrink:0;
  text-decoration:none;
}

.profile-photo{
  width:76px;
  height:76px;
  border-radius:50%;
  object-fit:cover;
  display:block;
  border:3px solid #fff;
  box-shadow:0 5px 18px rgba(15,23,42,.14);
}

.photo-edit-badge{
  position:absolute;
  right:-2px;
  bottom:-2px;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#0968ed;
  color:#fff;
  border:3px solid #fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:900;
}

.edit-photo-text{
  display:inline-block;
  color:#0968ed;
  font-size:14px;
  font-weight:750;
  text-decoration:none;
  margin-bottom:5px;
}

.photo-edit-card{
  margin:26px 20px;
  padding:30px 22px;
  background:white;
  border-radius:24px;
  box-shadow:0 8px 30px rgba(15,23,42,.07);
  text-align:center;
}

.profile-photo-large,
.profile-avatar-large{
  width:128px;
  height:128px;
  margin:0 auto 18px;
  border-radius:50%;
  object-fit:cover;
}

.profile-photo-large{
  display:block;
  border:4px solid #edf4ff;
}

.photo-edit-card p{
  color:#667085;
  line-height:1.5;
  max-width:420px;
  margin:0 auto 24px;
}

.photo-picker{
  display:block;
  padding:16px;
  margin:18px 0 10px;
  border:2px dashed #bfd4f5;
  border-radius:16px;
  background:#f5f9ff;
  color:#0968ed;
  font-weight:800;
  cursor:pointer;
}

.photo-picker input{
  display:none;
}

.photo-help{
  display:block;
  margin-top:14px;
  color:#667085;
}

.payment-country-note{
  margin:10px 0 16px;
  padding:12px 14px;
  border-radius:12px;
  background:#f2f6fc;
  color:#475467;
  font-size:14px;
  line-height:1.4;
}

.ride-quote-box{
  margin:18px 0;
  padding:22px;
  border-radius:20px;
  background:#f4f8ff;
  border:1px solid #d9e7fb;
}

.ride-quote-label{
  color:#667085;
  font-size:14px;
  font-weight:700;
}

.ride-quote-price{
  margin-top:5px;
  color:#0968ed;
  font-size:38px;
  line-height:1.1;
  font-weight:900;
}

.ride-quote-details{
  margin-top:8px;
  color:#101828;
  font-size:17px;
  font-weight:700;
}

.ride-quote-payment{
  margin-top:9px;
  color:#667085;
  font-size:15px;
}


/* =====================================================
   RIDE RIDE — PROFESSIONAL MOBILE UI
   ===================================================== */

:root{
  --rr-blue:#1268e8;
  --rr-blue-dark:#0848a8;
  --rr-navy:#101828;
  --rr-text:#172033;
  --rr-muted:#667085;
  --rr-bg:#f4f7fb;
  --rr-card:#ffffff;
  --rr-line:#e5eaf1;
  --rr-soft:#edf4ff;
  --rr-success:#18a957;
  --rr-danger:#d92d20;
  --rr-radius:22px;
  --rr-shadow:0 10px 35px rgba(15,23,42,.08);
}

/* ---------- Global ---------- */

html{
  background:var(--rr-bg);
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--rr-bg);
  color:var(--rr-text);
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "SF Pro Display",
    "SF Pro Text",
    "Segoe UI",
    sans-serif;
  -webkit-font-smoothing:antialiased;
}

*{
  box-sizing:border-box;
}

body,
input,
select,
textarea,
button{
  font-family:inherit;
}

h1,h2,h3{
  color:var(--rr-navy);
  letter-spacing:-.025em;
}

a{
  -webkit-tap-highlight-color:transparent;
}

img{
  max-width:100%;
}

/* ---------- Main cards ---------- */

.card,
.photo-edit-card,
.request-pro-card,
.active-pro-card,
.offline-card,
.pro-list-card,
.menu-group{
  background:var(--rr-card);
  border:1px solid rgba(229,234,241,.8);
  border-radius:var(--rr-radius);
  box-shadow:var(--rr-shadow);
}

/* ---------- Forms ---------- */

label{
  display:block;
  margin:17px 0 8px;
  color:var(--rr-navy);
  font-size:15px;
  font-weight:750;
}

input,
select,
textarea{
  width:100%;
  min-height:56px;
  padding:0 17px;
  border:1.5px solid #d7deea;
  border-radius:16px;
  background:#fff;
  color:var(--rr-navy);
  font-size:17px;
  outline:none;
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    background .18s ease;
}

textarea{
  padding-top:15px;
  padding-bottom:15px;
}

input:focus,
select:focus,
textarea:focus{
  border-color:var(--rr-blue);
  box-shadow:0 0 0 4px rgba(18,104,232,.12);
}

input::placeholder,
textarea::placeholder{
  color:#98a2b3;
}

/* ---------- Main buttons ---------- */

button,
.primary{
  min-height:58px;
  border:0;
  border-radius:17px;
  background:
    linear-gradient(
      135deg,
      var(--rr-blue),
      #0877ef
    );
  color:#fff;
  font-size:17px;
  font-weight:850;
  box-shadow:0 9px 22px rgba(18,104,232,.20);
  cursor:pointer;
  transition:
    transform .12s ease,
    opacity .12s ease,
    box-shadow .12s ease;
}

button:active,
.primary:active{
  transform:scale(.985);
}

button:disabled{
  opacity:.55;
}

.secondary{
  min-height:56px;
  border:1.5px solid #dce5f2;
  background:#fff;
  color:var(--rr-blue);
  box-shadow:none;
}

/* ---------- Rider booking card ---------- */

.card:has(#estimateRide){
  margin:18px;
  padding:26px 20px;
}

.card:has(#estimateRide) h1{
  margin:0 0 22px;
  font-size:38px;
  line-height:1.05;
}

#estimateRide{
  width:100%;
  margin-top:18px;
  min-height:64px;
  font-size:19px;
}

/* ---------- Current location ---------- */

button[id*="location"],
.use-location,
.current-location-btn{
  background:var(--rr-soft);
  color:var(--rr-blue);
  box-shadow:none;
  border:0;
}

/* ---------- Quote / Fare ---------- */

.ride-quote-box{
  margin:20px 0 4px!important;
  padding:22px!important;
  border-radius:20px!important;
  background:
    linear-gradient(
      145deg,
      #f5f9ff,
      #edf5ff
    )!important;
  border:1px solid #d9e8ff!important;
  box-shadow:none!important;
}

.ride-quote-label{
  color:var(--rr-muted)!important;
  font-size:13px!important;
  font-weight:800!important;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.ride-quote-price{
  margin-top:7px!important;
  color:var(--rr-blue)!important;
  font-size:42px!important;
  font-weight:950!important;
  letter-spacing:-.04em;
}

.ride-quote-details{
  margin-top:10px!important;
  color:var(--rr-navy)!important;
  font-size:17px!important;
  font-weight:750!important;
}

.ride-quote-payment{
  margin-top:10px!important;
  color:var(--rr-muted)!important;
  font-size:14px!important;
}

/* ---------- Country/payment helper ---------- */

.payment-country-note{
  background:#f8fafc!important;
  border:1px solid var(--rr-line);
  border-radius:14px!important;
  color:var(--rr-muted)!important;
}

/* ---------- Ride history cards ---------- */

.ride,
.ride-card,
.your-ride,
.request-pro-card,
.active-pro-card,
.pro-list-card{
  padding:20px;
}

.ride strong,
.ride-card strong{
  color:var(--rr-navy);
}

.pro-status,
.approved-pill,
.active-pro-label{
  border-radius:999px!important;
}

/* ---------- Status badges ---------- */

.pro-status{
  padding:7px 11px!important;
  background:var(--rr-soft)!important;
  color:var(--rr-blue)!important;
  font-weight:850!important;
}

/* ---------- Driver map ---------- */

.driver-map-wrap{
  border-bottom-left-radius:28px;
  border-bottom-right-radius:28px;
  overflow:hidden;
}

.ride-brand-chip{
  font-size:13px!important;
  letter-spacing:1.8px!important;
  box-shadow:var(--rr-shadow)!important;
}

.earnings-chip{
  background:rgba(16,24,40,.93)!important;
  backdrop-filter:blur(14px);
}

.online-pill{
  border:1px solid rgba(229,234,241,.8);
}

.go-button{
  box-shadow:
    0 12px 35px rgba(18,104,232,.30)!important;
}

/* ---------- Driver profile ---------- */

.menu-profile{
  padding:32px 24px!important;
  background:#fff!important;
}

.menu-profile h1{
  font-size:31px;
}

.profile-avatar,
.profile-photo{
  box-shadow:
    0 9px 28px rgba(15,23,42,.16)!important;
}

.photo-edit-badge{
  background:var(--rr-blue)!important;
}

/* ---------- Menu ---------- */

.menu-group{
  overflow:hidden;
}

.menu-group h3{
  margin-top:14px;
  color:#7c879c!important;
  font-size:12px!important;
  font-weight:850!important;
  letter-spacing:.12em!important;
}

.menu-group>a,
.menu-info-row{
  min-height:68px!important;
}

.menu-group>a:last-child,
.menu-info-row:last-child{
  border-bottom:0;
}

/* ---------- Earnings ---------- */

.earn-hero{
  background:
    linear-gradient(
      145deg,
      #0c6ee9,
      #0847a6
    )!important;
  padding:36px 25px!important;
}

.earn-big{
  font-size:52px!important;
}

/* ---------- Bottom navigation ---------- */

.pro-bottom-nav{
  height:
    calc(
      72px + env(safe-area-inset-bottom)
    )!important;
  padding-bottom:
    env(safe-area-inset-bottom);
  border-top:1px solid rgba(226,232,240,.9)!important;
  background:rgba(255,255,255,.94)!important;
  box-shadow:0 -8px 30px rgba(15,23,42,.05);
}

.pro-bottom-nav a{
  font-weight:650;
}

.pro-bottom-nav a.active{
  color:var(--rr-blue)!important;
}

/* ---------- Page headers ---------- */

.pro-page-head{
  position:sticky;
  top:0;
  z-index:800;
  background:rgba(255,255,255,.94)!important;
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(229,234,241,.8);
}

/* ---------- Better mobile spacing ---------- */

.pro-page,
.driver-pro-home{
  padding-bottom:
    calc(
      92px + env(safe-area-inset-bottom)
    )!important;
}

/* ---------- Call & Message button style ---------- */

.rr-contact-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:17px;
}

.rr-contact-actions a{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:16px;
  font-weight:850;
  text-decoration:none;
}

.rr-contact-call{
  background:var(--rr-blue);
  color:#fff;
}

.rr-contact-message{
  background:var(--rr-soft);
  color:var(--rr-blue);
}

/* ---------- Premium vehicle row ---------- */

.rr-vehicle-summary{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px;
  margin:14px 0;
  border-radius:18px;
  background:#f8fafc;
}

.rr-car-icon{
  width:64px;
  height:44px;
  border-radius:14px;
  background:
    linear-gradient(
      135deg,
      #dbeafe,
      #eff6ff
    );
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:29px;
}

.rr-vehicle-summary strong,
.rr-vehicle-summary small{
  display:block;
}

.rr-vehicle-summary small{
  margin-top:3px;
  color:var(--rr-muted);
}

/* ---------- Desktop safety ---------- */

@media(min-width:760px){
  body{
    max-width:720px;
    margin:0 auto;
    box-shadow:
      0 0 60px rgba(15,23,42,.08);
  }
}


/* ==========================================
   RIDE RIDE — SERVICE CHOOSER
   ========================================== */

.rr-service-title{
  margin:28px 0 12px;
  color:rgba(255,255,255,.82);
  font-size:14px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.rr-service-grid{
  display:grid;
  gap:12px;
}

.rr-service-card{
  min-height:88px;
  display:grid;
  grid-template-columns:58px 1fr 22px;
  align-items:center;
  gap:14px;
  padding:15px 18px;
  border-radius:20px;
  text-decoration:none;
  transition:
    transform .12s ease,
    box-shadow .12s ease;
}

.rr-service-card:active{
  transform:scale(.985);
}

.rr-service-card strong{
  display:block;
  font-size:20px;
  line-height:1.1;
}

.rr-service-card span{
  display:block;
  margin-top:5px;
  font-size:14px;
  font-weight:600;
  opacity:.78;
}

.rr-service-card b{
  font-size:30px;
  font-weight:400;
}

.rr-service-icon{
  width:58px;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:17px;
  font-size:29px;
}

.rr-service-ride{
  background:#ffffff;
  color:#101828;
  box-shadow:0 10px 28px rgba(0,0,0,.10);
}

.rr-service-ride .rr-service-icon{
  background:#eaf3ff;
}

.rr-service-delivery{
  background:rgba(255,255,255,.14);
  color:#ffffff;
  border:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(12px);
}

.rr-service-delivery .rr-service-icon{
  background:rgba(255,255,255,.17);
}

.rr-drive-button{
  margin-top:16px;
  width:100%;
  display:flex!important;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}


/* =============================================
   RIDE RIDE — REALTIME DRIVER OFFER
   ============================================= */

.rr-offer-overlay{
  position:fixed;
  inset:0;
  z-index:99999;

  display:flex;
  align-items:flex-end;

  padding:
    18px
    18px
    calc(18px + env(safe-area-inset-bottom));

  background:rgba(7,18,38,.48);

  backdrop-filter:blur(7px);
}

.rr-offer-card{
  width:100%;
  max-width:620px;
  margin:0 auto;

  padding:24px;

  border-radius:28px;
  background:#fff;

  box-shadow:
    0 24px 70px
    rgba(0,0,0,.25);
}

.rr-offer-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.rr-offer-label{
  color:#667085;

  font-size:12px;
  font-weight:900;

  letter-spacing:.12em;
}

.rr-offer-earn{
  margin-top:5px;

  color:#1268e8;

  font-size:42px;
  line-height:1;

  font-weight:950;
  letter-spacing:-.04em;
}

.rr-offer-small{
  margin-top:7px;

  color:#667085;
  font-size:13px;
}

.rr-offer-timer{
  width:56px;
  height:56px;

  display:flex;
  align-items:center;
  justify-content:center;

  flex:0 0 auto;

  border-radius:50%;

  background:#101828;
  color:#fff;

  font-size:21px;
  font-weight:900;
}

.rr-offer-route{
  margin-top:25px;
  padding:18px;

  border-radius:20px;
  background:#f7f9fc;
}

.rr-offer-point{
  display:grid;

  grid-template-columns:
    18px 1fr;

  gap:12px;
}

.rr-offer-point small{
  display:block;

  color:#667085;

  font-size:12px;
  font-weight:750;
}

.rr-offer-point strong{
  display:block;

  margin-top:3px;

  color:#101828;

  font-size:16px;
  line-height:1.3;
}

.rr-dot{
  width:12px;
  height:12px;

  margin-top:5px;

  border-radius:50%;
}

.rr-dot-pickup{
  background:#1268e8;
}

.rr-dot-destination{
  background:#101828;
}

.rr-offer-line{
  width:2px;
  height:27px;

  margin:
    5px 0
    5px 5px;

  background:#d0d5dd;
}

.rr-offer-distance{
  margin-top:14px;

  color:#475467;

  font-size:14px;
  font-weight:750;
}

.rr-accept-offer{
  width:100%;

  margin-top:20px;

  min-height:64px;

  font-size:19px;
}

.rr-offer-hint{
  margin-top:11px;

  color:#98a2b3;

  text-align:center;
  font-size:12px;
}


/* Ride Ride — Driver/Rider contact controls */
.rider-contact-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:18px 0;
}

.rider-contact-btn{
  min-height:58px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-decoration:none !important;
  font-size:16px;
  font-weight:800;
  letter-spacing:.1px;
  box-shadow:0 8px 24px rgba(0,0,0,.20);
  transition:transform .15s ease, opacity .15s ease;
  -webkit-tap-highlight-color:transparent;
}

.rider-contact-btn:active{
  transform:scale(.97);
}

.call-rider{
  background:linear-gradient(135deg,#00c86b,#00a957);
  color:#fff !important;
}

.message-rider{
  background:linear-gradient(135deg,#1478ff,#005de0);
  color:#fff !important;
}

.contact-icon{
  width:34px;
  height:34px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.16);
  font-size:19px;
}

@media(max-width:390px){
  .rider-contact-actions{
    gap:9px;
  }

  .rider-contact-btn{
    min-height:54px;
    font-size:14px;
  }
}

/* =========================================================
   RIDE RIDE — DRIVER APP PROFESSIONAL UI
   Final visual override
   ========================================================= */

.driver-pro-home{
  --rr-bg:#07111f;
  --rr-panel:#0b1b2c;
  --rr-panel2:#10253a;
  --rr-blue:#087cff;
  --rr-green:#00d66b;
  --rr-red:#ff3b47;
  --rr-text:#ffffff;
  --rr-muted:#9fb0c5;

  min-height:100vh;
  background:
    radial-gradient(circle at 50% 10%,rgba(0,122,255,.18),transparent 35%),
    linear-gradient(180deg,#081524 0%,#06101d 100%);
  color:var(--rr-text);
}

/* MAP */
.driver-pro-home .driver-map-wrap{
  position:relative;
  height:58vh;
  min-height:500px;
  overflow:hidden;
  background:#07111f;
  border-radius:0 0 30px 30px;
}

.driver-pro-home #driverHomeMap{
  height:100% !important;
  min-height:500px;
  filter:saturate(.85) brightness(.68) contrast(1.15);
}

/* TOP BRAND */
.driver-pro-home .driver-map-wrap::before{
  content:"🚘  RIDE RIDE";
  position:absolute;
  z-index:900;
  top:24px;
  left:20px;
  padding:13px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  color:#087cff;
  font-weight:900;
  font-size:15px;
  letter-spacing:1.4px;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
}

/* EARNINGS */
.driver-pro-home .earnings-chip{
  position:absolute;
  z-index:901;
  top:22px;
  left:50%;
  transform:translateX(-50%);
  min-width:145px;
  padding:10px 18px;
  border-radius:999px;
  background:rgba(6,17,31,.92);
  color:#fff;
  text-decoration:none;
  text-align:center;
  box-shadow:0 10px 30px rgba(0,0,0,.30);
  backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.10);
}

.driver-pro-home .earnings-chip small{
  color:#aebdce;
  margin-right:7px;
}

.driver-pro-home .earnings-chip strong{
  color:#fff;
  font-size:21px;
}

/* ONLINE / OFFLINE */
.driver-pro-home .online-pill{
  position:absolute;
  z-index:901;
  top:86px;
  left:50%;
  transform:translateX(-50%);
  padding:9px 18px;
  border-radius:999px;
  background:rgba(5,15,26,.94);
  color:#b8c5d4;
  font-weight:800;
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.12);
}

.driver-pro-home .online-pill.on{
  color:#00f078;
  border-color:rgba(0,240,120,.4);
}

.driver-pro-home .online-pill span{
  width:10px;
  height:10px;
  box-shadow:0 0 16px currentColor;
}

/* GO / STOP */
.driver-pro-home .go-form{
  position:absolute;
  z-index:902;
  left:50%;
  bottom:65px;
  transform:translateX(-50%);
}

.driver-pro-home .go-button{
  width:132px;
  height:132px;
  border-radius:50%;
  border:9px solid rgba(100,180,255,.30);
  background:linear-gradient(145deg,#168cff,#005de0);
  color:#fff;
  font-size:30px;
  font-weight:900;
  box-shadow:
    0 18px 45px rgba(0,91,224,.48),
    inset 0 2px 8px rgba(255,255,255,.25);
}

.driver-pro-home .go-button.online{
  background:linear-gradient(145deg,#ff4a55,#d9182c);
  box-shadow:0 18px 45px rgba(217,24,44,.38);
}

.driver-pro-home .go-caption{
  position:absolute;
  z-index:902;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  background:rgba(5,15,26,.92);
  color:#fff;
  padding:9px 18px;
  border-radius:999px;
  white-space:nowrap;
  font-weight:750;
  box-shadow:0 8px 22px rgba(0,0,0,.28);
}

/* RIDE REQUEST / ACTIVE RIDE CARDS */
.driver-pro-home .request-pro-card,
.driver-pro-home .active-pro-card{
  margin:16px;
  padding:20px;
  border-radius:25px;
  color:#fff;
  background:
    linear-gradient(145deg,rgba(15,39,61,.98),rgba(5,20,34,.98));
  border:1px solid rgba(87,166,255,.22);
  box-shadow:0 20px 50px rgba(0,0,0,.32);
}

.driver-pro-home .request-pro-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:14px;
  margin-bottom:15px;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.driver-pro-home .request-pro-card strong,
.driver-pro-home .active-pro-card strong{
  color:#fff;
}

.driver-pro-home .request-point{
  position:relative;
  padding:10px 0 10px 32px;
}

.driver-pro-home .request-point small{
  display:block;
  color:#94a9c0;
  font-size:12px;
  margin-bottom:4px;
}

.driver-pro-home .request-point .dot{
  position:absolute;
  left:2px;
  top:16px;
  width:16px;
  height:16px;
  border-radius:50%;
}

.driver-pro-home .dot.pickup{
  background:#00d66b;
  box-shadow:0 0 0 6px rgba(0,214,107,.14);
}

.driver-pro-home .dot.destination{
  background:#ff4655;
  box-shadow:0 0 0 6px rgba(255,70,85,.14);
}

/* ACTION BUTTONS */
.driver-pro-home .request-pro-card button,
.driver-pro-home .active-pro-card button{
  min-height:58px;
  border:0;
  border-radius:17px;
  padding:0 22px;
  font-size:17px;
  font-weight:900;
  cursor:pointer;
  background:linear-gradient(135deg,#00d66b,#00ad58);
  color:#fff;
  box-shadow:0 10px 24px rgba(0,214,107,.20);
}

/* CALL + MESSAGE RIDER */
.driver-pro-home .rider-contact-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:18px;
}

.driver-pro-home .rider-contact-btn{
  min-height:58px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:#fff !important;
  text-decoration:none;
  font-weight:850;
  box-shadow:0 10px 25px rgba(0,0,0,.22);
}

.driver-pro-home .call-rider{
  background:linear-gradient(135deg,#00cf72,#009d59);
}

.driver-pro-home .message-rider{
  background:linear-gradient(135deg,#168cff,#005de0);
}

.driver-pro-home .contact-icon{
  width:34px;
  height:34px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.15);
}

/* READY PANEL */
.driver-pro-home > section,
.driver-pro-home .driver-panel{
  background:#081522;
  color:#fff;
}

.driver-pro-home h1,
.driver-pro-home h2,
.driver-pro-home h3{
  color:#fff;
}

/* MOBILE */
@media(max-width:600px){
  .driver-pro-home .driver-map-wrap{
    height:61vh;
    min-height:500px;
  }

  .driver-pro-home #driverHomeMap{
    min-height:500px;
  }

  .driver-pro-home .driver-map-wrap::before{
    top:18px;
    left:14px;
    padding:11px 14px;
    font-size:13px;
  }

  .driver-pro-home .earnings-chip{
    top:17px;
  }

  .driver-pro-home .online-pill{
    top:76px;
  }

  .driver-pro-home .request-pro-card,
  .driver-pro-home .active-pro-card{
    margin:12px;
    padding:17px;
    border-radius:22px;
  }
}


/* ===== RIDE RIDE — NEW BOOKING / VEHICLE SELECTION ===== */

.rr-booking-map {
  width: 100%;
  height: 300px;
  border-radius: 28px 28px 0 0;
  overflow: hidden;
  background: #e9edf2;
}

.rr-choose-ride {
  background: #fff;
  border-radius: 28px 28px 0 0;
  margin-top: -22px;
  position: relative;
  z-index: 20;
  padding: 24px 18px 30px;
  box-shadow: 0 -8px 30px rgba(15,23,42,.08);
}

.rr-choose-title {
  text-align: center;
  font-size: 16px;
  color: #6b7280;
  margin: 0 0 18px;
  font-weight: 600;
}

.rr-vehicle-card {
  display: flex;
  align-items: center;
  gap: 15px;
  min-height: 96px;
  padding: 14px;
  margin-bottom: 10px;
  border: 2px solid transparent;
  border-radius: 20px;
  background: #fff;
  cursor: pointer;
  transition: .2s ease;
}

.rr-vehicle-card.selected {
  border-color: #ff5a1f;
  background: #fff7f2;
}

.rr-vehicle-icon {
  width: 82px;
  text-align: center;
  font-size: 46px;
  flex: 0 0 82px;
}

.rr-vehicle-info {
  flex: 1;
  min-width: 0;
}

.rr-vehicle-name {
  color: #101828;
  font-size: 20px;
  line-height: 1.1;
  font-weight: 800;
}

.rr-vehicle-meta {
  color: #7c8493;
  font-size: 13px;
  margin-top: 6px;
}

.rr-vehicle-price {
  color: #101828;
  font-size: 19px;
  font-weight: 800;
  white-space: nowrap;
}

.rr-seat-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 17px 5px;
  border-top: 1px solid #eceff3;
  border-bottom: 1px solid #eceff3;
  margin-top: 12px;
}

.rr-seat-controls {
  display: flex;
  align-items: center;
  gap: 18px;
}

.rr-seat-btn {
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  font-size: 25px;
  background: #f1f3f6;
  color: #101828;
}

.rr-payment-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 4px;
  font-weight: 700;
}

.rr-confirm-ride {
  width: 100%;
  min-height: 58px;
  border: 0;
  border-radius: 18px;
  background: #ff5a1f;
  color: white;
  font-size: 18px;
  font-weight: 800;
  box-shadow: 0 10px 25px rgba(255,90,31,.24);
}

@media (max-width: 600px) {
  .rr-booking-map {
    height: 270px;
  }

  .rr-choose-ride {
    padding-left: 14px;
    padding-right: 14px;
  }

  .rr-vehicle-icon {
    width: 65px;
    flex-basis: 65px;
    font-size: 39px;
  }

  .rr-vehicle-name {
    font-size: 18px;
  }

  .rr-vehicle-price {
    font-size: 17px;
  }
}

/* =========================================================
   RIDE RIDE — PROFESSIONAL MOBILE BOOKING UI
   ========================================================= */

:root{
  --rr-purple:#5b2ee8;
  --rr-purple2:#7137ee;
  --rr-navy:#10172b;
  --rr-text:#10152a;
  --rr-muted:#697386;
  --rr-border:#e4e7ee;
  --rr-bg:#f7f8fb;
}

body{
  background:var(--rr-bg);
  color:var(--rr-text);
}

.rr-book-card{
  max-width:760px;
  margin:0 auto;
  padding:22px 18px 28px;
  background:#fff;
  border-radius:30px;
  box-shadow:0 12px 40px rgba(16,24,40,.07);
}

.rr-book-card h2{
  margin:0 0 5px;
  text-align:center;
  font-size:30px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:-.8px;
  color:var(--rr-text);
}

/* Vehicle list */
.rr-vehicle-list{
  display:flex !important;
  flex-direction:column;
  gap:10px !important;
  margin:18px 0 20px !important;
}

.rr-vehicle-card{
  width:100%;
  min-height:108px;
  display:grid;
  grid-template-columns:125px 1fr auto;
  align-items:center;
  gap:13px;
  padding:12px 15px;
  border:1.5px solid var(--rr-border);
  border-radius:20px;
  background:#fff;
  text-align:left;
  box-shadow:0 4px 15px rgba(16,24,40,.035);
  transition:.15s ease;
}

.rr-vehicle-card.selected{
  border:3px solid var(--rr-purple);
  background:linear-gradient(100deg,#fff 0%,#faf8ff 100%);
  box-shadow:0 6px 20px rgba(91,46,232,.10);
}

.rr-car-icon{
  width:125px;
  min-width:125px;
  height:80px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:14px;
  background:#f7f8fb;
  font-size:0 !important;
}

.rr-car-icon img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.rr-car-info{
  min-width:0;
}

.rr-car-info strong{
  display:block;
  margin-bottom:5px;
  font-size:21px;
  line-height:1.05;
  font-weight:900;
  color:var(--rr-text);
}

.rr-car-info span{
  display:block;
  font-size:14px;
  line-height:1.35;
  font-weight:650;
  color:#4f586d;
}

.rr-car-info small{
  display:block;
  margin-top:4px;
  font-size:13px;
  line-height:1.3;
  color:#778095;
}

.rr-car-right{
  min-width:84px;
  text-align:right;
  color:var(--rr-text);
}

.rr-car-right strong{
  display:block;
  font-size:19px;
  font-weight:900;
}

.rr-check{
  width:43px;
  height:43px;
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid #c8ced9;
  border-radius:50%;
  font-size:0;
  background:#fff;
}

.rr-vehicle-card.selected .rr-check{
  border-color:var(--rr-purple);
  background:var(--rr-purple);
}

.rr-vehicle-card.selected .rr-check::after{
  content:"✓";
  color:#fff;
  font-size:25px;
  font-weight:900;
}

/* Form controls */
.rr-book-card label{
  display:block;
  margin:15px 0 7px;
  font-size:15px;
  font-weight:850;
  color:#30384a;
}

.rr-book-card input,
.rr-book-card select{
  width:100%;
  min-height:58px;
  padding:0 17px;
  border:1.5px solid #dfe3ea;
  border-radius:17px;
  background:#fafbfc;
  color:#151a2b;
  font-size:17px;
  outline:none;
}

.rr-book-card input:focus,
.rr-book-card select:focus{
  border-color:var(--rr-purple);
  box-shadow:0 0 0 3px rgba(91,46,232,.09);
}

/* Price */
.rr-estimate{
  width:100%;
  min-height:62px;
  margin-top:20px;
  border:0;
  border-radius:19px;
  background:var(--rr-navy);
  color:#fff;
  font-size:19px;
  font-weight:900;
  box-shadow:0 8px 22px rgba(16,23,43,.15);
}

.ride-quote-box{
  margin-top:14px;
  padding:18px;
  border:1px solid #ddd8ff;
  border-radius:20px;
  background:#f7f5ff;
}

.ride-quote-label{
  color:#697386;
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.8px;
}

.ride-quote-price{
  margin-top:3px;
  color:var(--rr-purple);
  font-size:40px;
  line-height:1;
  font-weight:950;
}

/* Main request button */
#requestRide{
  width:100%;
  min-height:68px;
  margin-top:15px;
  border:0;
  border-radius:20px;
  background:linear-gradient(100deg,var(--rr-purple),var(--rr-purple2));
  color:#fff;
  font-size:21px;
  font-weight:900;
  box-shadow:0 10px 25px rgba(91,46,232,.23);
}

/* Map */
.rr-map-card{
  max-width:760px;
  margin:16px auto;
  overflow:hidden;
  border-radius:28px;
  background:#fff;
  box-shadow:0 10px 32px rgba(16,24,40,.08);
}

#rideMap{
  width:100%;
  min-height:330px;
}

/* Mobile */
@media(max-width:600px){
  .rr-book-card{
    padding:18px 13px 24px;
    border-radius:25px;
  }

  .rr-book-card h2{
    font-size:27px;
  }

  .rr-vehicle-card{
    grid-template-columns:100px 1fr 52px;
    gap:10px;
    min-height:103px;
    padding:10px;
    border-radius:18px;
  }

  .rr-car-icon{
    width:100px;
    min-width:100px;
    height:70px;
  }

  .rr-car-info strong{
    font-size:19px;
  }

  .rr-car-info span{
    font-size:13px;
  }

  .rr-car-info small{
    font-size:12px;
  }

  .rr-car-right{
    min-width:48px;
  }
}

/* Never use emoji cars as the finished vehicle artwork */
.rr-car-icon{
  color:transparent;
  text-shadow:none;
}


/* =========================================================
   RIDE RIDE — PROFESSIONAL BOOKING UI v2
   ========================================================= */

:root{
  --rr-purple:#6036e8;
  --rr-purple2:#6f39ef;
  --rr-ink:#11162b;
  --rr-muted:#6f778b;
  --rr-line:#e1e4eb;
  --rr-soft:#f6f7fb;
}

/* Main booking container */
.rr-book-card{
  width:calc(100% - 24px) !important;
  max-width:760px !important;
  margin:12px auto 30px !important;
  padding:20px 16px 24px !important;
  border-radius:28px !important;
  background:#fff !important;
  box-shadow:0 10px 35px rgba(17,22,43,.07) !important;
  overflow:hidden !important;
}

.rr-book-card h2{
  margin:0 0 6px !important;
  text-align:center !important;
  font-size:30px !important;
  line-height:1.1 !important;
  font-weight:900 !important;
  letter-spacing:-.8px !important;
  color:var(--rr-ink) !important;
}

/* Booking labels */
.rr-book-card label{
  color:var(--rr-ink) !important;
  font-weight:800 !important;
}

/* Inputs */
.rr-book-card input,
.rr-book-card select{
  box-sizing:border-box !important;
  max-width:100% !important;
  border:1px solid var(--rr-line) !important;
  background:#fafbfc !important;
  border-radius:18px !important;
}

/* Prevent current-location message escaping screen */
#locationStatus,
.location-status,
.current-location-status{
  position:static !important;
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  margin:8px 0 !important;
  font-size:14px !important;
  line-height:1.3 !important;
  overflow-wrap:anywhere !important;
  color:#667085 !important;
}

/* Choose ride heading */
.rr-book-card h2 + p{
  text-align:center !important;
}

.rr-vehicle-list{
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  margin:16px 0 !important;
}

/* Compact vehicle rows */
.rr-vehicle-list > *{
  position:relative !important;
  box-sizing:border-box !important;
  width:100% !important;
  min-height:112px !important;
  margin:0 !important;
  padding:14px 58px 14px 150px !important;
  border:1px solid var(--rr-line) !important;
  border-radius:20px !important;
  background:#fff !important;
  box-shadow:0 5px 16px rgba(17,22,43,.045) !important;
  overflow:hidden !important;
}

/* selected vehicle */
.rr-vehicle-list > *.selected,
.rr-vehicle-list > *:has(input:checked){
  border:3px solid var(--rr-purple) !important;
  background:#fbfaff !important;
}

/* Vehicle image area */
.rr-vehicle-list img{
  position:absolute !important;
  left:10px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:128px !important;
  height:82px !important;
  object-fit:contain !important;
  display:block !important;
}

/* Vehicle names */
.rr-vehicle-list h3,
.rr-vehicle-list strong{
  color:var(--rr-ink) !important;
  font-size:20px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
}

/* Vehicle details */
.rr-vehicle-list p,
.rr-vehicle-list small,
.rr-vehicle-list span{
  line-height:1.3 !important;
}

/* Radio control */
.rr-vehicle-list input[type="radio"]{
  position:absolute !important;
  right:16px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:28px !important;
  height:28px !important;
  accent-color:var(--rr-purple) !important;
}

/* Fare area */
.estimated-fare,
#estimatedFare{
  border:1px solid #d6dcff !important;
  background:#f5f7ff !important;
  border-radius:20px !important;
}

/* Primary ride button */
#rideRequestForm button[type="submit"],
.rr-book-card button[type="submit"]{
  width:100% !important;
  min-height:62px !important;
  border:0 !important;
  border-radius:18px !important;
  background:linear-gradient(135deg,var(--rr-purple),var(--rr-purple2)) !important;
  color:#fff !important;
  font-size:21px !important;
  font-weight:900 !important;
  box-shadow:0 10px 25px rgba(96,54,232,.22) !important;
}


/* ============================================================
   RIDE RIDE — RIDER MAP + BOTTOM SHEET
   Reference UI: map above, compact Choose-a-ride sheet below
   ============================================================ */

body{
  background:#fff !important;
}

/* Rider map: upper portion of screen */
.rr-map-card{
  display:block !important;
  position:relative !important;
  width:100% !important;
  max-width:760px !important;
  height:42vh !important;
  min-height:310px !important;
  max-height:430px !important;
  margin:0 auto !important;
  padding:0 !important;
  border-radius:0 !important;
  overflow:hidden !important;
  background:#e9eef3 !important;
  box-shadow:none !important;
}

#riderMap,
.rr-booking-map{
  width:100% !important;
  height:100% !important;
  min-height:310px !important;
  border-radius:0 !important;
}

/* White mobile bottom sheet */
.rr-book-card{
  position:relative !important;
  z-index:20 !important;
  width:100% !important;
  max-width:760px !important;
  margin:-28px auto 0 !important;
  padding:13px 16px 28px !important;
  border-radius:28px 28px 0 0 !important;
  background:#fff !important;
  box-shadow:0 -8px 28px rgba(15,23,42,.10) !important;
  overflow:hidden !important;
}

/* sheet handle */
.rr-book-card::before{
  content:"" !important;
  display:block !important;
  width:44px !important;
  height:5px !important;
  margin:0 auto 15px !important;
  border-radius:99px !important;
  background:#d5d8df !important;
}

/* Heading */
.rr-choose-title{
  margin:0 0 12px !important;
  text-align:center !important;
}

.rr-choose-title h2{
  margin:0 !important;
  font-size:25px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  letter-spacing:-.5px !important;
  color:#121629 !important;
}

.rr-choose-title p{
  margin:4px 0 0 !important;
  font-size:13px !important;
  color:#7b8190 !important;
}

/* Vehicle list */
.rr-vehicle-list{
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  margin:0 !important;
  padding:0 !important;
}

/* Compact Uber-style row */
.rr-vehicle-card{
  position:relative !important;
  display:grid !important;
  grid-template-columns:92px minmax(0,1fr) 70px !important;
  align-items:center !important;
  gap:10px !important;

  width:100% !important;
  min-height:88px !important;
  margin:0 !important;
  padding:9px 10px !important;

  border:2px solid transparent !important;
  border-radius:15px !important;
  background:#fff !important;
  box-shadow:none !important;
  text-align:left !important;
}

/* Selected row */
.rr-vehicle-card.selected{
  border-color:#5f35e7 !important;
  background:#faf9ff !important;
}

/* vehicle artwork zone */
.rr-car-icon{
  width:92px !important;
  height:68px !important;
  min-width:0 !important;
  border:0 !important;
  border-radius:10px !important;
  background:
    linear-gradient(145deg,#f5f6f8,#eceef2) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;

  /* hide old emoji */
  font-size:0 !important;
  color:transparent !important;
  text-shadow:none !important;
}

/* temporary clean vehicle silhouette instead of emoji */
.rr-car-icon::after{
  content:"" !important;
  display:block !important;
  width:76px !important;
  height:42px !important;
  background:
    linear-gradient(160deg,#20252d 0 56%,#101319 57% 100%) !important;
  clip-path:polygon(
    4% 58%,18% 52%,31% 24%,65% 24%,
    78% 48%,94% 55%,98% 78%,91% 84%,
    83% 84%,78% 70%,27% 70%,22% 84%,
    13% 84%,5% 77%
  ) !important;
  border-radius:7px !important;
}

/* If real car images are added later they automatically win */
.rr-car-icon img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  z-index:2 !important;
}

/* vehicle text */
.rr-car-info{
  min-width:0 !important;
  display:block !important;
}

.rr-car-info strong{
  display:block !important;
  margin:0 0 3px !important;
  color:#111526 !important;
  font-size:18px !important;
  line-height:1.1 !important;
  font-weight:900 !important;
}

.rr-car-info span{
  display:block !important;
  margin:0 !important;
  color:#525969 !important;
  font-size:12px !important;
  line-height:1.3 !important;
  white-space:normal !important;
}

.rr-car-info small{
  display:block !important;
  margin-top:3px !important;
  color:#8a909d !important;
  font-size:11px !important;
  line-height:1.25 !important;
}

/* price/right side */
.rr-car-right{
  min-width:0 !important;
  text-align:right !important;
}

.rr-card-price{
  display:block !important;
  color:#101425 !important;
  font-size:17px !important;
  line-height:1.1 !important;
  font-weight:900 !important;
}

.rr-check{
  display:none !important;
}

/* Passenger count */
.rr-passengers{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin:10px 0 !important;
  padding:11px 13px !important;
  border:1px solid #e5e7ec !important;
  border-radius:15px !important;
  background:#fff !important;
}

.rr-passengers strong{
  font-size:14px !important;
}

.rr-passengers small{
  display:block !important;
  margin-top:2px !important;
  color:#858b98 !important;
  font-size:11px !important;
}

.rr-seat-controls{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
}

.rr-seat-controls button{
  width:36px !important;
  height:36px !important;
  border:0 !important;
  border-radius:10px !important;
  background:#f0f1f4 !important;
  color:#171b2c !important;
  font-size:22px !important;
}

#seatCount{
  min-width:20px !important;
  text-align:center !important;
  font-size:17px !important;
}

/* Payment */
.rr-book-card label{
  margin:11px 0 6px !important;
  color:#303646 !important;
  font-size:13px !important;
  font-weight:800 !important;
}

#paymentMethod{
  width:100% !important;
  height:50px !important;
  min-height:50px !important;
  padding:0 14px !important;
  border:1px solid #e2e5ea !important;
  border-radius:14px !important;
  background:#f8f9fb !important;
  font-size:15px !important;
}

/* Estimate button becomes secondary */
#estimateRide{
  width:100% !important;
  min-height:48px !important;
  margin:10px 0 0 !important;
  border:1px solid #dedfe5 !important;
  border-radius:14px !important;
  background:#f3f4f6 !important;
  color:#1a1d2b !important;
  font-size:15px !important;
  font-weight:800 !important;
  box-shadow:none !important;
}

/* Compact quote */
#quoteBox{
  margin:9px 0 0 !important;
  padding:11px 13px !important;
  border:1px solid #e5e2ff !important;
  border-radius:14px !important;
  background:#f8f7ff !important;
}

#quotePrice{
  color:#5f35e7 !important;
  font-size:25px !important;
  line-height:1 !important;
  font-weight:900 !important;
}

/* Main action */
#requestRide{
  width:100% !important;
  min-height:58px !important;
  margin:11px 0 0 !important;
  border:0 !important;
  border-radius:15px !important;
  background:#5f35e7 !important;
  color:#fff !important;
  font-size:18px !important;
  font-weight:900 !important;
  box-shadow:0 8px 20px rgba(95,53,231,.24) !important;
}

/* Fix orange location status overflow */
#locationStatus,
.location-status,
.current-location-status{
  position:static !important;
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  margin:6px 0 !important;
  padding:0 !important;
  overflow:hidden !important;
  overflow-wrap:anywhere !important;
  white-space:normal !important;
  color:#687080 !important;
  font-size:12px !important;
}

/* iPhone */
@media(max-width:600px){
  .rr-map-card{
    height:40vh !important;
    min-height:290px !important;
  }

  .rr-book-card{
    width:100% !important;
    margin:-26px 0 0 !important;
    padding:12px 12px 24px !important;
  }

  .rr-vehicle-card{
    grid-template-columns:84px minmax(0,1fr) 62px !important;
    min-height:82px !important;
    padding:7px 8px !important;
  }

  .rr-car-icon{
    width:84px !important;
    height:62px !important;
  }

  .rr-car-icon::after{
    width:70px !important;
    height:39px !important;
  }

  .rr-car-info strong{
    font-size:17px !important;
  }

  .rr-card-price{
    font-size:16px !important;
  }
}


/* =========================================================
   RIDE RIDE — PROFESSIONAL MOBILE UI
   ========================================================= */

:root{
  --rr-blue:#4f8fdf;
  --rr-blue-dark:#3678c8;
  --rr-blue-soft:#eaf3ff;
  --rr-ink:#111827;
  --rr-muted:#667085;
  --rr-line:#e5e7eb;
  --rr-bg:#f7f9fc;
  --rr-white:#ffffff;
}

/* App surface */
body{
  background:var(--rr-bg) !important;
  color:var(--rr-ink) !important;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display",
              "SF Pro Text",Inter,Arial,sans-serif !important;
}

/* Main rider booking card */
.rr-book-card{
  width:min(100%,760px) !important;
  margin:0 auto !important;
  padding:18px 16px 26px !important;
  background:#fff !important;
  border:0 !important;
  border-radius:28px 28px 0 0 !important;
  box-shadow:0 -8px 30px rgba(15,23,42,.08) !important;
}

/* Titles */
.rr-book-card h2{
  color:var(--rr-ink) !important;
  font-size:28px !important;
  line-height:1.12 !important;
  font-weight:800 !important;
  letter-spacing:-.6px !important;
}

/* Pickup / destination */
.rr-book-card label{
  display:block !important;
  margin:14px 0 7px !important;
  color:#344054 !important;
  font-size:14px !important;
  font-weight:700 !important;
}

.rr-book-card input,
.rr-book-card select{
  width:100% !important;
  min-height:56px !important;
  padding:0 16px !important;
  background:#f8fafc !important;
  color:var(--rr-ink) !important;
  border:1px solid var(--rr-line) !important;
  border-radius:16px !important;
  font-size:17px !important;
  outline:none !important;
  box-sizing:border-box !important;
}

.rr-book-card input:focus,
.rr-book-card select:focus{
  background:#fff !important;
  border-color:var(--rr-blue) !important;
  box-shadow:0 0 0 4px rgba(79,143,223,.12) !important;
}

/* Current location */
.rr-location-btn{
  background:var(--rr-blue-soft) !important;
  color:var(--rr-blue-dark) !important;
  border:0 !important;
  border-radius:50% !important;
}

/* Ride options */
.rr-vehicle-list{
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  margin:14px 0 18px !important;
}

.rr-vehicle-card{
  position:relative !important;
  width:100% !important;
  min-height:92px !important;
  padding:14px 16px !important;
  background:#fff !important;
  color:var(--rr-ink) !important;
  border:1.5px solid transparent !important;
  border-radius:18px !important;
  box-shadow:none !important;
}

.rr-vehicle-card.selected{
  background:var(--rr-blue-soft) !important;
  border-color:var(--rr-blue) !important;
  box-shadow:0 6px 18px rgba(79,143,223,.10) !important;
}

.rr-car-info strong{
  color:var(--rr-ink) !important;
  font-size:18px !important;
  font-weight:800 !important;
}

.rr-car-info span,
.rr-car-info small{
  color:var(--rr-muted) !important;
}

.rr-card-price{
  color:var(--rr-ink) !important;
  font-size:18px !important;
  font-weight:800 !important;
}

/* Price quote */
.ride-quote-box{
  margin:16px 0 !important;
  padding:18px !important;
  background:#f8fafc !important;
  border:1px solid var(--rr-line) !important;
  border-radius:18px !important;
  box-shadow:none !important;
}

.ride-quote-price{
  color:var(--rr-ink) !important;
  font-size:30px !important;
  font-weight:850 !important;
}

/* Main actions */
#estimateRide,
#requestRide{
  width:100% !important;
  min-height:58px !important;
  border:0 !important;
  border-radius:17px !important;
  font-size:18px !important;
  font-weight:800 !important;
  cursor:pointer !important;
}

#estimateRide{
  background:var(--rr-blue-soft) !important;
  color:var(--rr-blue-dark) !important;
}

#requestRide{
  background:var(--rr-blue) !important;
  color:#fff !important;
  box-shadow:0 8px 22px rgba(79,143,223,.24) !important;
}

/* Map-first appearance */
.rr-map-card{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  overflow:hidden !important;
  background:#e9eef3 !important;
  box-shadow:none !important;
}

#riderMap,
.rr-booking-map{
  width:100% !important;
  height:42vh !important;
  min-height:300px !important;
  max-height:430px !important;
  border-radius:0 !important;
}

/* Driver / active ride panels */
.driver-trip-card,
.driver-ride-card,
.ride-status-card,
.waiting-card{
  background:#fff !important;
  color:var(--rr-ink) !important;
  border:0 !important;
  border-radius:22px !important;
  box-shadow:0 8px 28px rgba(15,23,42,.10) !important;
}

/* Arrived / waiting / start / complete */
button[id*="arriv" i],
button[id*="start" i],
button[id*="complete" i],
button[class*="arriv" i],
button[class*="start" i],
button[class*="complete" i]{
  min-height:58px !important;
  border:0 !important;
  border-radius:17px !important;
  background:var(--rr-blue) !important;
  color:#fff !important;
  font-size:18px !important;
  font-weight:800 !important;
  box-shadow:0 8px 20px rgba(79,143,223,.22) !important;
}

/* Waiting timer */
.waiting-timer,
#waitingTimer,
.ride-timer{
  color:var(--rr-blue-dark) !important;
  font-variant-numeric:tabular-nums !important;
  font-weight:800 !important;
}

/* Mobile */
@media(max-width:600px){
  body{
    margin:0 !important;
    background:#fff !important;
  }

  .rr-book-card{
    width:100% !important;
    padding:18px 16px 24px !important;
    border-radius:26px 26px 0 0 !important;
    box-sizing:border-box !important;
  }

  .rr-book-card h2{
    font-size:26px !important;
  }

  #riderMap,
  .rr-booking-map{
    height:38vh !important;
    min-height:280px !important;
  }

  .rr-vehicle-card{
    min-height:88px !important;
  }
}


/* =========================================================
   RIDE RIDE — DRIVER PRO MOBILE INTERFACE
   map-first / light bottom sheet / soft blue
   ========================================================= */

:root{
  --ride-blue:#4c8fe8;
  --ride-blue-soft:#eaf3ff;
  --ride-text:#111827;
  --ride-muted:#667085;
  --ride-border:#e7eaf0;
  --ride-surface:#ffffff;
}

/* DRIVER PAGE */
body:has(.driver-trip-card),
body:has(.driver-ride-card),
body:has(.ride-status-card){
  background:#fff !important;
  color:var(--ride-text) !important;
}

/* Map becomes the dominant surface */
body:has(.driver-trip-card) .leaflet-container,
body:has(.driver-ride-card) .leaflet-container,
body:has(.ride-status-card) .leaflet-container{
  height:52vh !important;
  min-height:390px !important;
  border-radius:0 0 26px 26px !important;
  box-shadow:none !important;
}

/* Replace dark trip cards with a professional bottom sheet */
.driver-trip-card,
.driver-ride-card,
.ride-status-card,
.waiting-card{
  position:relative !important;
  width:calc(100% - 24px) !important;
  max-width:680px !important;
  margin:-20px auto 86px !important;
  padding:20px !important;

  background:rgba(255,255,255,.98) !important;
  color:var(--ride-text) !important;

  border:1px solid rgba(17,24,39,.06) !important;
  border-radius:26px !important;

  box-shadow:
    0 18px 45px rgba(15,23,42,.14),
    0 2px 8px rgba(15,23,42,.05) !important;

  box-sizing:border-box !important;
  z-index:500 !important;
}

/* Bottom-sheet grabber */
.driver-trip-card::before,
.driver-ride-card::before,
.ride-status-card::before{
  content:"" !important;
  display:block !important;
  width:42px !important;
  height:5px !important;
  margin:-7px auto 16px !important;
  background:#d7dce3 !important;
  border-radius:999px !important;
}

/* Status chips */
.driver-trip-card [class*="status"],
.driver-ride-card [class*="status"],
.ride-status-card [class*="status"]{
  display:inline-flex !important;
  align-items:center !important;
  min-height:34px !important;
  padding:6px 12px !important;

  background:var(--ride-blue-soft) !important;
  color:#276fc5 !important;

  border-radius:999px !important;

  font-size:13px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.4px !important;
}

/* Rider name */
.driver-trip-card h1,
.driver-trip-card h2,
.driver-ride-card h1,
.driver-ride-card h2,
.ride-status-card h1,
.ride-status-card h2{
  color:var(--ride-text) !important;
  font-weight:800 !important;
  letter-spacing:-.5px !important;
}

/* Address typography */
.driver-trip-card p,
.driver-ride-card p,
.ride-status-card p{
  color:var(--ride-muted) !important;
  line-height:1.35 !important;
}

/* Pickup/destination labels */
.driver-trip-card small,
.driver-ride-card small,
.ride-status-card small{
  color:#8a94a6 !important;
  font-weight:600 !important;
}

/* Call / message: compact controls */
.driver-trip-card a[href^="tel:"],
.driver-trip-card a[href^="sms:"],
.driver-ride-card a[href^="tel:"],
.driver-ride-card a[href^="sms:"],
.ride-status-card a[href^="tel:"],
.ride-status-card a[href^="sms:"]{
  display:inline-flex !important;
  justify-content:center !important;
  align-items:center !important;

  min-height:52px !important;
  padding:0 18px !important;

  background:#f4f7fb !important;
  color:var(--ride-text) !important;

  border:1px solid var(--ride-border) !important;
  border-radius:16px !important;

  text-decoration:none !important;
  font-weight:750 !important;
  box-shadow:none !important;
}

/* Main ride-state actions */
.driver-trip-card button,
.driver-ride-card button,
.ride-status-card button,
.waiting-card button{
  min-height:58px !important;
  border:0 !important;
  border-radius:17px !important;

  background:var(--ride-blue) !important;
  color:#fff !important;

  font-size:18px !important;
  font-weight:800 !important;

  box-shadow:0 8px 20px rgba(76,143,232,.22) !important;
}

/* Remove bright green/red styling from ride-state buttons */
.driver-trip-card button[style],
.driver-ride-card button[style],
.ride-status-card button[style]{
  background:var(--ride-blue) !important;
  color:#fff !important;
}

/* Waiting state */
.waiting-timer,
#waitingTimer,
[class*="waiting"][class*="timer"],
[class*="wait"][class*="time"]{
  color:var(--ride-text) !important;
  font-size:30px !important;
  font-weight:850 !important;
  font-variant-numeric:tabular-nums !important;
  letter-spacing:-.5px !important;
}

/* Navigation / bottom tabs */
.bottom-nav,
.driver-bottom-nav,
nav[class*="bottom"]{
  background:rgba(255,255,255,.96) !important;
  border-top:1px solid var(--ride-border) !important;
  backdrop-filter:blur(18px) !important;
  -webkit-backdrop-filter:blur(18px) !important;
}

/* Mobile tuning */
@media(max-width:600px){

  body:has(.driver-trip-card) .leaflet-container,
  body:has(.driver-ride-card) .leaflet-container,
  body:has(.ride-status-card) .leaflet-container{
    height:55vh !important;
    min-height:400px !important;
  }

  .driver-trip-card,
  .driver-ride-card,
  .ride-status-card,
  .waiting-card{
    width:calc(100% - 16px) !important;
    margin:-28px 8px 82px !important;
    padding:18px 16px 20px !important;
    border-radius:25px !important;
  }

  .driver-trip-card h1,
  .driver-trip-card h2,
  .driver-ride-card h1,
  .driver-ride-card h2,
  .ride-status-card h1,
  .ride-status-card h2{
    font-size:24px !important;
  }
}


/* ===== RIDE RIDE — PROFESSIONAL DRIVER HOME ===== */

.rr-request-panel{
  position:relative;
  z-index:20;
  width:100%;
  padding:18px 18px 26px;
  background:#fff;
  color:#111827;
  border-radius:28px 28px 0 0;
  box-shadow:0 -10px 35px rgba(15,23,42,.10);
}

.rr-request-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:16px;
}

.rr-request-header h2{
  margin:3px 0 0;
  font-size:24px;
  line-height:1.1;
  font-weight:750;
  letter-spacing:-.5px;
  color:#111827;
}

.rr-eyebrow{
  display:block;
  color:#3b82f6;
  font-size:11px;
  font-weight:800;
  letter-spacing:1.4px;
}

.rr-request-count{
  display:grid;
  place-items:center;
  min-width:38px;
  height:38px;
  padding:0 12px;
  border-radius:19px;
  background:#eef6ff;
  color:#2563eb;
  font-size:16px;
  font-weight:800;
}

.rr-looking{
  display:flex;
  align-items:center;
  gap:14px;
  width:100%;
  min-height:82px;
  padding:17px 18px;
  background:#f7f9fc;
  border:1px solid #e6ebf2;
  border-radius:20px;
}

.rr-looking-dot{
  width:14px;
  height:14px;
  flex:0 0 14px;
  border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 7px rgba(34,197,94,.12);
}

.rr-looking strong{
  display:block;
  margin-bottom:3px;
  color:#111827;
  font-size:17px;
  font-weight:750;
}

.rr-looking small{
  display:block;
  color:#667085;
  font-size:14px;
  line-height:1.3;
}

/* Softer Ride Ride blue instead of harsh dark blue */
:root{
  --rr-blue:#3b82f6;
  --rr-blue-dark:#2563eb;
  --rr-soft-blue:#eff6ff;
}

/* Mobile driver screen */
@media(max-width:768px){
  .rr-request-panel{
    padding:18px 16px 24px;
    border-radius:26px 26px 0 0;
  }
}
