/* ══════════════════════════════════════════════════════════════════════
   QR Rental — admin test mode styles
   Scoped with `.rr-` prefix so nothing leaks into the rest of the app.
   ══════════════════════════════════════════════════════════════════════ */

.rr-modal-bg{
  position:fixed; inset:0; z-index:10500;
  background:rgba(7,12,20,0.86); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center;
  padding:16px; overflow-y:auto;
  animation:rr-fade-in .18s ease-out;
}
@keyframes rr-fade-in{ from{opacity:0} to{opacity:1} }

.rr-card{
  background:linear-gradient(160deg,#11161f 0%,#0a0e15 100%);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:18px;
  padding:28px 22px 22px;
  width:100%; max-width:420px;
  color:#e8edf6;
  box-shadow:0 24px 60px rgba(0,0,0,0.6);
  position:relative;
}

.rr-step-indicator{
  font-size:11px; letter-spacing:0.12em; text-transform:uppercase;
  color:#7e8aa3; margin-bottom:10px;
}

.rr-title{
  font-size:24px; font-weight:800; margin:0 0 6px;
  color:#ffffff; letter-spacing:-0.01em;
}

.rr-sub{
  font-size:14px; line-height:1.5; color:#9aa6bf; margin:0 0 16px;
}

.rr-emoji{ font-size:42px; text-align:center; margin-bottom:6px; }
.rr-emoji-big{ font-size:64px; margin-bottom:12px; }

/* Duration cards */
.rr-dur-card{
  display:flex; justify-content:space-between; align-items:center;
  width:100%; padding:16px 18px; margin-bottom:10px;
  background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08);
  border-radius:12px; color:#e8edf6; cursor:pointer;
  font:inherit; -webkit-tap-highlight-color:transparent;
  transition:background .14s, border-color .14s, transform .08s;
}
.rr-dur-card:hover{ background:rgba(0,229,160,0.08); border-color:rgba(0,229,160,0.4); }
.rr-dur-card:active{ transform:scale(0.98); }
.rr-dur-label{ font-size:16px; font-weight:600; }
.rr-dur-price{ font-size:20px; font-weight:800; color:#00e5a0; }

/* Pay-per-minute card — visually distinct, sits at top */
.rr-dur-card.rr-dur-ppm{
  flex-direction:column; align-items:flex-start;
  padding:14px 18px 12px;
  background:linear-gradient(135deg,rgba(99,102,241,0.16) 0%,rgba(34,211,238,0.10) 100%);
  border:1px solid rgba(129,140,248,0.5);
  margin-bottom:14px;
}
.rr-dur-card.rr-dur-ppm:hover{
  background:linear-gradient(135deg,rgba(99,102,241,0.22) 0%,rgba(34,211,238,0.14) 100%);
  border-color:rgba(129,140,248,0.8);
}
.rr-dur-ppm-top{
  display:flex; justify-content:space-between; align-items:center;
  width:100%; margin-bottom:4px;
}
.rr-dur-ppm-badge{
  font-size:10px; font-weight:800; letter-spacing:0.1em;
  padding:3px 7px; border-radius:999px;
  background:rgba(129,140,248,0.3); color:#c7d2fe;
}
.rr-dur-ppm-caption{
  font-size:12px; color:#a5b4fc; font-weight:500;
}
.rr-dur-divider{
  text-align:center; font-size:11px; letter-spacing:0.1em;
  text-transform:uppercase; color:#5b6478;
  margin:6px 0 12px; position:relative;
}
.rr-dur-divider::before,
.rr-dur-divider::after{
  content:''; position:absolute; top:50%; width:30%;
  border-top:1px solid rgba(255,255,255,0.06);
}
.rr-dur-divider::before{ left:0; }
.rr-dur-divider::after{ right:0; }

/* Price rows on confirmation step */
.rr-price-row{
  display:flex; justify-content:space-between; padding:8px 0;
  font-size:15px; color:#cdd5e6;
  border-bottom:1px solid rgba(255,255,255,0.05);
}
.rr-price-row.rr-muted{ color:#7e8aa3; font-size:13px; }
.rr-price-row.rr-total{
  font-weight:800; font-size:18px; color:#ffffff;
  border-bottom:none; padding-top:14px;
}

/* Buttons */
.rr-btn-primary{
  display:block; width:100%; margin-top:14px; padding:15px 16px;
  background:#00e5a0; color:#0a0e15; border:none; border-radius:12px;
  font-size:16px; font-weight:800; cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:transform .08s, background .12s;
}
.rr-btn-primary:hover{ background:#22f0b3; }
.rr-btn-primary:active{ transform:scale(0.98); }
.rr-btn-primary:disabled{ background:#1f2a3a; color:#7e8aa3; cursor:wait; }

.rr-btn-secondary{
  display:block; width:100%; margin-top:8px; padding:13px 16px;
  background:transparent; color:#9aa6bf;
  border:1px solid rgba(255,255,255,0.1); border-radius:12px;
  font-size:14px; font-weight:600; cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.rr-btn-secondary:hover{ background:rgba(255,255,255,0.04); }

.rr-btn-link{
  display:block; width:100%; margin-top:10px; padding:8px;
  background:transparent; color:#7e8aa3;
  border:none; font-size:13px; cursor:pointer;
  text-decoration:underline; -webkit-tap-highlight-color:transparent;
}

/* Test-mode banner */
.rr-test-banner{
  margin-top:16px; padding:8px 12px;
  background:rgba(245,158,11,0.1); border:1px solid rgba(245,158,11,0.3);
  border-radius:8px; color:#fbbf24;
  font-size:11px; font-weight:600; text-align:center;
  letter-spacing:0.04em;
}

/* Photo preview */
.rr-photo-preview{
  margin-top:14px; border-radius:12px; overflow:hidden;
  background:rgba(255,255,255,0.04); min-height:0;
  position:relative;
}
.rr-photo-preview img{
  width:100%; height:auto; display:block;
}
.rr-photo-preview:empty{ display:none; }

/* Background-upload pip — shown while Firebase Storage put() is in flight.
   Sits over the photo preview without blocking the auto-advance. */
.rr-photo-preview.rr-photo-uploading::after{
  content:'Uploading\2026';
  position:absolute; right:8px; bottom:8px;
  padding:4px 10px; border-radius:999px;
  background:rgba(0,0,0,0.65); color:#fff;
  font-size:11px; font-weight:600; letter-spacing:0.02em;
  display:flex; align-items:center; gap:6px;
  pointer-events:none;
}
.rr-photo-preview.rr-photo-uploading::before{
  content:''; position:absolute; right:84px; bottom:13px;
  width:10px; height:10px; border-radius:50%;
  border:2px solid rgba(255,255,255,0.3); border-top-color:#fff;
  animation:rrSpin 0.8s linear infinite;
  pointer-events:none;
}
@keyframes rrSpin{ to{ transform:rotate(360deg); } }

/* Stripe payment step — PaymentRequestButton + card element side by side. */
.rr-pay-prb{ margin:14px 0 0; min-height:48px; }
.rr-pay-divider{
  margin:16px 0 12px; text-align:center;
  font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
  color:rgba(255,255,255,0.4);
  position:relative;
}
.rr-pay-divider::before, .rr-pay-divider::after{
  content:''; position:absolute; top:50%; width:35%; height:1px;
  background:rgba(255,255,255,0.12);
}
.rr-pay-divider::before{ left:0; }
.rr-pay-divider::after{ right:0; }
.rr-pay-card-wrap{ margin-top:14px; }
.rr-pay-card-element{
  padding:14px 12px; margin-bottom:10px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.1); border-radius:10px;
}
.rr-pay-status{
  margin:10px 0; min-height:18px;
  font-size:13px; color:rgba(255,255,255,0.7);
}
.rr-pay-status-ok{ color:#22f0b3; }
.rr-pay-status-err{ color:#fca5a5; }

/* Admin chat — `photos TC-001` thumb row */
.rr-chat-photo-row{
  display:flex; gap:8px; margin-top:10px;
}
.rr-chat-photo-thumb{
  flex:1; min-width:0; text-align:center;
  font-size:11px; color:rgba(255,255,255,0.65);
}
.rr-chat-photo-thumb img{
  width:100%; height:auto; display:block;
  border-radius:8px; cursor:zoom-in;
  background:rgba(255,255,255,0.04);
  margin-bottom:4px;
}
.rr-chat-photo-empty{
  padding:18px 10px; border:1px dashed rgba(255,255,255,0.15);
  border-radius:8px; opacity:0.6;
}

/* `qr TC-XXX` admin command — inline 96px preview + meta strip */
.rr-chat-qr-row{
  display:flex; gap:12px; align-items:center; margin-top:10px;
}
.rr-chat-qr-thumb{
  width:96px; height:96px; flex:0 0 96px;
  background:#fff; padding:6px; border-radius:6px;
  cursor:zoom-in;
  box-shadow:0 2px 8px rgba(0,0,0,0.3);
}
.rr-chat-qr-meta{
  flex:1; min-width:0;
  font-size:12px; color:rgba(255,255,255,0.75);
  line-height:1.5;
}
.rr-chat-qr-meta small{ color:rgba(255,255,255,0.45); font-size:11px; }

/* Lightbox — fullscreen image viewer for photos and QR codes.
   Higher z-index than the rental modal (1000) so it overlays even
   the active flow. Click outside or Escape to dismiss. */
.rr-lightbox{
  position:fixed; inset:0; z-index:9999;
  background:rgba(0,0,0,0.92);
  display:flex; align-items:center; justify-content:center;
  padding:40px 20px;
  animation:rrLightboxFade 0.18s ease-out;
}
@keyframes rrLightboxFade{ from{ opacity:0; } to{ opacity:1; } }
.rr-lightbox-inner{
  max-width:min(900px, 100%); max-height:100%;
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.rr-lightbox img{
  max-width:100%; max-height:75vh; object-fit:contain;
  background:#fff; border-radius:8px;
  box-shadow:0 20px 60px rgba(0,0,0,0.6);
}
/* Crisp pixels only for QR codes — keeps modules sharp when upscaled.
   On photos this would look blocky, so we opt-in via the qr class. */
.rr-lightbox.rr-lightbox-qr img{
  image-rendering:pixelated;
  image-rendering:crisp-edges;
}
.rr-lightbox-caption{
  color:rgba(255,255,255,0.85); font-size:14px;
  text-align:center; max-width:80vw;
}
.rr-lightbox-actions{
  display:flex; gap:10px;
}
.rr-lightbox-btn{
  display:inline-flex; align-items:center;
  padding:10px 20px; border-radius:999px;
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.2);
  color:#fff; font-size:14px; font-weight:600;
  text-decoration:none; cursor:pointer;
}
.rr-lightbox-btn:hover{
  background:rgba(255,255,255,0.18);
}
.rr-lightbox-close{
  font-family:inherit;
}

/* Intro video placeholder (real video swap-in later) */
.rr-video-placeholder{
  margin-top:12px; padding:24px 12px;
  background:rgba(99,102,241,0.06); border:1px dashed rgba(99,102,241,0.3);
  border-radius:12px; color:#a5b4fc;
  font-size:12px; text-align:center; line-height:1.4;
}

/* Combo code reveal */
.rr-combo-box{
  margin:14px 0 18px; padding:18px;
  background:linear-gradient(135deg,rgba(0,229,160,0.12) 0%,rgba(34,240,179,0.06) 100%);
  border:1px solid rgba(0,229,160,0.3); border-radius:14px;
  text-align:center;
}
.rr-combo-label{
  font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
  color:#5bd1aa; margin-bottom:6px;
}
.rr-combo-digits{
  font-size:42px; font-weight:800; letter-spacing:0.16em;
  color:#00e5a0; font-variant-numeric:tabular-nums;
}

/* Floating active-rental pill at top of map */
.rr-pill{
  position:fixed; top:12px; left:50%; transform:translateX(-50%);
  z-index:8500;
  display:flex; align-items:center; gap:10px;
  padding:9px 8px 9px 14px;
  background:rgba(11,16,26,0.92); backdrop-filter:blur(10px);
  border:1px solid rgba(0,229,160,0.4); border-radius:999px;
  color:#e8edf6; font-size:14px; font-weight:700;
  box-shadow:0 6px 20px rgba(0,229,160,0.2);
  animation:rr-pill-in .25s ease-out;
}
@keyframes rr-pill-in{ from{opacity:0;transform:translate(-50%,-10px)} to{opacity:1;transform:translate(-50%,0)} }
.rr-pill-icon{ font-size:16px; }
.rr-pill-time{ font-variant-numeric:tabular-nums; min-width:62px; text-align:left; }
.rr-pill-end{
  background:#00e5a0; color:#0a0e15; border:none;
  padding:6px 14px; border-radius:999px;
  font-size:13px; font-weight:800; cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.rr-pill-end:active{ transform:scale(0.96); }

.rr-pill.rr-pill-amber{ border-color:rgba(245,158,11,0.6); box-shadow:0 6px 20px rgba(245,158,11,0.25); }
.rr-pill.rr-pill-amber .rr-pill-time{ color:#fbbf24; }
.rr-pill.rr-pill-red{ border-color:rgba(239,68,68,0.7); box-shadow:0 6px 20px rgba(239,68,68,0.3); }
.rr-pill.rr-pill-red .rr-pill-time{ color:#fca5a5; }
.rr-pill.rr-pill-overtime{ background:rgba(239,68,68,0.18); border-color:#ef4444; }
.rr-pill.rr-pill-overtime .rr-pill-time{ color:#ffffff; }

/* PPM pill variant: includes live cost field */
.rr-pill.rr-pill-ppm{ border-color:rgba(129,140,248,0.5); box-shadow:0 6px 20px rgba(99,102,241,0.25); }
.rr-pill.rr-pill-ppm .rr-pill-time{ color:#c7d2fe; min-width:auto; }
.rr-pill-cost{
  font-variant-numeric:tabular-nums;
  font-size:15px; font-weight:800; color:#ffffff;
  padding:0 10px 0 4px; border-left:1px solid rgba(255,255,255,0.12);
  margin-left:4px;
}
.rr-pill-cost.rr-pill-cost-cap{
  color:#fbbf24; /* yellow when cap is reached — rider is now "free" */
}

/* Summary rows on the end-of-ride screen */
.rr-summary-row{
  display:flex; justify-content:space-between;
  padding:8px 0; font-size:14px; color:#cdd5e6;
  border-bottom:1px solid rgba(255,255,255,0.05);
}
.rr-summary-row.rr-muted{ color:#7e8aa3; font-size:12px; }
.rr-summary-row.rr-total{
  font-weight:800; font-size:18px; color:#ffffff;
  border-bottom:none; padding-top:14px;
}

/* ── Group unlock: bike chips on the confirmation step ─────────────── */
.rr-bike-chips{
  display:flex; flex-wrap:wrap; gap:6px;
  margin:2px 0 10px;
}
.rr-bike-chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 10px;
  background:rgba(0,229,160,0.10);
  border:1px solid rgba(0,229,160,0.35);
  border-radius:999px;
  font-size:13px; font-weight:700; color:#00e5a0;
}
.rr-bike-chip-primary{
  background:rgba(0,229,160,0.18);
  border-color:rgba(0,229,160,0.55);
  color:#22f0b3;
}
.rr-bike-chip-tag{
  font-size:9px; font-weight:700; letter-spacing:0.08em;
  text-transform:uppercase; color:#5bd1aa; opacity:0.8;
}
.rr-bike-chip-x{
  background:transparent; border:none; color:#7e8aa3;
  font-size:16px; line-height:1; cursor:pointer;
  padding:0 0 0 2px; -webkit-tap-highlight-color:transparent;
}
.rr-bike-chip-x:hover{ color:#fca5a5; }

.rr-btn-add-bike{
  display:block; width:100%; padding:11px 14px;
  margin:0 0 14px;
  background:rgba(99,102,241,0.08);
  border:1px dashed rgba(129,140,248,0.4);
  border-radius:10px;
  color:#a5b4fc; font-size:14px; font-weight:600;
  cursor:pointer; -webkit-tap-highlight-color:transparent;
}
.rr-btn-add-bike:hover{
  background:rgba(99,102,241,0.14);
  border-color:rgba(129,140,248,0.7);
}

/* Bike picker (Add another bike modal) */
.rr-bike-picker-list{
  margin-top:8px; max-height:280px; overflow-y:auto;
}
.rr-bike-picker-row{
  display:flex; justify-content:space-between; align-items:center;
  width:100%; padding:14px 16px; margin-bottom:8px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08); border-radius:10px;
  color:#e8edf6; cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.rr-bike-picker-row:hover{
  background:rgba(0,229,160,0.08); border-color:rgba(0,229,160,0.4);
}
.rr-bike-picker-id{ font-weight:700; font-size:15px; }
.rr-bike-picker-status{ font-size:12px; color:#9aa6bf; }

/* Group combo grid on the success step */
.rr-combo-group{
  display:grid; grid-template-columns:1fr 1fr; gap:8px;
  margin:14px 0 18px;
}
.rr-combo-box-small{
  margin:0; padding:12px;
}
.rr-combo-box-small .rr-combo-label{
  font-size:10px; letter-spacing:0.1em;
}
.rr-combo-digits-small{
  font-size:24px; font-weight:800; letter-spacing:0.12em;
  color:#00e5a0; font-variant-numeric:tabular-nums; text-align:center;
}

/* ── Pause: pill button + paused styling ────────────────────────────── */
.rr-pill-pause{
  background:rgba(255,255,255,0.08); color:#e8edf6;
  border:none; padding:6px 10px;
  border-radius:999px; font-size:13px; font-weight:700;
  cursor:pointer; -webkit-tap-highlight-color:transparent;
  margin-right:2px;
}
.rr-pill-pause:hover{ background:rgba(255,255,255,0.14); }
.rr-pill-bikes{
  font-size:11px; font-weight:800;
  padding:2px 7px; background:rgba(255,255,255,0.10);
  border-radius:999px; color:#cdd5e6;
}
.rr-pill.rr-pill-paused{
  border-color:rgba(99,102,241,0.6) !important;
  background:rgba(11,16,26,0.94);
  box-shadow:0 6px 20px rgba(99,102,241,0.25);
}
.rr-pill.rr-pill-paused .rr-pill-time{ color:#a5b4fc !important; }
.rr-pill.rr-pill-paused .rr-pill-cost{ color:#a5b4fc; }

/* ── Post-ride summary hero ─────────────────────────────────────────── */
.rr-summary-hero{
  text-align:center; padding:6px 0 16px;
  border-bottom:1px solid rgba(255,255,255,0.06);
  margin-bottom:14px;
}
.rr-summary-emoji{ font-size:52px; margin-bottom:4px; }
.rr-summary-bike-line{
  font-size:12px; color:#7e8aa3; letter-spacing:0.04em;
  text-transform:uppercase; font-weight:700; margin-bottom:10px;
}
.rr-summary-time{
  font-size:54px; font-weight:900; color:#ffffff;
  letter-spacing:-0.02em; font-variant-numeric:tabular-nums;
  line-height:1; margin-bottom:6px;
}
.rr-summary-period{
  font-size:14px; color:#9aa6bf; margin-bottom:14px;
}
.rr-stat-savings{
  display:inline-block;
  background:linear-gradient(135deg,rgba(0,229,160,0.18),rgba(34,211,238,0.10));
  border:1px solid rgba(0,229,160,0.4); border-radius:999px;
  padding:8px 16px; font-size:14px; font-weight:700;
  color:#00e5a0;
}
.rr-receipt{
  background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.06);
  border-radius:10px; padding:10px 14px; margin-bottom:14px;
}

/* ── "You hit the cap" banner ───────────────────────────────────────
   Slides in below the timer pill the moment a PPM rental reaches its
   daily cap. Auto-fades after 10s. Tappable × to dismiss early. */
.rr-cap-banner{
  position:fixed; top:64px; left:50%; transform:translateX(-50%);
  z-index:8550; max-width:340px;
  display:flex; align-items:center; gap:10px;
  padding:12px 14px;
  background:linear-gradient(135deg, rgba(16,185,129,0.95) 0%, rgba(0,229,160,0.95) 100%);
  border:1px solid rgba(255,255,255,0.25);
  border-radius:14px;
  color:#0a0e15;
  box-shadow:0 10px 30px rgba(0,229,160,0.35);
  animation:rr-cap-in .3s cubic-bezier(.22,1.2,.36,1);
  transition:opacity .35s, transform .35s;
}
.rr-cap-banner.rr-cap-banner-fading{
  opacity:0; transform:translateX(-50%) translateY(-10px);
}
@keyframes rr-cap-in{
  from { opacity:0; transform:translateX(-50%) translateY(-14px); }
  to   { opacity:1; transform:translateX(-50%) translateY(0); }
}
.rr-cap-banner-icon{ font-size:24px; line-height:1; }
.rr-cap-banner-text{ flex:1; }
.rr-cap-banner-title{ font-size:14px; font-weight:800; line-height:1.2; }
.rr-cap-banner-sub  { font-size:12px; line-height:1.35; opacity:0.85; margin-top:2px; }
.rr-cap-banner-x{
  background:transparent; border:none; color:#0a0e15;
  font-size:20px; line-height:1; cursor:pointer;
  padding:2px 6px; opacity:0.7;
  -webkit-tap-highlight-color:transparent;
}
.rr-cap-banner-x:hover{ opacity:1; }

@media (max-width:480px){
  .rr-combo-group{ grid-template-columns:1fr; }
  .rr-summary-time{ font-size:42px; }
  .rr-cap-banner{ top:58px; max-width:calc(100vw - 24px); }
}

/* ── Fleet status pill (admin only) ─────────────────────────────────
   Top-right corner. Tap it to jump into the chat "fleet" command. */
.rr-fleet-pill{
  position:fixed; top:12px; right:12px; z-index:8450;
  display:flex; align-items:center; gap:6px;
  padding:7px 10px;
  background:rgba(11,16,26,0.92); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,0.1); border-radius:999px;
  cursor:pointer; -webkit-tap-highlight-color:transparent;
  box-shadow:0 4px 14px rgba(0,0,0,0.4);
  transition:transform .12s, border-color .14s;
}
.rr-fleet-pill:hover{ border-color:rgba(0,229,160,0.5); }
.rr-fleet-pill:active{ transform:scale(0.96); }
.rr-fleet-icon{ font-size:14px; line-height:1; }
.rr-fleet-dot{
  display:inline-block; width:8px; height:8px; border-radius:50%;
  background:#5b6478; /* unknown */
}
.rr-fleet-dot-available  { background:#10b981; box-shadow:0 0 6px rgba(16,185,129,0.5); }
.rr-fleet-dot-rented     { background:#ef4444; box-shadow:0 0 6px rgba(239,68,68,0.5); }
.rr-fleet-dot-maintenance{ background:#fbbf24; box-shadow:0 0 6px rgba(251,191,36,0.5); }

/* ── Chat-system replies (admin command output) ─────────────────────
   Reuses the existing .lc-msg-agent class but adds a "system" accent so
   admins can visually separate command output from real Coqui replies. */
.rr-chat-system .lc-msg-bubble{
  background:linear-gradient(135deg,rgba(0,229,160,0.10),rgba(34,211,238,0.06)) !important;
  border:1px solid rgba(0,229,160,0.25) !important;
  font-size:13px; line-height:1.5;
}
.rr-chat-system code{
  background:rgba(0,0,0,0.3); padding:1px 6px; border-radius:4px;
  font-size:12px; color:#a7f3d0;
}
.rr-chat-action-btn{
  margin-left:6px; padding:3px 9px;
  background:rgba(239,68,68,0.18); border:1px solid rgba(239,68,68,0.4);
  border-radius:6px; color:#fca5a5;
  font-size:11px; font-weight:700; cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.rr-chat-action-btn:hover{ background:rgba(239,68,68,0.28); }

/* Mobile tweaks */
@media (max-width:480px){
  .rr-card{ padding:22px 18px 18px; }
  .rr-title{ font-size:21px; }
  .rr-combo-digits{ font-size:36px; }
  .rr-fleet-pill{ top:8px; right:8px; padding:6px 9px; }
}
