/* لوحة الكابتن — تصميم تطبيق سائق حديث */
.screen.captain-hub {
  --cap-hub-header-h: calc(50px + env(safe-area-inset-top, 0px));
  background: #f4f6f8;
  display: none;
  overflow: hidden;
  z-index: 6;
  flex-direction: column;
  position: relative;
  height: 100dvh;
  min-height: 100dvh;
  max-height: 100dvh;
}

.screen.captain-hub.on {
  display: flex;
}

/* ── هيدر عائم — أيقونات فقط بدون شريط خلفي ── */
.cap-hub-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  box-sizing: border-box;
  padding: max(10px, env(safe-area-inset-top)) 14px 0;
  background: transparent;
  border: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 12;
  direction: ltr;
  pointer-events: none;
  overflow: visible;
}

.cap-hub-bar > * {
  pointer-events: auto;
}

.cap-hub-driver-meta {
  display: none;
}

.cap-hub-driver {
  direction: rtl;
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.cap-hub-back,
.cap-hub-profile,
.cap-hub-stats-btn,
.cap-hub-history,
.cap-hub-home {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  display: grid;
  place-items: center;
  color: #485465;
  flex-shrink: 0;
  border: none;
  box-shadow: 0 4px 16px rgba(18, 20, 23, 0.14);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.cap-hub-bar-spacer {
  flex: 1;
  min-width: 8px;
  pointer-events: none;
}

.cap-hub-profile {
  padding: 0;
  overflow: hidden;
  background: transparent;
  box-shadow: none;
}

.cap-hub-profile .cap-hub-avatar {
  box-shadow: 0 4px 16px rgba(18, 20, 23, 0.14);
}

.cap-hub-sub-banner {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
  margin: var(--cap-hub-header-h) 12px 8px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #fff4f4;
  border: 1px solid #ffd5d5;
  color: #9b1c1c;
  flex-shrink: 0;
  position: relative;
  z-index: 11;
}

.cap-hub-sub-banner[hidden] {
  display: none !important;
  margin: 0;
}

.cap-hub-sub-icon {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: #ffe1e1;
  display: grid;
  place-items: center;
  font-weight: 900;
  flex-shrink: 0;
}

.cap-hub-sub-copy {
  flex: 1 1 auto;
  min-width: 0;
}

.cap-hub-sub-banner p {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
}

.cap-hub-sub-support {
  display: inline-block;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 900;
  color: #9b1c1c;
  text-decoration: underline;
}

.cap-hub-go.sub-locked {
  opacity: 0.45;
  pointer-events: none;
}

.screen.captain-hub.sub-inactive .cap-hub-map-pulse.on {
  opacity: 0.35;
}

.cap-hub-back:active,
.cap-hub-profile:active,
.cap-hub-stats-btn:active,
.cap-hub-history:active,
.cap-hub-home:active {
  transform: scale(0.96);
}

.cap-hub-back:active {
  background: #e8ecf0;
}

.cap-hub-avatar {
  width: 100%;
  height: 100%;
  border-radius: 14px;
  background: linear-gradient(145deg, #ecfdf5, #fff);
  border: 1px solid rgba(25, 169, 116, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px 3px;
  flex-shrink: 0;
  box-sizing: border-box;
}

.cap-hub-avatar-name {
  font-size: 9px;
  font-weight: 900;
  line-height: 1.2;
  color: #15803d;
  text-align: center;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
  max-width: 100%;
}

.cap-hub-avatar--icon .ui-icon--fi {
  font-size: 24px;
  color: #15803d;
  line-height: 1;
}

.cap-hub-profile:active .cap-hub-avatar {
  background: linear-gradient(145deg, #d1fae5, #ecfdf5);
  transform: scale(0.96);
}

/* legacy hub layout (patchHubDom) */
.cap-hub-driver-text {
  min-width: 0;
}

.cap-hub-driver-text strong {
  display: block;
  font-size: 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cap-hub-driver-text span {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  color: #747b86;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── مسرح الخريطة — يملأ الشاشة ── */
.cap-hub-stage {
  position: relative;
  flex: 1;
  height: auto;
  min-height: 0;
  max-height: none;
  overflow: hidden;
  background: #e8edf2;
  z-index: 1;
}

.cap-hub-sub-banner[hidden] + .cap-hub-stage {
  margin-top: 0;
}

.cap-hub-sub-banner[hidden] + .cap-hub-stage .cap-hub-stage-chip {
  top: calc(var(--cap-hub-header-h) + 10px);
}

.cap-hub-map-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 30% 40%, rgba(25, 169, 116, 0.08) 0%, transparent 55%),
    radial-gradient(circle at 70% 60%, rgba(214, 161, 29, 0.06) 0%, transparent 50%),
    linear-gradient(180deg, #e4eaf0 0%, #d8e0e8 100%);
}

.cap-hub-map-grid {
  position: absolute;
  inset: 0;
  opacity: 0.35;
  background-image:
    linear-gradient(rgba(18, 20, 23, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 20, 23, 0.04) 1px, transparent 1px);
  background-size: 28px 28px;
}

.cap-hub-map-pulse {
  position: absolute;
  left: 50%;
  top: 42%;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  border-radius: 50%;
  background: #19a974;
  box-shadow: 0 0 0 6px rgba(25, 169, 116, 0.2);
  opacity: 0;
  transition: opacity 0.3s;
}

.cap-hub-map-pulse.on {
  opacity: 1;
  animation: capMapPulse 2.4s ease infinite;
}

@media (prefers-reduced-motion: reduce) {
  .cap-hub-map-pulse.on {
    animation: none;
  }
  .cap-hub-drawer {
    animation: none;
  }
}

@keyframes capMapPulse {
  0%, 100% { box-shadow: 0 0 0 6px rgba(25, 169, 116, 0.22); }
  50% { box-shadow: 0 0 0 18px rgba(25, 169, 116, 0); }
}

.cap-hub-stage-chip {
  position: absolute;
  top: 14px;
  right: 14px;
  left: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.8);
  box-shadow: 0 8px 28px rgba(18, 20, 23, 0.08);
  z-index: 1;
}

.cap-hub-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #94a3b8;
  flex-shrink: 0;
}

.cap-hub-dot.on {
  background: #22c55e;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.25);
}

.cap-hub-stage-chip b {
  display: block;
  font-size: 13px;
  color: #121417;
}

.cap-hub-stage-chip small {
  display: block;
  font-size: 10px;
  color: #747b86;
  font-weight: 700;
  margin-top: 1px;
}

.cap-hub-go {
  position: absolute;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%);
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: #151719;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  box-shadow:
    0 16px 40px rgba(18, 20, 23, 0.28),
    0 0 0 8px rgba(255, 255, 255, 0.85);
  transition: transform 0.15s, background 0.2s, box-shadow 0.2s;
  z-index: 2;
  border: none;
}

.cap-hub-bar .cap-hub-go,
.cap-hub-go--header,
#captainHubToggle:not(.cap-hub-live):not(.cap-hub-power-btn) {
  position: relative;
  left: auto;
  bottom: auto;
  transform: none;
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  display: flex !important;
  visibility: visible;
  opacity: 1;
  box-shadow: 0 6px 20px rgba(18, 20, 23, 0.24);
  gap: 0;
  padding: 0;
  z-index: 2;
}

.cap-hub-bar .cap-hub-go:active,
.cap-hub-go--header:active,
#captainHubToggle:not(.cap-hub-live):active {
  transform: scale(0.96);
}

.cap-hub-bar .cap-hub-go .cap-hub-go-label,
.cap-hub-go--header .cap-hub-go-label,
#captainHubToggle:not(.cap-hub-live) .cap-hub-go-label {
  font-size: 12px;
  font-weight: 900;
  line-height: 1.05;
}

.cap-hub-bar .cap-hub-go .cap-hub-go-hint,
.cap-hub-go--header .cap-hub-go-hint,
#captainHubToggle:not(.cap-hub-live) .cap-hub-go-hint {
  display: none;
}

.cap-hub-bar .cap-hub-go .cap-hub-go-ring,
.cap-hub-go--header .cap-hub-go-ring,
#captainHubToggle:not(.cap-hub-live) .cap-hub-go-ring {
  inset: -4px;
}

.cap-hub-bar .cap-hub-go.on,
.cap-hub-go--header.on,
#captainHubToggle:not(.cap-hub-live).on {
  box-shadow: 0 6px 22px rgba(34, 197, 94, 0.42);
}

.cap-hub-go--header {
  position: relative;
  left: auto;
  bottom: auto;
  transform: none;
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  box-shadow: 0 6px 20px rgba(18, 20, 23, 0.22);
  gap: 0;
  padding: 0;
}

.cap-hub-go--header:active {
  transform: scale(0.96);
}

.cap-hub-go--header .cap-hub-go-label {
  font-size: 12px;
  font-weight: 900;
  line-height: 1.05;
}

.cap-hub-go--header .cap-hub-go-hint {
  display: none;
}

.cap-hub-go--header .cap-hub-go-ring {
  inset: -4px;
}

.cap-hub-go--header.on {
  box-shadow: 0 6px 22px rgba(34, 197, 94, 0.38);
}

.cap-hub-go:active:not(.cap-hub-go--header) {
  transform: translateX(-50%) scale(0.96);
}

.cap-hub-go.on {
  background: linear-gradient(145deg, #22c55e 0%, #16a34a 100%);
  box-shadow:
    0 16px 40px rgba(34, 197, 94, 0.35),
    0 0 0 8px rgba(255, 255, 255, 0.9);
}

.cap-hub-go-ring {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 2px solid rgba(34, 197, 94, 0.35);
  opacity: 0;
}

.captain-hub.is-online .cap-hub-go.on .cap-hub-go-ring {
  opacity: 0.45;
}

.cap-hub-go-label {
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
}

.cap-hub-go-hint {
  font-size: 9px;
  font-weight: 800;
  opacity: 0.85;
  max-width: 80px;
  text-align: center;
  line-height: 1.3;
}

/* ── لوحة سفلية (قديمة — مُزالت) ── */
.cap-hub-sheet {
  display: none !important;
}

.cap-hub-stats--drawer {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 8px 18px 28px;
}

.cap-hub-stats--drawer .cap-hub-stat {
  padding: 16px 14px;
}

.cap-hub-stat-link {
  width: 100%;
  height: 48px;
  margin-top: 6px;
  border-radius: 14px;
  border: 1.5px solid #e2e8f0;
  background: #f8fafc;
  color: #121417;
  font-size: 14px;
  font-weight: 800;
}

.cap-hub-stat-link:active {
  background: #f1f5f9;
}

.cap-hub-drawer--stats {
  max-height: min(52vh, 420px);
}

.cap-hub-sheet-handle {
  width: 40px;
  height: 4px;
  margin: 4px auto 12px;
  border-radius: 999px;
  background: #e2e8f0;
}

.cap-hub-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}

.cap-hub-stat {
  padding: 12px 8px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid #eef1f5;
  text-align: center;
}

.cap-hub-stat strong {
  display: block;
  font-size: 18px;
  font-weight: 900;
  color: #121417;
  line-height: 1.1;
}

.cap-hub-stat span {
  display: block;
  margin-top: 4px;
  font-size: 10px;
  color: #94a3b8;
  font-weight: 800;
}

.cap-hub-queue-wrap {
  flex: 1;
  min-height: 0;
  display: none;
  flex-direction: column;
  overflow: hidden;
}

.cap-hub-queue-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  padding: 0 2px;
}

.cap-hub-queue-title strong {
  font-size: 16px;
}

.cap-hub-queue-count {
  min-width: 26px;
  height: 26px;
  padding: 0 8px;
  border-radius: 999px;
  background: #151719;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  display: grid;
  place-items: center;
}

.cap-hub-queue {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  -webkit-overflow-scrolling: touch;
}

.cap-hub-empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px 16px 32px;
  color: #94a3b8;
}

.cap-hub-empty-icon {
  margin-bottom: 12px;
  opacity: 0.7;
}

.cap-hub-empty strong {
  display: block;
  font-size: 15px;
  color: #64748b;
  margin-bottom: 6px;
}

.cap-hub-empty p {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.captain-hub.is-online .cap-hub-empty-icon {
  animation: capEmptyBob 2.5s ease infinite;
}

@keyframes capEmptyBob {
  50% { transform: translateY(-4px); }
}

/* ── بطاقة طلب ── */
.cap-hub-request {
  padding: 14px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid #e8eaee;
  box-shadow: 0 10px 28px rgba(18, 20, 23, 0.06);
  animation: capCardIn 0.28s ease both;
}

@keyframes capCardIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

.cap-hub-request-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.cap-hub-request-badge {
  padding: 4px 10px;
  border-radius: 999px;
  background: #ecfdf5;
  color: #15803d;
  font-size: 10px;
  font-weight: 900;
}

.cap-hub-request-price {
  font-size: 17px;
  font-weight: 900;
  color: #121417;
  direction: ltr;
}

.cap-hub-request-route p {
  display: grid;
  grid-template-columns: 12px 1fr;
  gap: 10px;
  align-items: start;
  margin: 0 0 8px;
  font-size: 13px;
  color: #121417;
  font-weight: 700;
  line-height: 1.4;
}

.cap-hub-request-route p i {
  width: 10px;
  height: 10px;
  margin-top: 4px;
  border-radius: 50%;
  background: #19a974;
  display: block;
}

.cap-hub-request-route p:last-child i {
  background: #d6a11d;
}

.cap-hub-cta {
  width: 100%;
  height: 50px;
  margin-top: 12px;
  border-radius: 16px;
  background: linear-gradient(145deg, #22c55e 0%, #16a34a 100%);
  color: #fff;
  font-size: 15px;
  font-weight: 900;
  box-shadow: 0 12px 28px rgba(34, 197, 94, 0.28);
}

.cap-hub-cta:active {
  transform: scale(0.99);
  background: #15803d;
}

.cap-hub-cta:disabled {
  opacity: 0.55;
}

/* ── كارت طلب — ينزلق من الأسفل ── */
.cap-hub-offer-panel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10;
  pointer-events: none;
  margin: 0;
  padding: 0;
}

.cap-hub-offer-panel:not([hidden]).cap-card-enter {
  pointer-events: auto;
  animation: capSheetUp 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.cap-hub-offer-panel:not([hidden]) {
  pointer-events: auto;
}

.cap-hub-offer-panel[hidden] {
  display: none !important;
}

.cap-hub-trip-stack {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: stretch;
  pointer-events: none;
}

.cap-hub-trip-stack > #captainHubCard {
  pointer-events: auto;
}

.cap-hub-trip-stack #captainHubCard {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  flex-shrink: 0;
}

.cap-hub-offer-card {
  margin: 0;
  padding: 10px 18px max(18px, env(safe-area-inset-bottom));
  border-radius: 28px 28px 0 0;
  background: #fff;
  color: #121417;
  box-shadow: 0 -2px 12px rgba(15, 23, 42, 0.03), 0 -20px 56px rgba(15, 23, 42, 0.05);
  border-top: 1px solid rgba(255, 255, 255, 0.95);
  max-height: min(42vh, 380px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.cap-hub-offer-handle {
  width: 42px;
  height: 4px;
  margin: 0 auto 14px;
  border-radius: 999px;
  background: #e2e8f0;
}

.cap-hub-offer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.cap-hub-offer-badge {
  padding: 5px 12px;
  border-radius: 999px;
  background: #ecfdf5;
  color: #15803d;
  font-size: 11px;
  font-weight: 900;
}

.cap-hub-offer-price {
  font-size: 22px;
  font-weight: 900;
  color: #121417;
  direction: ltr;
}

.cap-hub-offer-route {
  display: grid;
  gap: 0;
  margin-bottom: 10px;
}

.cap-hub-offer-stop {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
}

.cap-hub-offer-stop span {
  font-size: 11px;
  font-weight: 800;
  color: #94a3b8;
  margin-top: 2px;
}

.cap-hub-offer-stop b {
  font-size: 14px;
  font-weight: 800;
  color: #121417;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cap-hub-offer-stop--pick b {
  color: #15803d;
}

.cap-hub-offer-line {
  width: 2px;
  height: 14px;
  margin: 4px 18px 4px 0;
  border-radius: 999px;
  background: linear-gradient(180deg, #19a974 0%, #d6a11d 100%);
  justify-self: end;
}

.cap-hub-offer-meta {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
}

.cap-hub-offer-actions {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 12px;
  margin-top: 12px;
}

.cap-hub-offer-accept {
  min-height: 52px;
  padding: 0 18px;
  border-radius: 14px;
  border: none;
  background: linear-gradient(180deg, #34d97b 0%, #22c55e 100%);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
  box-shadow:
    0 10px 24px rgba(34, 197, 94, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
  transition:
    transform 0.18s ease,
    box-shadow 0.2s ease,
    opacity 0.2s ease;
}

.cap-hub-offer-accept:active {
  transform: scale(0.98);
  background: linear-gradient(180deg, #2ecf6a 0%, #16a34a 100%);
  box-shadow: 0 5px 14px rgba(34, 197, 94, 0.18);
}

.cap-hub-offer-accept:disabled {
  opacity: 0.55;
}

.cap-hub-offer-decline {
  min-height: 52px;
  padding: 0 14px;
  border-radius: 14px;
  border: 1px solid #e8ecf0;
  background: #fafbfc;
  color: #94a3b8;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.01em;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92);
  transition:
    transform 0.18s ease,
    background 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

.cap-hub-offer-decline:active {
  transform: scale(0.98);
  background: #f1f5f9;
  color: #64748b;
  border-color: #e2e8f0;
}

.cap-offer-lines {
  display: grid;
  gap: 12px;
  margin-bottom: 14px;
}

.cap-offer-line {
  display: grid;
  gap: 4px;
  margin: 0;
}

.cap-offer-line-label {
  font-size: 13px;
  font-weight: 800;
  color: #121417;
  line-height: 1.35;
}

.cap-offer-line-label--icon {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.cap-offer-line-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  flex-shrink: 0;
}

.cap-offer-line--pick .cap-offer-line-icon .ui-icon--fi {
  font-size: 20px;
  color: #15803d;
}

.cap-offer-line-value {
  font-size: 14px;
  font-weight: 700;
  color: #475569;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cap-offer-line--pick .cap-offer-line-value {
  color: #15803d;
}

.cap-offer-line--price .cap-offer-line-value {
  font-size: 20px;
  font-weight: 900;
  color: #121417;
  direction: ltr;
  text-align: right;
}

/* ── كارت طلب جديد — v2 ── */
.cap-offer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.cap-offer-head-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.cap-offer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  position: relative;
}

.cap-offer-close {
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid #eef1f5;
  border-radius: 12px;
  background: #f8fafc;
  color: #64748b;
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: transform 0.18s ease, background 0.18s ease;
}

.cap-offer-close:active {
  transform: scale(0.94);
  background: #f1f5f9;
  color: #475569;
}

.cap-trip-cancel {
  margin-inline-start: auto;
  padding: 6px 12px;
  border: 1px solid var(--2t-line, rgba(15, 23, 42, 0.08));
  border-radius: 999px;
  background: var(--2t-surface-2, #f3f5f7);
  color: var(--2t-danger, #e5484d);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  flex-shrink: 0;
  cursor: pointer;
  transition: transform 0.18s ease, background 0.18s ease;
}

.cap-trip-cancel:active {
  transform: scale(0.96);
  background: #eef1f4;
  color: #dc2626;
}

.cap-trip-cancel:disabled {
  opacity: 0.55;
  pointer-events: none;
}

.cap-offer-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.cap-offer-notice-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
}

.cap-offer-notice-icon .ui-icon--fi {
  font-size: 24px;
  color: #64748b;
  line-height: 1;
}

.cap-offer-notice-copy {
  min-width: 0;
}

.cap-offer-notice-title {
  display: block;
  font-size: 15px;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.25;
}

.cap-offer-vehicle {
  display: block;
  margin-top: 3px;
  font-size: 12px;
  font-weight: 600;
  color: #94a3b8;
  line-height: 1.2;
}

.cap-offer-badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--cap-green-soft, #ecfdf5);
  color: var(--cap-green-deep, #16a34a);
  font-size: 12px;
  font-weight: 900;
}

.cap-offer-vehicle {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 11px;
  font-weight: 800;
}

.cap-offer-notice .cap-offer-vehicle {
  display: block;
  margin-top: 3px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  color: #94a3b8;
}

.cap-offer-price {
  font-size: 22px;
  font-weight: 600;
  color: #64748b;
  letter-spacing: -0.03em;
  line-height: 1.15;
  direction: ltr;
  text-align: left;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}

.cap-offer-route {
  display: grid;
  gap: 0;
  border-radius: 16px;
  background: #fafbfc;
  border: 1px solid #eef1f5;
  overflow: hidden;
  font-family: var(--cap-ar-formal, "Noto Sans Arabic", system-ui, sans-serif);
}

.cap-offer-route-item {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 14px 16px;
}

.cap-offer-route-item--pick {
  border-bottom: 1px solid #eef1f5;
}

.cap-offer-route-marker {
  position: relative;
  display: flex;
  justify-content: center;
  padding-top: 2px;
}

.cap-offer-route-item--pick .cap-offer-route-marker::after {
  content: "";
  position: absolute;
  top: 15px;
  bottom: -15px;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, #22c55e 0%, #d6a11d 100%);
}

.cap-offer-stop {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
}

.cap-offer-stop-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}

.cap-offer-route-item--pick .cap-offer-stop-dot {
  background: #22c55e;
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.14);
}

.cap-offer-route-item--dest .cap-offer-stop-dot {
  background: #d6a11d;
  box-shadow: 0 0 0 3px rgba(214, 161, 29, 0.14);
}

.cap-offer-stop--pick .cap-offer-stop-dot {
  background: #22c55e;
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18);
}

.cap-offer-stop--dest .cap-offer-stop-dot {
  background: #d6a11d;
  box-shadow: 0 0 0 3px rgba(214, 161, 29, 0.16);
}

.cap-offer-route-line {
  display: none;
}

.cap-offer-stop-copy {
  min-width: 0;
}

.cap-offer-stop-label {
  display: block;
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  color: #94a3b8;
  margin-bottom: 4px;
  line-height: 1.35;
}

.cap-offer-stop-text,
.cap-offer-stop-copy b {
  margin: 0;
  font-family: inherit;
  font-size: 15px;
  font-weight: 400;
  color: #334155;
  line-height: 1.65;
  letter-spacing: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cap-offer-stop--pick .cap-offer-stop-copy b,
.cap-offer-route-item--pick .cap-offer-stop-text {
  color: #334155;
}

.cap-offer-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.cap-offer-stat {
  display: grid;
  gap: 4px;
  padding: 12px 8px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid #eef1f5;
  text-align: center;
}

.cap-offer-stat-label {
  font-size: 10px;
  font-weight: 800;
  color: #94a3b8;
}

.cap-offer-stat strong {
  font-size: 13px;
  font-weight: 900;
  color: #0f172a;
  line-height: 1.2;
}

.cap-offer-actions {
  margin-top: 0;
}

.cap-hub-offer-pay {
  color: #64748b;
  margin-top: -4px;
}

.cap-hub-card-links {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.cap-hub-link-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1.5px solid #e2e8f0;
  background: #f8fafc;
  color: #0f172a;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  text-align: center;
}

.cap-hub-link-btn:active {
  background: #f1f5f9;
}

.cap-hub-link-btn.cap-nav-link {
  border-color: #dbeafe;
  background: #eff6ff;
  color: #1d4ed8;
}

.cap-hub-link-btn[hidden] {
  display: none !important;
}

.cap-hub-card-trip .cap-hub-offer-decline {
  color: #dc2626;
  border-color: #fecaca;
  background: #fff5f5;
}

.captain-hub.has-offer .cap-hub-stage-chip {
  box-shadow: 0 8px 28px rgba(18, 20, 23, 0.12);
}

/* ── رحلة نشطة — كارت أبيض أسفل الشاشة ── */
.cap-hub-trip-panel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9;
  pointer-events: none;
  margin: 0;
  padding: 0;
}

.cap-hub-trip-panel:not([hidden]) {
  pointer-events: auto;
}

.cap-hub-trip-panel[hidden] {
  display: none !important;
}

.cap-hub-trip-card {
  margin: 0;
  padding: 10px 18px max(18px, env(safe-area-inset-bottom));
  border-radius: 24px 24px 0 0;
  background: #fff;
  color: #121417;
  box-shadow: 0 -14px 44px rgba(15, 23, 42, 0.12);
  border-top: 1px solid #eef1f5;
  max-height: min(42vh, 380px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.cap-hub-trip-handle {
  width: 42px;
  height: 4px;
  margin: 0 auto 12px;
  border-radius: 999px;
  background: #e2e8f0;
}

.cap-hub-trip {
  margin-bottom: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  box-shadow: none;
}

.cap-hub-trip-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.cap-hub-trip-badge {
  padding: 5px 12px;
  border-radius: 999px;
  background: #ecfdf5;
  color: #15803d;
  font-size: 11px;
  font-weight: 900;
}

.cap-hub-trip-head > strong {
  font-size: 20px;
  font-weight: 900;
  color: #16a34a;
  direction: ltr;
}

.cap-hub-trip-steps {
  display: flex;
  gap: 6px;
  margin-bottom: 14px;
}

.cap-hub-trip-steps span {
  flex: 1;
  text-align: center;
  padding: 7px 4px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 800;
  background: #f1f5f9;
  color: #94a3b8;
}

.cap-hub-trip-steps span.done {
  background: #dcfce7;
  color: #15803d;
}

.cap-hub-trip-steps span.on {
  background: #16a34a;
  color: #fff;
}

.cap-hub-trip-route {
  display: grid;
  gap: 0;
  margin-bottom: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid #eef1f5;
}

.cap-hub-trip-stop span {
  display: block;
  font-size: 10px;
  font-weight: 800;
  color: #94a3b8;
  margin-bottom: 3px;
}

.cap-hub-trip-stop b {
  display: block;
  font-size: 13px;
  line-height: 1.45;
  color: #0f172a;
}

.cap-hub-trip-line {
  width: 2px;
  height: 16px;
  margin: 4px 8px;
  border-radius: 2px;
  background: linear-gradient(180deg, #16a34a, #d6a11d);
  opacity: 0.75;
}

.cap-hub-trip-status {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #ecfdf5;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
  color: #15803d;
}

.cap-hub-trip-actions {
  display: grid;
  gap: 8px;
}

.cap-hub-trip-card .cap-hub-cta {
  background: linear-gradient(145deg, #22c55e 0%, #16a34a 100%);
  color: #fff;
  box-shadow: 0 10px 24px rgba(34, 197, 94, 0.24);
}

.cap-hub-trip-card .cap-hub-cta:active {
  background: #15803d;
}

.cap-hub-trip-card .cap-hub-call {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f1f5f9;
  color: #0f172a;
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
  border: 1px solid #e2e8f0;
}

.cap-hub-trip-card .cap-hub-call-icon .ui-wrap {
  background: #fff;
  color: #16a34a;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.cap-hub-trip-card .cap-hub-call:active {
  background: #e2e8f0;
}

.cap-hub-trip-card .cap-nav-link {
  border: 1.5px solid #dbeafe;
  background: #eff6ff;
  color: #1d4ed8;
}

.cap-hub-trip-card .cap-hub-cancel {
  border: 1.5px solid #fecaca;
  background: #fff5f5;
  color: #dc2626;
}

.cap-hub-trip-pay {
  margin: 10px 0 0;
  text-align: center;
  font-size: 11px;
  color: #94a3b8;
  font-weight: 700;
}

.cap-nav-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1.5px solid #dbeafe;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  text-align: center;
}

.cap-nav-link[hidden] {
  display: none !important;
}

.cap-hub-call {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f8fafc;
  color: #0f172a;
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
  border: 1.5px solid #e2e8f0;
}

.cap-hub-call-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.cap-hub-call-icon .ui-icon {
  width: 20px;
  height: 20px;
}

.captain-hub.has-trip .cap-hub-stage {
  flex: 1;
  height: auto;
  min-height: 0;
  max-height: none;
  pointer-events: none;
}

.captain-hub.has-trip .cap-hub-stage.has-nav-map {
  flex: 1;
  height: auto;
  min-height: 0;
  max-height: none;
}

.captain-hub.has-trip .cap-hub-sheet {
  display: none;
}

.captain-hub.has-trip #captainHubCard {
  animation: none;
}

.captain-hub.has-trip .cap-hub-stage-chip {
  pointer-events: auto;
}

.captain-hub.trip-map-mode,
.captain-hub.trip-to-pickup {
  position: relative;
}

.captain-hub.trip-map-mode .cap-hub-stage,
.captain-hub.trip-to-pickup .cap-hub-stage {
  position: absolute;
  inset: 0;
  flex: none;
  width: 100%;
  height: 100%;
  max-height: none;
  min-height: 0;
  z-index: 0;
}

.captain-hub.trip-map-mode .cap-hub-stage-chip,
.captain-hub.trip-to-pickup .cap-hub-stage-chip {
  display: none;
}

.captain-hub.trip-map-mode #captainHubCard,
.captain-hub.trip-to-pickup #captainHubCard {
  z-index: 10;
}

.captain-hub.trip-map-mode .cap-hub-offer-card--dock,
.captain-hub.trip-map-mode .cap-hub-offer-card--compact,
.captain-hub.trip-to-pickup .cap-hub-offer-card--compact {
  padding: 10px 14px max(10px, env(safe-area-inset-bottom));
  max-height: none;
  border-radius: 18px 18px 0 0;
  box-shadow: 0 -10px 36px rgba(15, 23, 42, 0.14);
}

.captain-hub.trip-map-mode .cap-hub-offer-handle,
.captain-hub.trip-to-pickup .cap-hub-offer-handle {
  display: none;
}

.captain-hub.trip-map-mode .cap-voice-float,
.captain-hub.trip-to-pickup .cap-voice-float {
  top: 12px;
  right: 12px;
  left: auto;
  bottom: auto;
}

.captain-hub.trip-map-mode .cap-trip-float-action {
  bottom: calc(72px + env(safe-area-inset-bottom, 0px));
}

.captain-hub.trip-in-ride.trip-map-mode .cap-trip-float-action.cap-trip-advance--finish {
  bottom: calc(72px + env(safe-area-inset-bottom, 0px));
}

.captain-hub.trip-in-ride {
  --cap-trip-map: 1;
}

.captain-hub.trip-in-ride.trip-map-mode .cap-hub-stage,
.captain-hub.trip-in-ride .cap-hub-stage {
  position: absolute;
  inset: 0;
  flex: none;
  width: 100%;
  height: 100%;
  max-height: none;
  min-height: 0;
  z-index: 0;
}

.captain-hub.trip-in-ride .cap-hub-stage-chip {
  display: none;
}

.captain-hub.trip-in-ride #captainHubCard {
  z-index: 10;
}

.captain-hub.trip-in-ride .cap-hub-offer-card--compact {
  padding: 12px 16px max(14px, env(safe-area-inset-bottom));
  max-height: none;
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.16);
}

.captain-hub.trip-in-ride .cap-hub-offer-handle {
  display: none;
}

.captain-hub.trip-in-ride.trip-map-mode .cap-voice-float,
.captain-hub.trip-in-ride .cap-voice-float {
  top: 12px;
  right: 12px;
  left: auto;
  bottom: auto;
}

.cap-trip-pickup {
  display: block;
}

.cap-trip-arrived {
  display: grid;
  gap: 14px;
  padding: 4px 0 2px;
}

.cap-trip-arrived-badge {
  margin: 0;
  text-align: center;
  font-size: 17px;
  font-weight: 900;
  color: #15803d;
  line-height: 1.35;
}

.cap-trip-start-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: 56px;
  padding: 14px 18px;
  border: none;
  border-radius: 16px;
  background: linear-gradient(145deg, #22c55e 0%, #16a34a 100%);
  color: #fff;
  font-size: 18px;
  font-weight: 900;
  box-shadow: 0 12px 28px rgba(34, 197, 94, 0.28);
}

.cap-trip-start-btn:active {
  transform: scale(0.99);
  background: linear-gradient(145deg, #16a34a 0%, #15803d 100%);
}

.cap-trip-start-btn:disabled {
  opacity: 0.55;
}

.cap-trip-start-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.cap-trip-start-icon .ui-icon--fi {
  font-size: 18px;
}

.captain-hub.trip-arrived .cap-voice-float,
.captain-hub.trip-arrived .cap-map-rider-signal {
  display: none !important;
}

.captain-hub--v2 .cap-trip-pickup-ui--arriving .cap-trip-steps {
  display: none !important;
}

.captain-hub.trip-arrived .cap-trip-float-action {
  display: none !important;
}

.captain-hub.trip-arrived .cap-hub-offer-card--arrived {
  padding: 14px 16px max(14px, env(safe-area-inset-bottom));
}

.cap-trip-dock {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.cap-trip-dock-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  padding: 0 12px;
  border-radius: 14px;
  border: 1.5px solid #e2e8f0;
  background: #f8fafc;
  color: #121417;
  font-size: 15px;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
}

.cap-trip-dock-btn:active {
  background: #f1f5f9;
}

.cap-trip-dock-btn--call {
  background: #ecfdf5;
  border-color: #bbf7d0;
  color: #15803d;
}

.cap-trip-dock-btn--call:active {
  background: #dcfce7;
}

.cap-trip-dock-icon {
  font-size: 18px;
  line-height: 1;
}

.cap-trip-float-action {
  position: absolute;
  left: 16px;
  right: 16px;
  z-index: 4;
  pointer-events: auto;
}

.cap-trip-float-action[hidden] {
  display: none !important;
}

.captain-hub.trip-map-mode .cap-hub-stage.has-nav-map,
.captain-hub.trip-in-ride .cap-hub-stage.has-nav-map {
  position: absolute;
  inset: 0;
  flex: none;
  width: 100%;
  height: 100%;
  max-height: none;
  min-height: 0;
}

.cap-trip-rider {
  display: grid;
  gap: 2px;
}

.cap-trip-rider strong {
  font-size: 16px;
  font-weight: 900;
  color: #121417;
  line-height: 1.25;
}

.cap-trip-rider-phone {
  font-size: 14px;
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.02em;
}

.cap-trip-advance {
  width: 100%;
  padding: 8px 10px;
  border: none;
  border-radius: 12px;
  background: #ecfdf5;
  color: #15803d;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.cap-trip-advance--reach {
  min-height: 44px;
  padding: 12px 16px;
  border-radius: 14px;
  font-size: 15px;
  font-weight: 900;
  background: #f0fdf4;
  border: 1.5px solid #bbf7d0;
}

.cap-trip-advance--hero,
.cap-trip-advance--finish {
  min-height: 56px;
  padding: 14px 18px;
  border-radius: 16px;
  font-size: 18px;
  font-weight: 900;
  color: #fff;
  box-shadow: 0 12px 28px rgba(34, 197, 94, 0.28);
}

.cap-trip-advance--hero {
  background: linear-gradient(145deg, #22c55e 0%, #16a34a 100%);
}

.cap-trip-advance--hero:active {
  transform: scale(0.99);
  background: linear-gradient(145deg, #16a34a 0%, #15803d 100%);
}

.cap-trip-advance--finish {
  background: linear-gradient(145deg, #0f172a 0%, #1e293b 100%);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.22);
}

.cap-trip-advance--finish:active {
  transform: scale(0.99);
  background: linear-gradient(145deg, #1e293b 0%, #334155 100%);
}

.cap-trip-dest {
  display: grid;
  gap: 4px;
  padding: 2px 0 4px;
}

.cap-trip-dest-label {
  font-size: 12px;
  font-weight: 800;
  color: #64748b;
}

.cap-trip-dest strong {
  font-size: 16px;
  font-weight: 900;
  color: #121417;
  line-height: 1.35;
}

.cap-trip-advance--reach:active {
  background: #dcfce7;
}

.cap-trip-advance[hidden] {
  display: none !important;
}

.cap-trip-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.cap-trip-quick-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 40px;
  padding: 0 12px;
  border-radius: 12px;
  border: 1.5px solid #e2e8f0;
  background: #f8fafc;
  color: #121417;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.cap-trip-quick-btn:active {
  background: #f1f5f9;
}

.cap-trip-quick-btn--sos {
  border-color: #fecaca;
  background: #fff5f5;
  color: #dc2626;
}

.cap-trip-quick-icon {
  font-size: 16px;
  line-height: 1;
}

.captain-hub.has-trip .cap-voice-float {
  pointer-events: auto;
  bottom: calc(min(42vh, 380px) + 12px);
}

.captain-hub.has-trip .cap-voice-bar--trip {
  display: none;
}

.captain-hub.has-trip .cap-hub-trip-actions {
  position: static;
  background: transparent;
  padding: 0;
  margin: 0;
}

.captain-hub.has-trip .cap-hub-trip .cap-hub-cta,
.captain-hub.has-trip .cap-hub-trip .cap-hub-cancel,
.captain-hub.has-trip .cap-hub-trip .cap-hub-call,
.captain-hub.has-trip .cap-hub-trip .cap-nav-link {
  pointer-events: auto;
  touch-action: manipulation;
}

.captain-hub.has-trip .cap-hub-trip-stop b {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.captain-hub.has-trip .cap-hub-drawer-backdrop,
.captain-hub.has-trip #captainHistoryBackdrop {
  display: none !important;
  pointer-events: none !important;
}

/* ── درج الإعدادات ── */
.cap-hub-drawer-backdrop[hidden],
.cap-hub-drawer[hidden],
#captainHistoryBackdrop[hidden],
#captainHubHistory[hidden] {
  display: none !important;
  pointer-events: none !important;
}

.cap-hub-drawer-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(18, 20, 23, 0.45);
  z-index: 20;
  animation: capFadeIn 0.2s ease;
}

.cap-hub-drawer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  max-height: 78%;
  z-index: 21;
  background: #fff;
  border-radius: 28px 28px 0 0;
  box-shadow: 0 -2px 12px rgba(15, 23, 42, 0.03), 0 -20px 56px rgba(15, 23, 42, 0.05);
  display: flex;
  flex-direction: column;
  animation: capSheetUp 0.28s ease;
}

@keyframes capFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes capSheetUp {
  from { transform: translateY(100%); }
  to { transform: none; }
}

.cap-hub-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 18px 12px;
  border-bottom: 1px solid #f1f5f9;
}

.cap-hub-drawer-head strong {
  font-size: 17px;
}

.cap-hub-drawer-close {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: #f3f5f7;
  display: grid;
  place-items: center;
  color: #485465;
}

.cap-hub-drawer-body {
  overflow-y: auto;
  padding: 16px 18px 28px;
  -webkit-overflow-scrolling: touch;
}

.cap-hub-drawer-save {
  width: 100%;
  height: 52px;
  margin-top: 8px;
  border-radius: 16px;
  background: #151719;
  color: #fff;
  font-size: 15px;
  font-weight: 900;
}

.cap-hub-drawer-save:active {
  transform: scale(0.99);
}

.cap-hub-drawer-logout {
  width: 100%;
  height: 48px;
  margin-top: 10px;
  border-radius: 16px;
  border: 1.5px solid #fecaca;
  background: #fff;
  color: #b91c1c;
  font-size: 15px;
  font-weight: 900;
}

.cap-hub-drawer-logout:active {
  transform: scale(0.99);
}

.cap-hub-sub-panel {
  margin-top: 14px;
  padding: 14px;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.cap-hub-sub-panel-text {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.5;
  color: #334155;
  font-weight: 700;
}

.cap-hub-sub-renew {
  width: 100%;
  min-height: 44px;
  border-radius: 14px;
  border: none;
  background: linear-gradient(145deg, #d6a11d 0%, #b8860b 100%);
  color: #fff;
  font-size: 14px;
  font-weight: 900;
}

.cap-hub-sub-renew:active {
  transform: scale(0.99);
}

.cap-hub-stat-btn {
  border: none;
  background: transparent;
  cursor: pointer;
  font: inherit;
  color: inherit;
  padding: 0;
  text-align: center;
}

.cap-hub-stat-btn:active {
  transform: scale(0.98);
}

.cap-hub-request-actions {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  margin-top: 12px;
  align-items: center;
}

.cap-hub-request-actions .cap-hub-cta {
  margin-top: 0;
}

.cap-hub-decline {
  height: 50px;
  padding: 0 14px;
  border-radius: 14px;
  border: 1.5px solid #e2e8f0;
  background: #fff;
  color: #64748b;
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
}

.cap-hub-cancel {
  width: 100%;
  height: 44px;
  margin-top: 8px;
  border-radius: 14px;
  border: 1.5px solid #fecaca;
  background: #fff5f5;
  color: #dc2626;
  font-size: 14px;
  font-weight: 800;
}

.cap-hub-call {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f8fafc;
  color: #0f172a;
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
  border: 1.5px solid #e2e8f0;
}

.cap-hub-drawer--history .cap-hub-drawer-body,
.cap-hub-drawer--history {
  display: flex;
  flex-direction: column;
  max-height: min(78vh, 640px);
}

.cap-hub-history-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 0 16px 12px;
}

.cap-hub-history-sum {
  padding: 12px;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
}

.cap-hub-history-sum strong {
  display: block;
  font-size: 18px;
  color: #0f172a;
}

.cap-hub-history-sum span {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: #64748b;
}

.cap-hub-history-list {
  flex: 1;
  overflow: auto;
  padding: 0 16px 16px;
}

.cap-hub-history-empty {
  text-align: center;
  color: #64748b;
  padding: 24px 8px;
  margin: 0;
}

.cap-hub-history-item {
  padding: 12px 14px;
  margin-bottom: 10px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid #e8eaee;
}

.cap-hub-history-item-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.cap-hub-history-item-top small {
  color: #64748b;
  font-size: 11px;
}

.cap-hub-history-item p {
  margin: 0 0 4px;
  font-size: 13px;
  color: #334155;
}

.cap-hub-history-item p span {
  color: #94a3b8;
  font-size: 11px;
  margin-left: 6px;
}

.cap-hub-history-meta {
  display: block;
  margin-top: 6px;
  color: #94a3b8;
  font-size: 11px;
}

/* ── ملاحة الكابتن + مساعد صوتي ── */
.cap-hub-stage.has-nav-map {
  height: min(42vh, 320px);
}

.cap-hub-stage.has-nav-map .cap-hub-map-bg {
  display: none;
}

.cap-hub-nav-map-wrap {
  position: absolute;
  inset: 0;
  z-index: 2;
  overflow: hidden;
  contain: layout paint;
  pointer-events: auto;
}

.cap-hub-nav-map-wrap[hidden] {
  display: none !important;
}

.cap-map-rider-signal {
  position: absolute;
  top: 14px;
  left: 50%;
  z-index: 460;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: calc(100% - 28px);
  padding: 10px 16px 10px 12px;
  border-radius: 999px;
  border: 2px solid rgba(255, 255, 255, 0.92);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22);
  pointer-events: none;
  transform: translateX(-50%);
  animation: capMapRiderSignalIn 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.cap-map-rider-signal[hidden] {
  display: none !important;
}

.cap-map-rider-signal--coming {
  background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
  color: #fff;
}

.cap-map-rider-signal--wait {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #fff;
}

.cap-map-rider-signal--pulse {
  animation: capMapRiderSignalPulse 1s ease-in-out 3;
}

@keyframes capMapRiderSignalIn {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(-10px);
  }

  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

@keyframes capMapRiderSignalPulse {
  0%, 100% {
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22);
    transform: translateX(-50%) scale(1);
  }

  50% {
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.3);
    transform: translateX(-50%) scale(1.04);
  }
}

.cap-map-rider-signal-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.22);
}

.cap-map-rider-signal-icon .ui-icon--fi {
  font-size: 18px;
  color: #fff;
  line-height: 1;
}

.cap-map-rider-signal-text {
  font-size: 15px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (prefers-reduced-motion: reduce) {
  .cap-map-rider-signal,
  .cap-map-rider-signal--pulse {
    animation: none;
  }
}

.cap-hub-nav-map {
  width: 100%;
  height: 100%;
  background: #dfe6ee;
}

.cap-map-gps-btn {
  position: absolute;
  left: 16px;
  top: max(84px, calc(env(safe-area-inset-top, 0px) + 76px));
  z-index: 1200;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: #059669;
  box-shadow: none;
  cursor: pointer;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.cap-map-gps-btn:active {
  transform: scale(0.96);
  background: transparent;
}

.cap-map-gps-btn .fi {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  line-height: 1;
  color: #059669;
}

.cap-hub-nav-map.map-gl-ar .leaflet-gl-layer canvas {
  outline: none;
  transform: translateZ(0);
  -webkit-font-smoothing: antialiased;
}

.cap-hub-nav-map.map-ar-labels .leaflet-tile-pane img.leaflet-tile {
  image-rendering: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.cap-nav-pin-wrap,
.cap-nav-driver-wrap {
  background: transparent;
  border: none;
}

.cap-nav-pin {
  position: relative;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 18px 18px 18px 5px;
  border: 3px solid #fff;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.24);
  transform: rotate(-45deg);
}

.cap-nav-pin::after {
  content: "";
  position: absolute;
  right: 3px;
  bottom: 3px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
}

.cap-nav-pin-glyph {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  color: #0f172a;
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  transform: rotate(45deg);
}

.cap-nav-pin--pick {
  background: linear-gradient(135deg, #22c55e, #0f9f57);
}

.cap-nav-pin--dest {
  background: linear-gradient(135deg, #f8c842, #f59e0b);
}

.cap-nav-driver {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #151719;
  border: 3px solid #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

.cap-nav-driver--vehicle {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  filter: drop-shadow(0 8px 12px rgba(15, 23, 42, 0.22));
}

.cap-nav-driver--vehicle::before {
  content: "";
  position: absolute;
  inset: 19% 16% 10%;
  z-index: -1;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.16);
  filter: blur(5px);
}

.cap-nav-driver--vehicle img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: rotate(var(--bearing, 0deg));
  transform-origin: 50% 54%;
  will-change: transform;
}

.cap-nav-driver--tuk img {
  transform-origin: 50% 55%;
}

.cap-nav-driver--vehicle.image-missing::after {
  content: "T+";
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  color: #ffffff;
  background: linear-gradient(135deg, #0f9f57, #f8c842);
  border: 3px solid #ffffff;
  font-size: 12px;
  font-weight: 950;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.24);
}

.cap-voice-float {
  position: absolute;
  left: max(12px, env(safe-area-inset-left));
  bottom: max(12px, env(safe-area-inset-bottom));
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(18, 20, 23, 0.08);
  box-shadow: 0 8px 24px rgba(18, 20, 23, 0.12);
  color: #25B66A;
  font-size: 11px;
  font-weight: 900;
}

.cap-voice-float.off {
  color: #94a3b8;
}

.cap-voice-float-icon {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
}

.cap-voice-bar {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: #f0fdf6;
  border: 1px solid #bbf7d0;
  color: #166534;
  font-size: 12px;
  font-weight: 800;
}

.cap-voice-bar.off {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #64748b;
}

.cap-voice-bar-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #22c55e;
  flex-shrink: 0;
}

.cap-voice-bar.off .cap-voice-bar-dot {
  background: #94a3b8;
}

.cap-voice-setting {
  margin-top: 14px;
}

.cap-voice-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  font-size: 13px;
}

.cap-voice-hint {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  color: #747b86;
  line-height: 1.5;
}

.screen.captain-hub.has-trip #captainHubToggle:not(.cap-hub-live),
.screen.captain-hub.has-trip .cap-hub-bar .cap-hub-go {
  display: none !important;
}

.screen.captain-hub.has-trip .cap-hub-stage-chip {
  z-index: 1;
}

.captain-hub.drawer-open {
  overflow: hidden;
}

/* ── Captain Hub v2 — خريطة أولاً ── */
.captain-hub--v2 {
  --cap-red: #e53935;
  --cap-red-deep: #c62828;
  --cap-brand: #19a974;
  --cap-green: #22c55e;
  --cap-green-bright: #34d97b;
  --cap-green-deep: #16a34a;
  --cap-green-soft: #ecfdf5;
  --cap-green-light: #f0fdf4;
  --cap-green-light-border: rgba(34, 197, 94, 0.22);
  --cap-green-light-text: #15803d;
  --cap-icon-green: #22c55e;
  --cap-icon-muted: #64748b;
  --cap-icon-end: #e57373;
  --cap-icon-call: #d98888;
  --cap-phase-green: #3d6b4f;
  --cap-phase-green-bg: #f6fbf8;
  --cap-phase-gold: #7a6a48;
  --cap-phase-gold-bg: #fdfbf7;
  --cap-ar-formal: "Noto Sans Arabic", "IBM Plex Sans Arabic", system-ui, sans-serif;
  --cap-gold: #d6a11d;
  --cap-gold-soft: #fef9c3;
  --cap-gold-border: rgba(214, 161, 29, 0.28);
  --cap-ink: #0f172a;
  --cap-text: #1e293b;
  --cap-muted: #64748b;
  --cap-offer-panel-h: min(44vh, 420px);
  --cap-r-sm: 12px;
  --cap-r-md: 16px;
  --cap-r-lg: 20px;
  --cap-r-sheet: 22px;
  --cap-border-brand: rgba(25, 169, 116, 0.16);
  --cap-border-neutral: rgba(15, 23, 42, 0.07);
  --cap-shadow-sm: 0 2px 12px rgba(15, 23, 42, 0.03);
  --cap-shadow-md: 0 4px 20px rgba(15, 23, 42, 0.04);
  --cap-shadow-sheet: 0 -2px 12px rgba(15, 23, 42, 0.03), 0 -20px 56px rgba(15, 23, 42, 0.05);
  --cap-card-bg: #fff;
  --cap-card-bg-soft: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
  --cap-card-border: rgba(15, 23, 42, 0.05);
  --cap-card-radius-lg: 28px;
  --cap-card-radius-md: 16px;
  --cap-gradient-brand: linear-gradient(135deg, #22c55e 0%, #19a974 52%, #16a34a 100%);
  --cap-gradient-brand-gold: linear-gradient(135deg, #22c55e 0%, #19a974 42%, #d6a11d 100%);
  --cap-gradient-gold: linear-gradient(145deg, #fde68a 0%, #f2b93b 48%, #d6a11d 100%);
  --cap-gradient-surface: linear-gradient(180deg, #ffffff 0%, #f8fafb 100%);
  --cap-gradient-sheet-accent: linear-gradient(90deg, rgba(34, 197, 94, 0.2) 0%, #22c55e 38%, #d6a11d 62%, rgba(214, 161, 29, 0.18) 100%);
  --cap-gradient-hero: linear-gradient(145deg, #ecfdf5 0%, #f0fdf4 42%, #fffbeb 100%);
  background: transparent;
  font-family: Cairo, var(--cap-ar-formal);
  color: var(--cap-ink);
}

.screen.captain-hub.captain-hub--v2 {
  background: transparent !important;
}

.captain-hub--v2 .cap-hub-bar,
.captain-hub--v2 .cap-hub-bar--v2,
#captainHub.captain-hub--v2 .cap-hub-bar {
  --cap-hub-icon-size: 48px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  min-height: 0;
  padding: 0;
  gap: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  pointer-events: none;
  direction: ltr;
  z-index: 12;
  box-sizing: border-box;
}

.captain-hub--v2 .cap-hub-bar::after,
#captainHub.captain-hub--v2 .cap-hub-bar::after {
  display: none;
}

.captain-hub--v2 .cap-hub-bar-accent,
#captainHub.captain-hub--v2 .cap-hub-bar-accent {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-bar {
  padding: 0 !important;
}

.captain-hub--v2 .cap-hub-header-unit,
#captainHub .cap-hub-header-unit {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  flex: 1;
  width: 100%;
  min-height: var(--cap-hub-icon-size, 48px);
  padding: 4px 0;
  border-radius: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-sizing: border-box;
  position: relative;
  overflow: visible;
  direction: ltr;
}

#captainHub.captain-hub--v2 #captainHubProfileBtn {
  order: 1;
}

#captainHub.captain-hub--v2 #captainHubBack {
  order: 2;
}

#captainHub.captain-hub--v2 #capHubLiveTitle {
  order: 3;
  flex: 1;
  min-width: 0;
}

#captainHub.captain-hub--v2 #captainHubToggle {
  order: 4;
}

#captainHub.captain-hub--v2 #capHubBrandMark {
  order: 5;
}

.captain-hub--v2 .cap-hub-brand-mark,
#captainHub.captain-hub--v2 .cap-hub-brand-mark {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  min-width: 0;
  padding: 0 2px;
  margin: 0;
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  filter: none;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

.captain-hub--v2 .cap-hub-brand-mark b {
  display: inline-block;
  font-family: Cairo, system-ui, sans-serif;
  font-size: 20px;
  font-weight: 900;
  letter-spacing: -0.06em;
  line-height: 1;
  color: var(--cap-green-deep, #15803d);
  -webkit-text-fill-color: var(--cap-green-deep, #15803d);
  text-shadow: none;
}

.captain-hub--v2 .cap-hub-brand-mark .cap-hub-brand-plus {
  font-size: 0.78em;
  font-weight: 900;
  color: var(--cap-gold, #d6a11d);
  vertical-align: baseline;
}

.captain-hub--v2 .cap-hub-header-start,
.captain-hub--v2 .cap-hub-header-end,
.captain-hub--v2 .cap-hub-header-brand {
  display: contents;
}

.captain-hub--v2 .cap-hub-header-unit--online,
#captainHub .cap-hub-header-unit--online {
  border-color: transparent;
  box-shadow: none;
}

.captain-hub--v2 .cap-hub-power-btn {
  position: relative;
  flex-shrink: 0;
  width: var(--cap-hub-icon-size, 42px);
  height: var(--cap-hub-icon-size, 42px);
  padding: 0;
  margin: 0;
  border: 1px solid rgba(15, 23, 42, 0.07);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.1);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition:
    transform 0.18s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease,
    background 0.25s ease;
}

.captain-hub--v2 .cap-hub-power-btn::before,
.captain-hub--v2 .cap-hub-power-btn::after {
  display: none !important;
}

.captain-hub--v2 .cap-hub-power-btn .fi-bs-power {
  font-family: uicons-bold-straight !important;
  font-style: normal;
  font-weight: 400 !important;
  font-size: 22px;
  line-height: 1;
  color: #e53935;
  transition: color 0.25s ease, transform 0.25s ease;
}

.captain-hub--v2 .cap-hub-power-btn .cap-hub-power-symbol,
#captainHubToggle.cap-hub-power-btn .cap-hub-power-symbol {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  color: #e53935;
  line-height: 1;
}

.captain-hub--v2 .cap-hub-power-btn .cap-hub-power-symbol svg,
#captainHubToggle.cap-hub-power-btn .cap-hub-power-symbol svg {
  width: 100%;
  height: 100%;
  display: block;
}

.captain-hub--v2 .cap-hub-power-btn .cap-hub-power-symbol path,
#captainHubToggle.cap-hub-power-btn .cap-hub-power-symbol path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.captain-hub--v2 .cap-hub-power-btn.on .fi-bs-power,
.captain-hub--v2 .cap-hub-power-btn.cap-hub-live--on .fi-bs-power {
  color: var(--cap-green);
}

.captain-hub--v2 .cap-hub-power-btn.on .cap-hub-power-symbol,
.captain-hub--v2 .cap-hub-power-btn.cap-hub-live--on .cap-hub-power-symbol,
#captainHubToggle.cap-hub-power-btn.on .cap-hub-power-symbol,
#captainHubToggle.cap-hub-power-btn.cap-hub-live--on .cap-hub-power-symbol {
  color: var(--cap-green);
}

.captain-hub--v2 .cap-hub-power-btn.on,
.captain-hub--v2 .cap-hub-power-btn.cap-hub-live--on {
  background: linear-gradient(180deg, #fff 0%, #f0fdf4 100%);
  border-color: rgba(34, 197, 94, 0.22);
  box-shadow: 0 4px 16px rgba(34, 197, 94, 0.14);
}

.captain-hub--v2 .cap-hub-power-btn:active:not(.sub-locked) {
  transform: scale(0.94);
}

.captain-hub--v2 .cap-hub-power-btn.sub-locked {
  opacity: 0.45;
  pointer-events: none;
}

.captain-hub--v2 .cap-hub-live-status {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  direction: rtl;
}

.captain-hub--v2 .cap-hub-live-status[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-hub-live-status-line,
.captain-hub--v2 .cap-hub-live-status-pill,
.captain-hub--v2 .cap-hub-live-status-card {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0;
  margin: 0;
  border-radius: 0;
  background: none;
  border: none;
  box-shadow: none;
  min-height: 0;
  width: auto;
  animation: capLiveStatusIn 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.captain-hub--v2 .cap-hub-live-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--cap-green);
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.12);
  animation: capLiveDotPulse 2.2s ease-in-out infinite;
}

.captain-hub--v2 .cap-hub-live-status-text {
  font-size: 13px;
  font-weight: 800;
  color: var(--cap-green-deep);
  letter-spacing: -0.02em;
  line-height: 1.2;
  white-space: nowrap;
}

.captain-hub--v2 .cap-hub-header-unit--online .cap-hub-live-status-text {
  color: var(--cap-green-deep);
}

.captain-hub--v2 .cap-hub-profile {
  width: var(--cap-hub-icon-size, 42px);
  height: var(--cap-hub-icon-size, 42px);
  padding: 0;
  margin: 0;
  border: 1px solid rgba(15, 23, 42, 0.07);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.1);
  flex-shrink: 0;
  display: grid;
  place-items: center;
  transition: transform 0.18s ease, box-shadow 0.2s ease, background 0.18s ease;
}

.captain-hub--v2 .cap-hub-back,
.captain-hub--v2 .cap-hub-home-btn,
#captainHub .cap-hub-back,
#captainHub .cap-hub-home-btn {
  width: var(--cap-hub-icon-size, 42px);
  height: var(--cap-hub-icon-size, 42px);
  padding: 0;
  margin: 0;
  border: 1px solid rgba(15, 23, 42, 0.07);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  color: #10251c;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.1);
  flex: 0 0 var(--cap-hub-icon-size, 42px);
  display: grid !important;
  place-items: center;
  transition: transform 0.18s ease, box-shadow 0.2s ease, background 0.18s ease;
}

.captain-hub--v2 .cap-hub-back svg,
.captain-hub--v2 .cap-hub-home-btn svg,
#captainHub .cap-hub-back svg,
#captainHub .cap-hub-home-btn svg {
  width: 20px;
  height: 20px;
}

.captain-hub--v2 .cap-hub-home-btn .ui-icon--fi,
#captainHub .cap-hub-home-btn .ui-icon--fi {
  font-size: 20px;
  color: #485465;
  line-height: 1;
}

.captain-hub--v2 .cap-hub-home-btn,
#captainHub .cap-hub-home-btn {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.06);
  flex-shrink: 0;
}

.captain-hub--v2 .cap-hub-home-btn--idle {
  opacity: 0.78;
}

.captain-hub--v2 .cap-hub-home-btn[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-hub-profile .cap-hub-avatar {
  width: 100%;
  height: 100%;
  border-radius: 11px;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  display: grid;
  place-items: center;
}

.captain-hub--v2 .cap-hub-menu-lines {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: 20px;
  height: 20px;
}

.captain-hub--v2 .cap-hub-menu-lines span {
  display: block;
  width: 15px;
  height: 2px;
  border-radius: 999px;
  background: #121417;
  transition: transform 0.18s ease, opacity 0.18s ease, width 0.18s ease;
}

.captain-hub--v2 .cap-hub-menu-lines span:nth-child(2) {
  width: 12px;
}

.captain-hub--v2 .cap-hub-avatar--icon .ui-icon--fi {
  font-size: 20px;
  color: #475569;
  line-height: 1;
}

.captain-hub--v2 .cap-hub-profile:active {
  transform: scale(0.96);
  background: #f8fafc;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
}

.captain-hub--v2 .cap-hub-back:active,
#captainHub .cap-hub-back:active {
  transform: scale(0.96);
  background: #f8fafc;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
}

.captain-hub--v2 .cap-hub-profile:active .cap-hub-menu-lines span:nth-child(1) {
  transform: translateY(1px);
}

.captain-hub--v2 .cap-hub-profile:active .cap-hub-menu-lines span:nth-child(3) {
  transform: translateY(-1px);
}

.captain-hub--v2 .cap-hub-profile:active .cap-hub-avatar {
  transform: none;
}

.captain-hub--v2.is-online .cap-hub-profile {
  border-color: #f1f5f9;
  background: #fff;
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.08);
}

.captain-hub--v2.is-online .cap-hub-menu-lines span {
  background: #121417;
}

.captain-hub--v2.is-online .cap-hub-avatar--icon .ui-icon--fi {
  color: #475569;
}

@keyframes capHubLiveIcon {
  0%,
  100% {
    opacity: 0.92;
    transform: scale(1);
  }
  50% {
    opacity: 0.72;
    transform: scale(0.94);
  }
}

@keyframes capHubLiveDot {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.65;
    transform: scale(0.88);
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-hub-live,
  .captain-hub--v2 .cap-hub-profile,
  .captain-hub--v2 .cap-hub-live--on .cap-hub-live-icon,
  .captain-hub--v2 .cap-hub-live.on .cap-hub-live-icon {
    animation: none;
  }

  .captain-hub--v2 .cap-hub-live--on .cap-hub-live-dot,
  .captain-hub--v2 .cap-hub-live.on .cap-hub-live-dot {
    transition: none;
    animation: none;
  }
}

.captain-hub--v2 .cap-hub-earn {
  flex: 1;
  text-align: center;
  font-size: 13px;
  font-weight: 900;
  color: var(--cap-gold);
  background: rgba(242, 185, 59, 0.1);
  border-radius: 14px;
  padding: 8px 12px;
  white-space: nowrap;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid rgba(242, 185, 59, 0.22);
  box-shadow:
    0 4px 14px rgba(242, 185, 59, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.75);
  transition:
    background 0.35s ease,
    color 0.35s ease,
    box-shadow 0.35s ease,
    border-color 0.35s ease,
    transform 0.35s ease;
}

.captain-hub--v2 .cap-hub-earn--online {
  position: relative;
  isolation: isolate;
  gap: 10px;
  color: #0f6b3e;
  background: linear-gradient(135deg, rgba(37, 182, 106, 0.16) 0%, rgba(37, 182, 106, 0.08) 100%);
  border: 1px solid rgba(37, 182, 106, 0.28);
  box-shadow:
    0 8px 22px rgba(37, 182, 106, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
  animation: capEarnLiveIn 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.captain-hub--v2 .cap-hub-earn--online::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    120deg,
    rgba(37, 182, 106, 0.65) 0%,
    rgba(242, 185, 59, 0.42) 48%,
    rgba(37, 182, 106, 0.35) 100%
  );
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.captain-hub--v2 .cap-hub-earn-live {
  position: relative;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  z-index: 1;
}

.captain-hub--v2 .cap-hub-earn-label {
  position: relative;
  z-index: 1;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, #15803d 0%, #25B66A 55%, #0f6b3e 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.captain-hub--v2 .cap-hub-earn-pulse {
  position: absolute;
  inset: 7px;
  border-radius: 50%;
  background: var(--cap-green);
  box-shadow: 0 0 10px rgba(37, 182, 106, 0.45);
}

.captain-hub--v2 .cap-hub-earn-wave {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid rgba(37, 182, 106, 0.5);
  animation: capEarnWave 2s ease-out infinite;
}

@keyframes capEarnWave {
  0% {
    transform: scale(0.55);
    opacity: 0.85;
  }
  70%,
  100% {
    transform: scale(1.35);
    opacity: 0;
  }
}

@keyframes capEarnLiveIn {
  from {
    opacity: 0;
    transform: scale(0.94) translateY(4px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.captain-hub--v2 .cap-hub-power.cap-hub-power--compact {
  padding: 5px;
  gap: 0;
  min-height: 46px;
  min-width: 46px;
  justify-content: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid rgba(148, 163, 184, 0.28);
  box-shadow:
    0 6px 18px rgba(15, 23, 42, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.captain-hub--v2 .cap-hub-power .cap-hub-power-label {
  display: none !important;
}

.captain-hub--v2 #captainHubToggle.cap-hub-power {
  position: relative;
  left: auto;
  bottom: auto;
  transform: none;
  width: auto;
  height: auto;
  min-height: 46px;
  min-width: 46px;
  padding: 5px;
  gap: 0;
  border-radius: 999px;
  display: inline-flex !important;
  visibility: visible;
  opacity: 1;
  justify-content: center;
  isolation: isolate;
}

.captain-hub--v2 #captainHubToggle.cap-hub-power:active:not(.sub-locked) {
  transform: scale(0.96);
}

.captain-hub--v2 .cap-hub-power {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-height: 46px;
  min-width: 46px;
  padding: 5px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.98);
  color: var(--cap-muted);
  font-family: Cairo, system-ui, sans-serif;
  line-height: 1;
  box-shadow:
    0 6px 18px rgba(15, 23, 42, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  flex-shrink: 0;
  isolation: isolate;
  transition:
    background 0.32s ease,
    border-color 0.32s ease,
    box-shadow 0.32s ease,
    transform 0.15s ease;
}

.captain-hub--v2 .cap-hub-power:active:not(.sub-locked) {
  transform: scale(0.96);
}

.captain-hub--v2 .cap-hub-power.sub-locked {
  opacity: 0.48;
  pointer-events: none;
}

.captain-hub--v2 .cap-hub-power-track {
  position: relative;
  width: 54px;
  height: 32px;
  border-radius: 999px;
  background: linear-gradient(180deg, #dbe2ea 0%, #cbd5e1 100%);
  flex-shrink: 0;
  box-shadow:
    inset 0 2px 5px rgba(15, 23, 42, 0.12),
    0 1px 0 rgba(255, 255, 255, 0.65);
  transition: background 0.32s ease, box-shadow 0.32s ease;
}

.captain-hub--v2 .cap-hub-power-glow {
  position: absolute;
  inset: -5px;
  border-radius: inherit;
  background: radial-gradient(circle, rgba(37, 182, 106, 0.45) 0%, rgba(37, 182, 106, 0) 70%);
  opacity: 0;
  transform: scale(0.88);
  transition: opacity 0.32s ease, transform 0.32s ease;
}

.captain-hub--v2 .cap-hub-power-thumb {
  position: absolute;
  top: 3px;
  inset-inline-start: 3px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(180deg, #fff 0%, #f1f5f9 100%);
  border: 1px solid rgba(255, 255, 255, 0.95);
  box-shadow:
    0 3px 10px rgba(15, 23, 42, 0.18),
    inset 0 -1px 0 rgba(15, 23, 42, 0.06);
  transition:
    inset-inline-start 0.32s cubic-bezier(0.34, 1.2, 0.64, 1),
    box-shadow 0.32s ease,
    transform 0.32s ease;
}

.captain-hub--v2 .cap-hub-power.on,
.captain-hub--v2 .cap-hub-power--on {
  background: linear-gradient(135deg, rgba(37, 182, 106, 0.14) 0%, rgba(37, 182, 106, 0.06) 100%);
  border-color: rgba(37, 182, 106, 0.35);
  box-shadow:
    0 8px 24px rgba(37, 182, 106, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.captain-hub--v2 .cap-hub-power.on::before,
.captain-hub--v2 .cap-hub-power--on::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    rgba(37, 182, 106, 0.7) 0%,
    rgba(242, 185, 59, 0.45) 50%,
    rgba(37, 182, 106, 0.35) 100%
  );
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.captain-hub--v2 .cap-hub-power.on .cap-hub-power-track,
.captain-hub--v2 .cap-hub-power--on .cap-hub-power-track {
  background: linear-gradient(180deg, #2ecf78 0%, #25B66A 48%, #1a9d58 100%);
  box-shadow:
    inset 0 2px 6px rgba(0, 0, 0, 0.12),
    0 0 12px rgba(37, 182, 106, 0.35);
}

.captain-hub--v2 .cap-hub-power.on .cap-hub-power-glow,
.captain-hub--v2 .cap-hub-power--on .cap-hub-power-glow {
  opacity: 1;
  animation: capHubPowerGlow 2.4s ease-in-out infinite;
}

.captain-hub--v2 .cap-hub-power.on .cap-hub-power-thumb,
.captain-hub--v2 .cap-hub-power--on .cap-hub-power-thumb {
  inset-inline-start: calc(100% - 29px);
  box-shadow:
    0 4px 14px rgba(15, 23, 42, 0.2),
    0 0 0 2px rgba(37, 182, 106, 0.2);
  transform: scale(1.02);
}

@keyframes capHubPowerGlow {
  0%,
  100% {
    opacity: 0.35;
    transform: scale(0.96);
  }
  50% {
    opacity: 0.75;
    transform: scale(1.04);
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-hub-earn-wave,
  .captain-hub--v2 .cap-hub-power.on .cap-hub-power-glow,
  .captain-hub--v2 .cap-hub-power--on .cap-hub-power-glow {
    animation: none;
  }

  .captain-hub--v2 .cap-hub-earn-wave {
    opacity: 0.4;
  }

  .captain-hub--v2 .cap-hub-power.on .cap-hub-power-glow,
  .captain-hub--v2 .cap-hub-power--on .cap-hub-power-glow {
    opacity: 0.55;
  }

  .captain-hub--v2 .cap-hub-power-thumb,
  .captain-hub--v2 .cap-hub-power-track,
  .captain-hub--v2 .cap-hub-power {
    transition: none;
  }
}

/* legacy status pill — يُستبدل بـ cap-hub-power */
.captain-hub--v2 .cap-hub-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 14px;
  border: none;
  border-radius: 14px;
  background: #f1f5f9;
  color: var(--cap-muted);
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 4px 16px rgba(18, 20, 23, 0.1);
}

.captain-hub--v2 .cap-hub-status.on,
.captain-hub--v2 .cap-hub-status--on {
  background: rgba(37, 182, 106, 0.12);
  color: #15803d;
}

.captain-hub--v2 .cap-hub-status-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #94a3b8;
}

.captain-hub--v2 .cap-hub-status.on .cap-hub-status-dot,
.captain-hub--v2 .cap-hub-status--on .cap-hub-status-dot {
  background: var(--cap-green);
  box-shadow: 0 0 0 4px rgba(37, 182, 106, 0.2);
}

.captain-hub--v2 .cap-hub-stage {
  position: relative;
  inset: auto;
  top: auto;
  flex: 1;
  min-height: 0;
  height: auto;
  max-height: none;
  z-index: 1;
}

.captain-hub--v2.has-offer .cap-hub-stage {
  bottom: var(--cap-offer-panel-h);
}

.captain-hub--v2.has-offer .cap-hub-stage-chip {
  display: none !important;
}

.captain-hub--v2.has-offer .cap-hub-idle {
  display: none !important;
}

.captain-hub--v2.has-offer .cap-hub-offline {
  display: none !important;
}

.captain-hub--v2:not(.is-online):not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-stage::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.05) 0%, rgba(15, 23, 42, 0.14) 100%);
  transition: opacity 0.38s ease;
}

.captain-hub--v2.is-going-offline:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-stage::after {
  background: rgba(15, 23, 42, 0.22);
}

.captain-hub--v2:not(.is-online):not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-map-pulse {
  opacity: 1;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  background: #94a3b8;
  box-shadow: 0 0 0 7px rgba(148, 163, 184, 0.22);
  animation: none;
}

.captain-hub--v2 .cap-hub-stage-chip,
#captainHub.captain-hub--v2 .cap-hub-stage-chip {
  display: none !important;
}

.captain-hub--v2 .cap-hub-offline {
  position: absolute;
  left: 0;
  right: 0;
  top: auto;
  bottom: 0;
  z-index: 24;
  display: flex;
  justify-content: stretch;
  align-items: flex-end;
  padding: 0;
  background: transparent;
  pointer-events: none;
}

/* ── الصفحة الرئيسية — شيت سفلي بعرض الشاشة ── */
#captainHub.captain-hub--v2.is-idle-dock .cap-hub-stage::after,
#captainHub.captain-hub--v2.is-offline-dock .cap-hub-stage::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: min(300px, 34vh);
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.35) 42%,
    rgba(255, 255, 255, 0.88) 100%
  );
}

.captain-hub--v2 .cap-hub-idle {
  position: absolute;
  left: 0;
  right: 0;
  top: auto;
  bottom: 0;
  z-index: 24;
  display: flex;
  justify-content: stretch;
  align-items: flex-end;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  pointer-events: none;
}

.captain-hub--v2 .cap-hub-idle[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-hub-idle-sheet,
.captain-hub--v2 .cap-hub-idle-card,
.captain-hub--v2 .cap-hub-idle-handle,
.captain-hub--v2 .cap-hub-idle-live-line,
.captain-hub--v2 .cap-hub-idle-stats,
.captain-hub--v2 .cap-hub-idle-head,
.captain-hub--v2 .cap-hub-idle-status,
.captain-hub--v2 .cap-hub-idle-tip,
.captain-hub--v2 .cap-hub-idle-card-accent,
.captain-hub--v2 .cap-hub-idle-main,
.captain-hub--v2 .cap-hub-idle-mini {
  display: none !important;
}

.captain-hub--v2 .cap-home-sheet {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 max(10px, env(safe-area-inset-bottom, 0px));
  border-radius: 28px 28px 0 0;
  background: #fff;
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow:
    0 -4px 24px rgba(15, 23, 42, 0.04),
    0 -16px 48px rgba(15, 23, 42, 0.06);
  pointer-events: auto;
  overflow: hidden;
  animation: capSheetSlideUp 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.captain-hub--v2 .cap-home-sheet--wait:not(.cap-home-sheet--wait-min) {
  --cap-wait-radar-size: 56px;
  overflow: visible;
  border-radius: 32px 32px 0 0;
  background: linear-gradient(180deg, #ffffff 0%, #fcfdfd 100%);
  border: none;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    0 0 0 1px rgba(15, 23, 42, 0.04),
    0 -6px 24px rgba(15, 23, 42, 0.04),
    0 -18px 48px rgba(15, 23, 42, 0.05);
}

.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait.cap-home-sheet--wait-min,
.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min {
  overflow: visible !important;
  width: 100%;
  max-width: none;
  margin: 0;
  border-radius: 0 !important;
  background: #fafbfc !important;
  border: none !important;
  box-shadow: none !important;
}

.captain-hub--v2 .cap-home-sheet--wait-min .cap-home-sheet-handle {
  display: block;
  width: 36px;
  height: 3px;
  margin: 10px auto 0;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
}

.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-deco-line {
  display: block;
  width: 100%;
  height: 2px;
  margin: 8px 0 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(34, 197, 94, 0.2) 15%,
    #22c55e 40%,
    #10b981 50%,
    #22c55e 60%,
    rgba(34, 197, 94, 0.2) 85%,
    transparent 100%
  );
}

.captain-hub--v2 .cap-home-sheet--wait-min .cap-home-sheet-inner {
  padding: 12px 0 max(14px, env(safe-area-inset-bottom, 0px));
  text-align: center;
}

.captain-hub--v2 .cap-wait-min {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 6px 0 2px;
}

.captain-hub--v2 .cap-wait-loader-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  overflow: visible;
}

/* Uiverse spinner — bernethe */
.captain-hub--v2 .cap-wait-loader {
  display: block;
  width: 48px;
  height: 48px;
  box-sizing: border-box;
  border-radius: 50%;
  border-top: 16px rgba(0, 0, 0, 0.75) solid;
  border-left: 16px rgba(0, 0, 0, 0.25) solid;
  border-bottom: 16px rgba(0, 0, 0, 0.25) solid;
  border-right: 16px rgba(0, 0, 0, 0.25) solid;
  animation: capWaitSpSlices 1s infinite linear;
}

@keyframes capWaitSpSlices {
  0% {
    border-top: 16px rgba(0, 0, 0, 0.75) solid;
    border-right: 16px rgba(0, 0, 0, 0.25) solid;
    border-bottom: 16px rgba(0, 0, 0, 0.25) solid;
    border-left: 16px rgba(0, 0, 0, 0.25) solid;
  }

  25% {
    border-top: 16px rgba(0, 0, 0, 0.25) solid;
    border-right: 16px rgba(0, 0, 0, 0.75) solid;
    border-bottom: 16px rgba(0, 0, 0, 0.25) solid;
    border-left: 16px rgba(0, 0, 0, 0.25) solid;
  }

  50% {
    border-top: 16px rgba(0, 0, 0, 0.25) solid;
    border-right: 16px rgba(0, 0, 0, 0.25) solid;
    border-bottom: 16px rgba(0, 0, 0, 0.75) solid;
    border-left: 16px rgba(0, 0, 0, 0.25) solid;
  }

  75% {
    border-top: 16px rgba(0, 0, 0, 0.25) solid;
    border-right: 16px rgba(0, 0, 0, 0.25) solid;
    border-bottom: 16px rgba(0, 0, 0, 0.25) solid;
    border-left: 16px rgba(0, 0, 0, 0.75) solid;
  }

  100% {
    border-top: 16px rgba(0, 0, 0, 0.75) solid;
    border-right: 16px rgba(0, 0, 0, 0.25) solid;
    border-bottom: 16px rgba(0, 0, 0, 0.25) solid;
    border-left: 16px rgba(0, 0, 0, 0.25) solid;
  }
}

.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-title {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: #059669;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

#captainHub.captain-hub--v2.is-idle-dock:has(.cap-home-sheet--wait-min) .cap-hub-stage::after {
  height: min(150px, 20vh) !important;
  background: transparent !important;
}

.captain-hub--v2 .cap-wait-radar-float {
  position: absolute;
  top: calc(var(--cap-wait-radar-size, 56px) / -2);
  left: 0;
  right: 0;
  z-index: 6;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--cap-wait-radar-size, 56px);
  pointer-events: none;
}

.captain-hub--v2 .cap-home-sheet-handle {
  display: block;
  width: 32px;
  height: 3px;
  margin: 8px auto 0;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.07);
}

.captain-hub--v2 .cap-home-sheet-accent {
  height: 3px;
  margin-top: 10px;
  background: var(--cap-gradient-brand-gold);
}

.captain-hub--v2 .cap-home-sheet-accent--muted {
  background: linear-gradient(90deg, #e2e8f0 0%, #94a3b8 50%, #e2e8f0 100%);
}

.captain-hub--v2 .cap-home-sheet-inner {
  direction: rtl;
  padding: 12px 18px 6px;
  text-align: right;
}

.captain-hub--v2 .cap-home-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 4px;
}

.captain-hub--v2 .cap-home-sheet-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(236, 253, 245, 0.95);
  border: 1px solid rgba(34, 197, 94, 0.16);
  font-size: 11px;
  font-weight: 800;
  color: #059669;
  white-space: nowrap;
  flex-shrink: 0;
}

.captain-hub--v2 .cap-home-sheet-status--offline {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #64748b;
}

.captain-hub--v2 .cap-home-sheet-title {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 17px;
  font-weight: 800;
  color: #065f46;
  letter-spacing: -0.02em;
  line-height: 1.25;
  text-align: left;
}

.captain-hub--v2 .cap-home-sheet--offline .cap-home-sheet-title {
  color: var(--cap-text);
}

.captain-hub--v2 .cap-home-sheet-sub {
  display: block;
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 600;
  color: #64748b;
  line-height: 1.5;
}

.captain-hub--v2 .cap-home-sheet-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 12px;
}

.captain-hub--v2 .cap-home-sheet-stats--muted .cap-home-stat {
  background: #f8fafc;
  border-color: #e8edf2;
}

.captain-hub--v2 .cap-home-sheet-stats--muted .cap-home-stat strong {
  color: #64748b;
}

.captain-hub--v2 .cap-home-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 10px 8px;
  border-radius: 14px;
  background: linear-gradient(180deg, #f8fffb 0%, #f0fdf4 100%);
  border: 1px solid rgba(34, 197, 94, 0.12);
}

.captain-hub--v2 .cap-home-stat strong {
  font-size: 18px;
  font-weight: 800;
  color: #059669;
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.captain-hub--v2 .cap-home-stat span {
  font-size: 10px;
  font-weight: 700;
  color: #94a3b8;
}

.captain-hub--v2 .cap-home-sheet-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.captain-hub--v2 .cap-home-sheet-btn {
  appearance: none;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 14px;
  background: #fff;
  padding: 11px 10px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  color: #334155;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.12s ease, border-color 0.15s ease;
}

.captain-hub--v2 .cap-home-sheet-btn--primary {
  background: var(--cap-gradient-brand);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 14px rgba(34, 197, 94, 0.28);
}

.captain-hub--v2 .cap-home-sheet-btn:active {
  transform: scale(0.98);
}

.captain-hub--v2 .cap-hub-idle-plate::before {
  display: none;
}

.captain-hub--v2 .cap-hub-idle-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #10b981;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);
  animation: capLiveDotPulse 2.2s ease-in-out infinite;
}

.captain-hub--v2 .cap-hub-offline-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #94a3b8;
  box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.18);
}

@keyframes capSheetSlideUp {
  from {
    opacity: 0;
    transform: translateY(100%);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-home-sheet {
    animation: none;
  }

  .captain-hub--v2 .cap-hub-idle-dot {
    animation: none;
  }
}

.captain-hub--v2:not(.has-trip):not(.has-offer) .cap-hub-trip-stack {
  display: none !important;
}

.captain-hub--v2.is-online:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-map-pulse.on {
  width: 18px;
  height: 18px;
  margin: -9px 0 0 -9px;
  background: var(--cap-green);
  box-shadow: 0 0 0 8px rgba(34, 197, 94, 0.18);
}

.captain-hub--v2.is-online:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-map-pulse.on::before,
.captain-hub--v2.is-online:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-map-pulse.on::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  height: 100%;
  margin: -50% 0 0 -50%;
  border-radius: 50%;
  border: 2px solid rgba(34, 197, 94, 0.42);
  animation: capIdleRadar 2.8s ease-out infinite;
  pointer-events: none;
}

.captain-hub--v2.is-online:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-map-pulse.on::after {
  animation-delay: 1.4s;
}

.captain-hub--v2.is-online:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-map-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 50% 42%, rgba(34, 197, 94, 0.1) 0%, transparent 42%);
}

@keyframes capIdleRadar {
  0% {
    transform: scale(1);
    opacity: 0.65;
  }

  100% {
    transform: scale(3.2);
    opacity: 0;
  }
}

@keyframes capIdleSlideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes capIdleSlideUp {
  from {
    opacity: 0;
    transform: translateY(100%);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-home-sheet {
    animation: none;
  }

  .captain-hub--v2 .cap-hub-idle-dot {
    animation: none;
  }

  .captain-hub--v2.is-online:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-map-pulse.on::before,
  .captain-hub--v2.is-online:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-map-pulse.on::after {
    animation: none;
    display: none;
  }
}

.captain-hub--v2 .cap-hub-offline[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-hub-offline-sheet.cap-home-sheet {
  max-width: none;
  padding: 0;
  border: none;
  border-radius: 28px 28px 0 0;
  background: var(--cap-card-bg-soft);
  box-shadow: var(--cap-shadow-sheet);
  animation: capSheetSlideUp 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.captain-hub--v2 .cap-hub-offline-sheet:not(.cap-home-sheet) {
  width: 100%;
  max-width: 420px;
  padding: 16px 16px 14px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 20px;
  box-shadow: 0 12px 40px rgba(15, 23, 42, 0.12);
  animation: capIdleSlideUp 0.36s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.captain-hub--v2 .cap-hub-offline-line {
  width: 100%;
  height: 3px;
  margin: -16px -16px 14px;
  border-radius: 20px 20px 0 0;
  background: linear-gradient(90deg, #f1f5f9 0%, #cbd5e1 50%, #f1f5f9 100%);
}

.captain-hub--v2 .cap-hub-offline-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  margin-bottom: 12px;
}

.captain-hub--v2 .cap-hub-offline-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  border: 1px solid #e2e8f0;
  font-size: 13px;
  font-weight: 700;
  color: #64748b;
}

.captain-hub--v2 .cap-hub-offline-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #94a3b8;
  box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.2);
}

.captain-hub--v2 .cap-hub-offline-title {
  font-size: 17px;
  font-weight: 800;
  color: var(--cap-text);
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.captain-hub--v2 .cap-hub-offline-sub {
  font-size: 13px;
  font-weight: 600;
  color: var(--cap-muted);
  line-height: 1.45;
  max-width: 280px;
}

.captain-hub--v2 .cap-hub-offline-mini {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e8edf2;
  font-size: 13px;
  font-weight: 600;
  color: #94a3b8;
}

.captain-hub--v2 .cap-hub-offline-mini strong {
  font-size: 14px;
  font-weight: 800;
  color: #64748b;
}

.captain-hub--v2 .cap-hub-offline-mini-sep {
  color: #cbd5e1;
}

.captain-hub--v2 .cap-hub-live-status--offline .cap-hub-live-status-text {
  color: #64748b;
}

.captain-hub--v2 .cap-hub-live-status--offline .cap-hub-live-status-dot {
  background: #94a3b8;
  box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.18);
  animation: none;
}

@keyframes capOfflineSlideUp {
  from {
    opacity: 0;
    transform: translateY(100%);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-hub-offline-sheet {
    animation: none;
  }
}

.captain-hub--v2 .cap-hub-offer-card {
  max-height: var(--cap-offer-panel-h);
  min-height: 0;
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.12);
}

.captain-hub--v2 .cap-hub-offer-card--incoming {
  min-height: 0;
  max-height: min(68vh, 560px);
  padding: 10px 18px max(16px, env(safe-area-inset-bottom));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.captain-hub--v2 .cap-hub-card-offer {
  display: grid;
  gap: 12px;
}

.captain-hub--v2 .cap-offer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.captain-hub--v2 .cap-offer-header-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.captain-hub--v2 .cap-offer-header .cap-offer-badge {
  display: inline-flex;
  align-self: start;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--2t-green-soft, #ecfdf5);
  color: var(--2t-accent, #19a974);
  border: 1px solid var(--2t-green-soft-border, rgba(25, 169, 116, 0.2));
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.captain-hub--v2 .cap-offer-header .cap-offer-vehicle {
  display: block;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  color: var(--cap-muted);
  line-height: 1.3;
}

.captain-hub--v2 .cap-offer-close {
  width: 40px;
  height: 40px;
  border-radius: 14px;
  border-color: #e8ecf0;
  background: #fff;
  color: #94a3b8;
  flex-shrink: 0;
}

.captain-hub--v2 .cap-offer-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 16px;
  background: linear-gradient(180deg, #eef9f2 0%, #ffffff 68%);
  border: 1px solid var(--2t-green-soft-border, rgba(25, 169, 116, 0.2));
}

.captain-hub--v2 .cap-offer-price-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--2t-muted, #64748b);
  line-height: 1.3;
}

.captain-hub--v2 .cap-offer-price-row .cap-offer-price {
  margin: 0;
  font-size: 28px;
  font-weight: 900;
  color: var(--2t-accent, #19a974);
  letter-spacing: -0.04em;
  line-height: 1.1;
}

.captain-hub--v2 .cap-offer-route {
  border-radius: 16px;
  background: #fafbfc;
  border-color: #eef1f5;
}

.captain-hub--v2 .cap-offer-route-item {
  padding: 12px 14px;
}

.captain-hub--v2 .cap-offer-stop-text {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}

.captain-hub--v2 .cap-offer-stats {
  gap: 8px;
}

.captain-hub--v2 .cap-offer-stat {
  padding: 10px 6px;
  border-radius: 12px;
  background: #fafbfc;
  border-color: #eef1f5;
}

.captain-hub--v2 .cap-offer-stat-label {
  font-size: 10px;
  letter-spacing: 0.01em;
}

.captain-hub--v2 .cap-offer-stat strong {
  font-size: 14px;
  font-weight: 800;
  color: var(--cap-text);
}

.captain-hub--v2 .cap-offer-actions,
.captain-hub--v2 .cap-hub-offer-actions {
  display: grid;
  grid-template-columns: 1fr 1.55fr;
  gap: 12px;
  margin-top: 0;
  padding-top: 0;
}

.captain-hub--v2 #captainHubOffer[hidden],
.captain-hub--v2 .cap-hub-card-offer[hidden] {
  display: none !important;
}

.captain-hub--v2 #captainHubActive[hidden],
.captain-hub--v2 .cap-hub-card-trip[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-hub-offer-card--mode-trip #captainHubOffer,
.captain-hub--v2 .cap-hub-offer-card--mode-trip .cap-hub-card-offer {
  display: none !important;
}

.captain-hub--v2 .cap-hub-offer-card--mode-offer #captainHubActive,
.captain-hub--v2 .cap-hub-offer-card--mode-offer .cap-hub-card-trip {
  display: none !important;
}

.captain-hub--v2 .cap-hub-offer-card--mode-trip {
  min-height: 0;
  max-height: none;
  overflow: visible;
}

.captain-hub--v2 .cap-hub-offer-card--incoming .cap-hub-offer-accept,
.captain-hub--v2 .cap-offer-actions .cap-hub-offer-accept {
  min-height: 52px;
  padding: 0 20px;
  border-radius: 14px;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #fff;
  background: var(--2t-btn-primary, linear-gradient(145deg, #22c55e 0%, #16a34a 100%));
  border: none;
  box-shadow: var(--2t-btn-primary-shadow, 0 8px 20px rgba(34, 197, 94, 0.22));
}

.captain-hub--v2 .cap-hub-offer-card--incoming .cap-hub-offer-accept:active,
.captain-hub--v2 .cap-offer-actions .cap-hub-offer-accept:active {
  transform: scale(0.98);
  color: #fff;
  background: linear-gradient(145deg, #1fbf84 0%, var(--2t-accent, #19a974) 100%);
  border: none;
  box-shadow: 0 5px 14px rgba(25, 169, 116, 0.22);
}

.captain-hub--v2 .cap-hub-offer-card--incoming .cap-hub-offer-decline,
.captain-hub--v2 .cap-offer-actions .cap-hub-offer-decline {
  min-height: 52px;
  padding: 0 16px;
  border-radius: 14px;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.01em;
  background: var(--2t-surface-2, #f3f5f7);
  border: 1px solid var(--2t-line, rgba(15, 23, 42, 0.08));
  color: var(--2t-danger, #e5484d);
  box-shadow: none;
}

.captain-hub--v2 .cap-hub-offer-card--incoming .cap-hub-offer-decline:active,
.captain-hub--v2 .cap-offer-actions .cap-hub-offer-decline:active {
  background: #eef1f4;
  color: #dc2626;
  border-color: rgba(15, 23, 42, 0.1);
  transform: scale(0.98);
}

.captain-hub--v2 .cap-offer-line-value {
  font-size: 16px;
}

.captain-hub--v2 .cap-offer-line--price .cap-offer-line-value {
  color: var(--cap-green);
  font-size: 20px;
  font-weight: 900;
}

.captain-hub--v2 .cap-trip-bar {
  display: grid;
  gap: 12px;
}

.captain-hub--v2 .cap-hub-card-trip {
  display: grid;
  gap: 12px;
}

.captain-hub--v2 .cap-trip-pickup-ui {
  display: grid;
  gap: 14px;
}

.captain-hub--v2 .cap-trip-pickup-ui[hidden],
.captain-hub--v2 .cap-trip-pickup-ui--off,
.captain-hub--v2.trip-in-ride #capTripPickupUi {
  display: none !important;
}

.captain-hub--v2.trip-in-ride .cap-trip-contact--map-float,
.captain-hub--v2.trip-in-ride #capMapHud {
  display: none !important;
}

.captain-hub--v2.trip-in-ride .cap-trip-bar {
  gap: 0;
}

.captain-hub--v2.trip-in-ride #capTripRideDock {
  display: block;
}

.captain-hub--v2 .cap-trip-stage {
  padding: 2px 4px 0;
  text-align: center;
}

.captain-hub--v2 .cap-trip-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-bottom: 18px;
}

.captain-hub--v2 .cap-trip-step {
  width: 26px;
  height: 3px;
  border-radius: 999px;
  background: #e2e8f0;
  transition: background 0.28s ease, width 0.28s ease, transform 0.28s ease;
}

.captain-hub--v2 .cap-trip-step.is-on {
  width: 34px;
  background: var(--2t-accent, #19a974);
  transform: scaleY(1.15);
}

.captain-hub--v2 .cap-trip-step.is-done {
  background: var(--2t-accent, #19a974);
}

.captain-hub--v2 .cap-trip-stage--arriving .cap-trip-step.is-on {
  background: var(--2t-brand-gold, #d6a11d);
}

.captain-hub--v2 .cap-trip-stage--arriving .cap-trip-step.is-done {
  background: var(--2t-accent, #19a974);
}

.captain-hub--v2 .cap-trip-hero {
  padding: 0 10px 2px;
}

.captain-hub--v2 .cap-trip-kicker {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 800;
  color: var(--2t-accent, #19a974);
  letter-spacing: 0.04em;
  line-height: 1.2;
}

.captain-hub--v2 .cap-trip-stage--arriving .cap-trip-kicker {
  color: var(--2t-brand-gold, #d6a11d);
}

.captain-hub--v2 .cap-trip-hero-title {
  margin: 0;
  font-size: 24px;
  font-weight: 900;
  color: #0f172a;
  line-height: 1.15;
  letter-spacing: -0.03em;
}

.captain-hub--v2 .cap-trip-hero-sub {
  margin: 10px auto 0;
  max-width: 28em;
  font-size: 13px;
  font-weight: 600;
  color: var(--2t-muted, #64748b);
  line-height: 1.55;
}

.captain-hub--v2 .cap-trip-contact--round,
.captain-hub--v2 .cap-trip-contact.cap-trip-contact--round,
.captain-hub--v2 .cap-trip-ride-contact.cap-trip-contact--round {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 36px;
  width: 100%;
  padding: 2px 12px 6px;
  margin: 0;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  outline: none;
}

.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-divider {
  display: none !important;
}

.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-btn,
.captain-hub--v2 .cap-trip-ride-contact.cap-trip-contact--round .cap-trip-contact-btn {
  flex: 0 0 auto;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  min-height: 0;
  width: auto;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 0;
  background: none !important;
  box-shadow: none !important;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-btn:active,
.captain-hub--v2 .cap-trip-ride-contact.cap-trip-contact--round .cap-trip-contact-btn:active {
  background: none !important;
  transform: none;
}

.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-icon {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #ecfdf5 0%, #d1fae5 100%);
  border: none;
  box-shadow: 0 8px 20px rgba(25, 169, 116, 0.14);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-btn--call .cap-trip-contact-icon {
  background: linear-gradient(145deg, #f0fdf4 0%, #e6f7ef 100%);
  box-shadow: 0 8px 20px rgba(25, 169, 116, 0.12);
}

.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-icon .ui-icon--fi {
  font-size: 24px;
  color: var(--2t-accent, #19a974);
  line-height: 1;
  transition: color 0.15s ease;
}

.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-btn:active .cap-trip-contact-icon {
  transform: scale(0.94);
  box-shadow: 0 4px 12px rgba(25, 169, 116, 0.12);
}

.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-btn:active .cap-trip-contact-icon .ui-icon--fi {
  color: var(--2t-accent-dark, #15803d);
}

.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-label,
.captain-hub--v2 .cap-trip-contact--round .cap-trip-ride-contact-label {
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-btn:active .cap-trip-contact-label,
.captain-hub--v2 .cap-trip-contact--round .cap-trip-contact-btn:active .cap-trip-ride-contact-label {
  color: var(--2t-accent-dark, #15803d);
}

.captain-hub--v2 .cap-trip-footer {
  display: grid;
  gap: 10px;
  padding-top: 2px;
}

.captain-hub--v2 .cap-trip-cancel-link {
  min-height: 44px;
  padding: 8px 12px;
  border: none;
  border-radius: 12px;
  background: transparent;
  color: var(--2t-danger, #e5484d);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
  cursor: pointer;
  transition: background 0.18s ease, opacity 0.18s ease;
}

.captain-hub--v2 .cap-trip-cancel-link:active {
  background: var(--2t-danger-soft, #fef2f2);
}

.captain-hub--v2 .cap-trip-cancel-link:disabled {
  opacity: 0.55;
  pointer-events: none;
}

.captain-hub--v2 .cap-trip-route--single .cap-offer-stop-label {
  color: var(--2t-accent, #19a974);
  font-weight: 800;
}

.captain-hub--v2 .cap-trip-rider-signal {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  animation: capTripArrivedIn 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.captain-hub--v2 .cap-trip-rider-signal[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-trip-rider-signal--coming {
  background: linear-gradient(145deg, #eff6ff 0%, #ecfeff 100%);
  border: 1px solid rgba(14, 165, 233, 0.24);
}

.captain-hub--v2 .cap-trip-rider-signal--wait {
  background: linear-gradient(145deg, #fffbeb 0%, #fff7ed 100%);
  border: 1px solid rgba(245, 158, 11, 0.28);
}

.captain-hub--v2 .cap-trip-rider-signal--pulse {
  animation: capTripRiderSignalPulse 1s ease-in-out 3;
}

@keyframes capTripRiderSignalPulse {
  0%, 100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.015);
  }
}

.captain-hub--v2 .cap-trip-rider-signal-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.captain-hub--v2 .cap-trip-rider-signal--coming .cap-trip-rider-signal-icon {
  background: #0ea5e9;
  color: #fff;
  box-shadow: 0 6px 16px rgba(14, 165, 233, 0.28);
}

.captain-hub--v2 .cap-trip-rider-signal--wait .cap-trip-rider-signal-icon {
  background: #f59e0b;
  color: #fff;
  box-shadow: 0 6px 16px rgba(245, 158, 11, 0.28);
}

.captain-hub--v2 .cap-trip-rider-signal-icon .ui-icon--fi {
  font-size: 20px;
  color: #fff;
  line-height: 1;
}

.captain-hub--v2 .cap-trip-rider-signal-copy {
  min-width: 0;
  text-align: start;
}

.captain-hub--v2 .cap-trip-rider-signal-copy strong {
  display: block;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.3;
}

.captain-hub--v2 .cap-trip-rider-signal--coming .cap-trip-rider-signal-copy strong {
  color: #0369a1;
}

.captain-hub--v2 .cap-trip-rider-signal--wait .cap-trip-rider-signal-copy strong {
  color: #b45309;
}

.captain-hub--v2 .cap-trip-rider-signal-copy span {
  display: block;
  margin-top: 3px;
  font-size: 12px;
  font-weight: 600;
  color: #64748b;
  line-height: 1.45;
}

.captain-hub--v2 .cap-trip-pickup-ui--arriving .cap-trip-rider-signal {
  margin-bottom: 2px;
}

.captain-hub--v2 .cap-hub-trip-stack {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: stretch;
  pointer-events: none;
}

.captain-hub--v2 .cap-hub-trip-stack > #captainHubCard {
  pointer-events: auto;
}

.captain-hub--v2 .cap-hub-trip-stack #captainHubCard {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  flex-shrink: 0;
}

.captain-hub.trip-map-mode .cap-hub-trip-stack,
.captain-hub.trip-to-pickup .cap-hub-trip-stack {
  z-index: 10;
}

.captain-hub--v2 .cap-hub-offer-card--arrived {
  padding: 16px 18px max(16px, env(safe-area-inset-bottom));
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -14px 44px rgba(15, 23, 42, 0.13);
}

.captain-hub--v2 .cap-trip-pickup-ui--arriving {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.captain-hub--v2 .cap-trip-arriving-panel {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.captain-hub--v2 .cap-trip-arriving-panel[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-trip-arriving-panel--enter {
  animation: capTripArrivedIn 0.44s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.captain-hub--v2 .cap-trip-arriving-head {
  text-align: center;
  padding: 2px 4px 14px;
}

.captain-hub--v2 .cap-trip-arriving-kicker {
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--2t-accent, #19a974);
  line-height: 1.3;
}

.captain-hub--v2 .cap-trip-arriving-title {
  margin: 8px 0 0;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: #0f172a;
  line-height: 1.25;
}

.captain-hub--v2 .cap-trip-arriving-sub {
  margin: 8px auto 0;
  max-width: 24em;
  font-size: 13px;
  font-weight: 600;
  color: #64748b;
  line-height: 1.55;
}

.captain-hub--v2 .cap-trip-arrived-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  background: linear-gradient(145deg, #ecfdf5 0%, #f0fdf4 100%);
  border: 1px solid rgba(25, 169, 116, 0.22);
  animation: capTripArrivedIn 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.captain-hub--v2 .cap-trip-arrived-banner[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-trip-arriving-panel .cap-trip-arrived-banner {
  animation: none;
}

@keyframes capTripArrivedIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.captain-hub--v2 .cap-trip-arrived-check {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--2t-accent, #19a974);
  color: #fff;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: 0 6px 16px rgba(25, 169, 116, 0.28);
}

.captain-hub--v2 .cap-trip-arrived-check .ui-icon--fi {
  font-size: 20px;
  color: #fff;
  line-height: 1;
}

.captain-hub--v2 .cap-trip-arrived-copy {
  min-width: 0;
  text-align: start;
}

.captain-hub--v2 .cap-trip-arrived-copy strong {
  display: block;
  font-size: 14px;
  font-weight: 800;
  color: var(--2t-accent-dark, #15803d);
  line-height: 1.3;
}

.captain-hub--v2 .cap-trip-arrived-copy span {
  display: block;
  margin-top: 3px;
  font-size: 12px;
  font-weight: 600;
  color: #64748b;
  line-height: 1.45;
}

.captain-hub--v2 .cap-trip-pickup-ui--arriving .cap-trip-hero,
.captain-hub--v2 .cap-trip-pickup-ui--arriving .cap-trip-route {
  display: none !important;
}

.captain-hub--v2 .cap-trip-pickup-ui--arriving .cap-trip-arrived-banner {
  margin: 0 0 14px;
}

.captain-hub--v2 .cap-trip-pickup-ui--arriving .cap-trip-arrived-copy span {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.captain-hub--v2 .cap-trip-pickup-ui--arriving .cap-trip-footer {
  gap: 10px;
  padding-top: 0;
  margin-top: 2px;
}

.captain-hub--v2 .cap-trip-contact-slot:empty {
  display: none;
}

.captain-hub--v2 {
  --cap-hub-v2-header-h: calc(max(6px, env(safe-area-inset-top)) + 57px);
}

.captain-hub--v2.has-trip #capMapHud {
  bottom: var(--cap-map-hud-bottom, 0px);
}

.captain-hub--v2 #capMapHud {
  position: absolute;
  top: var(--cap-hub-v2-header-h);
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 11;
  pointer-events: none;
  overflow: visible;
}

.captain-hub--v2 #capMapHud[hidden] {
  display: none !important;
}

.captain-hub--v2 #capTripHeaderAlert {
  position: absolute;
  top: 8px;
  left: max(12px, env(safe-area-inset-left));
  right: max(12px, env(safe-area-inset-right));
  z-index: 2;
  pointer-events: none;
}

.captain-hub--v2 #capTripHeaderAlert[hidden] {
  display: none !important;
}

.captain-hub--v2 #capTripHeaderAlert .cap-trip-rider-signal {
  pointer-events: auto;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
}

.captain-hub--v2 #capMapHud .cap-trip-contact--map-float,
.captain-hub--v2 .cap-trip-contact--map-float {
  direction: ltr;
  position: absolute;
  top: auto;
  left: max(14px, env(safe-area-inset-left));
  right: auto;
  bottom: max(12px, env(safe-area-inset-bottom, 0px));
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 12px;
  width: auto;
  max-width: none;
  padding: 0;
  margin: 0;
  transform: none;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  pointer-events: auto;
}

.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-btn {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: auto;
  min-height: 0;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 0;
  background: none !important;
  box-shadow: none !important;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.82);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-btn--chat .cap-trip-contact-icon,
.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-btn--call .cap-trip-contact-icon {
  background: rgba(255, 255, 255, 0.72);
}

.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-icon .ui-icon--fi {
  font-size: 18px;
  line-height: 1;
}

.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-btn--chat .cap-trip-contact-icon .ui-icon--fi {
  color: rgba(14, 165, 233, 0.92);
}

.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-btn--call .cap-trip-contact-icon .ui-icon--fi {
  color: rgba(25, 169, 116, 0.92);
}

.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-btn:active .cap-trip-contact-icon {
  transform: scale(0.92);
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.08);
  background: rgba(255, 255, 255, 0.88);
}

.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-btn--chat:active .cap-trip-contact-icon .ui-icon--fi {
  color: #0284c7;
}

.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-btn--call:active .cap-trip-contact-icon .ui-icon--fi {
  color: #15803d;
}

.captain-hub--v2 .cap-trip-contact--map-float .cap-trip-contact-label {
  display: none;
}

.captain-hub--v2 .cap-trip-contact--banner {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  width: 100%;
  padding: 8px;
  margin: 0;
  border-radius: 14px;
  border: 1px solid rgba(25, 169, 116, 0.22);
  background: linear-gradient(145deg, #ecfdf5 0%, #f0fdf4 100%) !important;
  box-shadow: none !important;
  overflow: hidden;
}

.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  min-width: 0;
  min-height: 72px;
  padding: 10px 8px;
  margin: 0;
  border: none !important;
  border-radius: 10px;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-btn + .cap-trip-contact-btn {
  border-inline-start: 1px solid rgba(25, 169, 116, 0.2);
}

.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-btn:active {
  transform: none;
  background: rgba(25, 169, 116, 0.1) !important;
}

.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: var(--2t-accent, #19a974);
  border: none;
  box-shadow: 0 6px 16px rgba(25, 169, 116, 0.28);
}

.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-icon .ui-icon--fi {
  font-size: 20px;
  color: #fff;
  line-height: 1;
}

.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-label {
  flex: none;
  min-width: 0;
  font-size: 13px;
  font-weight: 800;
  color: var(--2t-accent-dark, #15803d);
  line-height: 1.3;
  text-align: center;
}

.captain-hub--v2 .cap-trip-pickup-ui--arriving .cap-trip-contact--banner {
  margin-top: 0;
}

.captain-hub--v2 .cap-trip-action {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 10px;
  row-gap: 2px;
  width: 100%;
  min-height: 54px;
  padding: 12px 16px;
  border-radius: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
  text-align: start;
}

.captain-hub--v2 .cap-trip-action-label {
  grid-column: 1;
  grid-row: 1;
  font-size: 16px;
  line-height: 1.2;
}

.captain-hub--v2 .cap-trip-action-tag {
  grid-column: 1;
  grid-row: 2;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  opacity: 0.88;
}

.captain-hub--v2 .cap-trip-action-icon {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
}

.captain-hub--v2 .cap-trip-action--reach {
  color: var(--2t-accent-dark, #15803d);
  background: #fff;
  border: 2px solid rgba(25, 169, 116, 0.35);
  box-shadow: 0 4px 14px rgba(25, 169, 116, 0.08);
}

.captain-hub--v2 .cap-trip-action--reach .cap-trip-action-tag {
  color: var(--2t-accent, #19a974);
}

.captain-hub--v2 .cap-trip-action--reach:active {
  transform: scale(0.98);
  background: #f0fdf4;
  border-color: rgba(25, 169, 116, 0.5);
}

.captain-hub--v2 .cap-trip-action--reach .cap-trip-action-icon .ui-icon--fi {
  color: var(--2t-accent, #19a974);
  font-size: 20px;
}

.captain-hub--v2 .cap-trip-action--start-hero {
  min-height: 62px;
  padding: 14px 18px;
  color: #fff;
  background: linear-gradient(135deg, #d6a11d 0%, #19a974 52%, #16a34a 100%);
  border: none;
  box-shadow: 0 12px 28px rgba(214, 161, 29, 0.28);
}

.captain-hub--v2 .cap-trip-action--start-hero .cap-trip-action-tag--start {
  color: rgba(255, 255, 255, 0.92);
  font-size: 12px;
  font-weight: 800;
}

.captain-hub--v2 .cap-trip-action--start-hero .cap-trip-action-label {
  font-size: 18px;
}

.captain-hub--v2 .cap-trip-action--start-hero .cap-trip-action-icon .ui-icon--fi {
  color: #fff;
  font-size: 22px;
}

.captain-hub--v2 .cap-trip-action--start-hero:active {
  transform: scale(0.98);
  box-shadow: 0 8px 20px rgba(214, 161, 29, 0.22);
}

.captain-hub--v2 .cap-trip-action--start-hero.cap-trip-start-focus {
  animation: capTripStartPulse 1.1s ease-in-out 3;
}

@keyframes capTripStartPulse {
  0%, 100% {
    box-shadow: 0 12px 28px rgba(214, 161, 29, 0.28);
    transform: scale(1);
  }

  50% {
    box-shadow: 0 16px 36px rgba(214, 161, 29, 0.42);
    transform: scale(1.02);
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-trip-rider-signal,
  .captain-hub--v2 .cap-trip-rider-signal--pulse {
    animation: none;
  }

  .captain-hub--v2 .cap-trip-arrived-banner,
  .captain-hub--v2 .cap-trip-arriving-panel--enter {
    animation: none;
  }

  .captain-hub--v2 .cap-trip-action--start-hero.cap-trip-start-focus {
    animation: none;
  }
}

.captain-hub--v2 .cap-trip-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 16px;
  background: linear-gradient(180deg, #eef9f2 0%, #ffffff 68%);
  border: 1px solid var(--2t-green-soft-border, rgba(25, 169, 116, 0.2));
}

.captain-hub--v2 .cap-trip-price-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--2t-muted, #64748b);
  line-height: 1.3;
}

.captain-hub--v2 .cap-trip-price-copy {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  direction: ltr;
  flex-shrink: 0;
}

.captain-hub--v2 .cap-trip-price {
  margin: 0;
  font-size: 26px;
  font-weight: 900;
  color: var(--2t-accent, #19a974);
  letter-spacing: -0.04em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}

.captain-hub--v2 .cap-trip-pay-chip {
  display: inline-flex;
  align-items: center;
  padding: 4px 9px;
  border-radius: 999px;
  background: var(--2t-green-soft, #ecfdf5);
  color: var(--2t-accent-dark, #15803d);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.captain-hub--v2 .cap-trip-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.captain-hub--v2 .cap-trip-phase {
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--2t-muted, #64748b);
  line-height: 1.2;
  padding: 6px 11px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid #eef1f5;
  letter-spacing: -0.01em;
}

.captain-hub--v2 .cap-trip-phase--matched {
  color: var(--2t-accent-dark, #15803d);
  background: var(--2t-green-soft, #ecfdf5);
  border-color: var(--2t-green-soft-border, rgba(25, 169, 116, 0.2));
}

.captain-hub--v2 .cap-trip-phase--arriving {
  color: var(--2t-brand-gold, #d6a11d);
  background: #fffdf3;
  border-color: rgba(214, 161, 29, 0.22);
}

.captain-hub--v2 .cap-trip-phase--active {
  color: var(--2t-accent-dark, #15803d);
  background: var(--2t-green-soft, #ecfdf5);
  border-color: var(--2t-green-soft-border, rgba(25, 169, 116, 0.2));
}

.captain-hub--v2 .cap-trip-meta {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  margin: 0;
  line-height: 1.2;
  white-space: nowrap;
  flex-shrink: 0;
  direction: ltr;
}

.captain-hub--v2 .cap-trip-meta-price {
  font-size: 13px;
  font-weight: 700;
  color: #334155;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.captain-hub--v2 .cap-trip-meta-sep {
  color: #cbd5e1;
  font-size: 12px;
  font-weight: 400;
}

.captain-hub--v2 .cap-trip-meta-pay {
  font-size: 11px;
  font-weight: 500;
  color: #94a3b8;
}

.captain-hub--v2 .cap-trip-route--single .cap-offer-route-item {
  border-bottom: none;
}

.captain-hub--v2 .cap-trip-route.cap-offer-route {
  border-radius: 16px;
  background: #fafbfc;
  border-color: #eef1f5;
}

.captain-hub--v2 .cap-trip-route--single .cap-offer-route-item--pick .cap-offer-route-marker::after {
  display: none;
}

.captain-hub--v2 .cap-trip-route--single .cap-offer-stop-text {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.captain-hub--v2 .cap-trip-contact:not(.cap-trip-contact--round):not(.cap-trip-contact--map-float) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 6px;
  border-radius: 16px;
  background: #fafbfc;
  border: 1px solid #eef1f5;
}

.captain-hub--v2 .cap-trip-contact:not(.cap-trip-contact--round):not(.cap-trip-contact--map-float) .cap-trip-contact-btn,
.captain-hub--v2 .cap-trip-ride-contact:not(.cap-trip-contact--round):not(.cap-trip-contact--map-float) .cap-trip-contact-btn {
  flex: 1;
  display: grid;
  place-items: center;
  min-height: 48px;
  padding: 10px;
  border: none;
  border-radius: 12px;
  background: transparent;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.captain-hub--v2 .cap-trip-contact:not(.cap-trip-contact--round):not(.cap-trip-contact--map-float) .cap-trip-contact-btn:active,
.captain-hub--v2 .cap-trip-ride-contact:not(.cap-trip-contact--round):not(.cap-trip-contact--map-float) .cap-trip-contact-btn:active {
  transform: scale(0.96);
  background: rgba(255, 255, 255, 0.72);
}

.captain-hub--v2 .cap-trip-contact-divider {
  width: 1px;
  height: 26px;
  flex-shrink: 0;
  background: #e8ecf0;
}

.captain-hub--v2 .cap-trip-contact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.captain-hub--v2 .cap-trip-contact-icon .ui-icon--fi {
  font-size: 22px;
  color: var(--2t-accent, #19a974);
  transition: color 0.15s ease;
}

.captain-hub--v2 .cap-trip-contact-btn--call .cap-trip-contact-icon .ui-icon--fi {
  color: var(--2t-accent, #19a974);
}

.captain-hub--v2 .cap-trip-contact-btn:active .cap-trip-contact-icon .ui-icon--fi {
  color: var(--2t-accent-dark, #15803d);
}

.captain-hub--v2 .cap-trip-contact-btn--call:active .cap-trip-contact-icon .ui-icon--fi {
  color: var(--2t-accent-dark, #15803d);
}

.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-btn .cap-trip-contact-icon .ui-icon--fi,
.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-btn--call .cap-trip-contact-icon .ui-icon--fi {
  color: #fff !important;
}

.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-btn:active .cap-trip-contact-icon .ui-icon--fi,
.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-btn--call:active .cap-trip-contact-icon .ui-icon--fi {
  color: #fff !important;
}

.captain-hub--v2 .cap-trip-contact--banner .cap-trip-contact-icon {
  display: grid;
  place-items: center;
}

.captain-hub--v2 .cap-trip-action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  flex-shrink: 0;
}

.captain-hub--v2 .cap-trip-action-icon .ui-icon--fi {
  font-size: 18px;
}

.captain-hub--v2.trip-in-ride #captainHubCard {
  pointer-events: none;
  background: transparent;
  box-shadow: none;
}

.captain-hub--v2.trip-in-ride .cap-hub-offer-card--ride-dock {
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  max-height: none;
  overflow: visible;
  pointer-events: auto;
}

.captain-hub--v2.trip-in-ride .cap-hub-offer-card--ride-dock.cap-hub-offer-card--trip-bar {
  padding: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.captain-hub--v2.trip-in-ride .cap-trip-bar {
  gap: 0;
}

.captain-hub--v2 .cap-trip-action[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-trip-ride-sheet {
  position: relative;
  width: 100%;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
}

.captain-hub--v2 .cap-trip-ride-sheet::before {
  display: none;
}

.captain-hub--v2 .cap-trip-ride-sheet[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-trip-ride-sheet[hidden]::before {
  display: none;
}

.captain-hub--v2 .cap-trip-ride-dock {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
}

.captain-hub--v2 .cap-trip-ride-compact {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  padding: 8px 12px max(10px, env(safe-area-inset-bottom));
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.92);
  border-radius: 20px 20px 0 0;
  box-shadow:
    0 -16px 44px rgba(15, 23, 42, 0.13),
    0 -1px 0 rgba(15, 23, 42, 0.05);
  animation: capTripRideDockIn 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.captain-hub--v2 .cap-trip-ride-compact .cap-trip-ride-live-line {
  width: 40px;
  height: 4px;
  margin: 0 auto 0;
  border-radius: 999px;
  background: #e2e8f0;
}

.captain-hub--v2 .cap-trip-ride-compact .cap-trip-ride-live-line-fill {
  width: 100%;
  animation: none;
  opacity: 0.85;
}

.captain-hub--v2 .cap-trip-ride-status {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 2px;
}

.captain-hub--v2 .cap-trip-ride-live-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 11px 4px 9px;
  border-radius: 999px;
  background: linear-gradient(145deg, #ecfdf5 0%, #f0fdf4 100%);
  border: 1px solid rgba(25, 169, 116, 0.22);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--2t-accent-dark, #15803d);
  line-height: 1.2;
}

.captain-hub--v2 .cap-trip-ride-live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--2t-accent, #19a974);
  box-shadow: 0 0 0 3px rgba(25, 169, 116, 0.18);
  animation: capRideLivePulse 1.85s ease-in-out infinite;
}

.captain-hub--v2 .cap-trip-ride-dest-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 9px 10px;
  border-radius: 14px;
  background: linear-gradient(145deg, #f8fafc 0%, #f1f5f9 100%);
  border: 1px solid #e8eef4;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.captain-hub--v2 .cap-trip-ride-pin {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 11px;
  background: #fff;
  border: 1px solid rgba(25, 169, 116, 0.16);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.captain-hub--v2 .cap-trip-ride-pin .ui-icon--fi {
  font-size: 16px;
  color: var(--2t-accent, #19a974);
  line-height: 1;
}

.captain-hub--v2 .cap-trip-ride-compact .cap-trip-ride-copy {
  flex: 1;
  min-width: 0;
  text-align: start;
}

.captain-hub--v2 .cap-trip-ride-compact .cap-trip-ride-kicker {
  display: block;
  margin: 0;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
  line-height: 1.2;
}

.captain-hub--v2 .cap-trip-ride-compact .cap-trip-ride-dest {
  margin: 3px 0 0;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f172a;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.captain-hub--v2 .cap-trip-ride-quick {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  padding: 3px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.captain-hub--v2 .cap-trip-ride-quick-btn {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 50%;
  border: none;
  background: transparent;
  box-shadow: none;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, transform 0.15s ease;
}

.captain-hub--v2 .cap-trip-ride-quick-btn--chat:active {
  background: rgba(2, 132, 199, 0.1);
}

.captain-hub--v2 .cap-trip-ride-quick-btn--call:active {
  background: rgba(21, 128, 61, 0.1);
}

.captain-hub--v2 .cap-trip-ride-quick-btn:active {
  transform: scale(0.92);
}

.captain-hub--v2 .cap-trip-ride-quick-icon {
  display: grid;
  place-items: center;
  line-height: 1;
}

.captain-hub--v2 .cap-trip-ride-quick-btn--chat .cap-trip-ride-quick-icon .ui-icon--fi {
  font-size: 16px;
  color: #0284c7;
}

.captain-hub--v2 .cap-trip-ride-quick-btn--call .cap-trip-ride-quick-icon .ui-icon--fi {
  font-size: 16px;
  color: #15803d;
}

.captain-hub--v2 .cap-trip-ride-end--compact {
  min-height: 44px;
  height: 44px;
  padding: 0 16px;
  border-radius: 13px;
  font-size: 13.5px;
  box-shadow: 0 6px 18px rgba(34, 197, 94, 0.26);
}

.captain-hub--v2 .cap-trip-ride-end--compact .cap-trip-ride-end-icon .ui-icon--fi {
  font-size: 15px;
}

@keyframes capTripRideDockIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes capRideLivePulse {
  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 3px rgba(25, 169, 116, 0.18);
  }

  50% {
    transform: scale(1.08);
    box-shadow: 0 0 0 5px rgba(25, 169, 116, 0.1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-trip-ride-compact {
    animation: none;
  }

  .captain-hub--v2 .cap-trip-ride-live-dot {
    animation: none;
  }
}

.captain-hub--v2 .cap-trip-ride-contact-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  padding: 14px 16px max(14px, env(safe-area-inset-bottom));
  background: #fff;
  border-top: 1px solid #f1f5f9;
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.12);
  overflow: hidden;
}

.captain-hub--v2 .cap-trip-ride-head {
  text-align: center;
  padding: 0 2px 2px;
}

.captain-hub--v2 .cap-trip-ride-kicker {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--2t-accent, #19a974);
  line-height: 1.3;
}

.captain-hub--v2 .cap-trip-ride-dest {
  margin: 6px 0 0;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f172a;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.captain-hub--v2 .cap-trip-ride-contact--inline {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 10px;
  width: 100%;
  padding: 0;
  margin: 0;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}

.captain-hub--v2 .cap-trip-ride-contact--inline .cap-trip-contact-btn {
  flex: 1;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid #eef1f5;
  background: #f8fafc !important;
  box-shadow: none !important;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.captain-hub--v2 .cap-trip-ride-contact--inline .cap-trip-contact-btn--call {
  background: #ecfdf5 !important;
  border-color: rgba(25, 169, 116, 0.2);
}

.captain-hub--v2 .cap-trip-ride-contact--inline .cap-trip-contact-btn:active {
  transform: scale(0.98);
  background: #f1f5f9 !important;
}

.captain-hub--v2 .cap-trip-ride-contact--inline .cap-trip-contact-btn--call:active {
  background: #dcfce7 !important;
}

.captain-hub--v2 .cap-trip-ride-contact--inline .cap-trip-contact-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: none;
  flex-shrink: 0;
}

.captain-hub--v2 .cap-trip-ride-contact--inline .cap-trip-contact-btn--chat .cap-trip-contact-icon .ui-icon--fi {
  color: #0284c7;
  font-size: 16px;
}

.captain-hub--v2 .cap-trip-ride-contact--inline .cap-trip-contact-btn--call .cap-trip-contact-icon {
  background: rgba(25, 169, 116, 0.12);
}

.captain-hub--v2 .cap-trip-ride-contact--inline .cap-trip-contact-btn--call .cap-trip-contact-icon .ui-icon--fi {
  color: #15803d;
  font-size: 16px;
}

.captain-hub--v2 .cap-trip-ride-contact--inline .cap-trip-ride-contact-label {
  font-size: 13px;
  font-weight: 700;
  color: #334155;
  line-height: 1.2;
}

.captain-hub--v2 .cap-trip-ride-live-line {
  position: relative;
  width: 100%;
  height: 3px;
  border-radius: 999px;
  background: #ecfdf5;
  overflow: hidden;
  flex-shrink: 0;
}

.captain-hub--v2 .cap-trip-ride-live-line-fill {
  display: block;
  width: 38%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(25, 169, 116, 0.15) 0%, var(--2t-accent, #19a974) 45%, var(--2t-accent-dark, #15803d) 100%);
  box-shadow: 0 0 10px rgba(25, 169, 116, 0.35);
  animation: capRideLiveFlow 2.6s ease-in-out infinite;
}

@keyframes capRideLiveFlow {
  0% {
    transform: translateX(170%);
  }

  100% {
    transform: translateX(-170%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-trip-ride-live-line-fill {
    animation: none;
    width: 62%;
    transform: none;
    margin: 0 auto;
    opacity: 0.85;
  }
}

.captain-hub--v2 .cap-trip-ride-contact:not(.cap-trip-contact--round) {
  flex-direction: row;
  width: 100%;
  padding: 6px;
  border-radius: 14px;
  background: #fafbfc;
  border: 1px solid #eef1f5;
  box-shadow: none;
}

.captain-hub--v2 .cap-trip-ride-contact:not(.cap-trip-contact--round) .cap-trip-contact-btn {
  display: inline-flex;
  flex: 1;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  height: auto;
  min-height: 48px;
  padding: 10px 12px;
  border-radius: 10px;
}

.captain-hub--v2 .cap-trip-ride-contact-label {
  font-size: 14px;
  font-weight: 600;
  color: #334155;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.captain-hub--v2 .cap-trip-ride-contact .cap-trip-contact-btn--call .cap-trip-ride-contact-label {
  color: #475569;
}

.captain-hub--v2 .cap-trip-ride-contact .cap-trip-contact-btn:active .cap-trip-ride-contact-label {
  color: var(--2t-accent-dark, #15803d);
}

.captain-hub--v2 .cap-trip-ride-contact .cap-trip-contact-btn--call:active .cap-trip-ride-contact-label {
  color: var(--2t-accent-dark, #15803d);
}

.captain-hub--v2 .cap-trip-ride-contact:not(.cap-trip-contact--round) .cap-trip-contact-btn:active {
  background: rgba(255, 255, 255, 0.72);
}

.captain-hub--v2 .cap-trip-ride-contact:not(.cap-trip-contact--round) .cap-trip-contact-divider {
  width: 1px;
  height: 28px;
  margin: 0;
}

.captain-hub--v2 .cap-trip-ride-contact .cap-trip-contact-icon .ui-icon--fi {
  font-size: 26px;
  width: 26px;
  height: 26px;
  line-height: 1;
}

.captain-hub--v2 .cap-trip-ride-end {
  display: inline-flex;
  width: 100%;
  flex: none;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  height: 52px;
  min-height: 52px;
  padding: 0 16px;
  border: none;
  border-radius: 14px;
  background: var(--2t-btn-primary, linear-gradient(145deg, #22c55e 0%, #16a34a 100%));
  box-shadow: var(--2t-btn-primary-shadow, 0 8px 20px rgba(34, 197, 94, 0.22));
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.02em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.captain-hub--v2 .cap-trip-ride-end:active {
  transform: scale(0.98);
  background: linear-gradient(145deg, #1fbf84 0%, var(--2t-accent, #19a974) 100%);
  box-shadow: 0 5px 14px rgba(25, 169, 116, 0.22);
}

.captain-hub--v2 .cap-trip-ride-end-text {
  line-height: 1.2;
}

.captain-hub--v2 .cap-trip-ride-end-icon .ui-icon--fi {
  font-size: 18px;
  color: #fff;
}

.captain-hub--v2 .cap-trip-ride-end:active .cap-trip-ride-end-icon .ui-icon--fi {
  color: #fff;
}

.captain-hub--v2.trip-in-ride .cap-hub-stage,
.captain-hub--v2.trip-in-ride.trip-map-mode .cap-hub-stage {
  position: relative;
  inset: auto;
  flex: 1;
  bottom: auto !important;
}

.captain-hub--v2 .cap-hub-offer-card--trip-bar {
  padding: 14px 18px max(18px, env(safe-area-inset-bottom));
  max-height: none;
  min-height: 0;
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.12);
}

.captain-hub--v2.has-trip .cap-hub-stage,
.captain-hub--v2.trip-map-mode .cap-hub-stage {
  position: relative;
  flex: 1;
  bottom: auto;
}

.captain-hub--v2.has-trip #captainHubCard {
  max-height: none;
}

.captain-hub--v2 .cap-trip-complete {
  position: absolute;
  inset: 0;
  z-index: 24;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
  background: rgba(15, 23, 42, 0.28);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  animation: capFadeIn 0.22s ease;
}

.captain-hub--v2 .cap-trip-complete[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-trip-complete-sheet {
  width: 100%;
  padding: 14px 16px max(16px, env(safe-area-inset-bottom));
  border-radius: 24px 24px 0 0;
  background: #fff;
  border-top: 1px solid #f1f5f9;
  box-shadow: 0 -8px 32px rgba(15, 23, 42, 0.12);
  animation: capSheetUp 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.captain-hub--v2 .cap-trip-complete-success-line {
  width: 100%;
  height: 3px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: #ecfdf5;
  overflow: hidden;
}

.captain-hub--v2 .cap-trip-complete-success-line-fill {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #34d399 0%, #22c55e 50%, #16a34a 100%);
  transform-origin: left center;
  animation: capCompleteLineIn 0.8s ease-out both;
}

@keyframes capCompleteLineIn {
  from {
    transform: scaleX(0);
  }

  to {
    transform: scaleX(1);
  }
}

.captain-hub--v2 .cap-trip-complete-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin-bottom: 14px;
  text-align: center;
}

.captain-hub--v2 .cap-trip-complete-badge {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, var(--cap-green-light) 0%, var(--cap-green-soft) 100%);
  border: 1px solid var(--cap-green-light-border);
  box-shadow: 0 4px 14px rgba(34, 197, 94, 0.14);
  margin-bottom: 4px;
}

.captain-hub--v2 .cap-trip-complete-badge .ui-icon--fi {
  font-size: 26px;
  color: var(--cap-icon-green);
}

.captain-hub--v2 .cap-trip-complete-title {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  color: var(--cap-text);
  letter-spacing: -0.02em;
}

.captain-hub--v2 .cap-trip-complete-sub {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--cap-muted);
}

.captain-hub--v2 .cap-trip-complete-earn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}

.captain-hub--v2 .cap-trip-complete-price {
  margin: 0;
  font-size: 32px;
  font-weight: 800;
  color: #334155;
  letter-spacing: -0.03em;
  line-height: 1.1;
}

.captain-hub--v2 .cap-trip-complete-pay {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid #eef1f5;
  font-size: 13px;
  font-weight: 700;
  color: #475569;
}

.captain-hub--v2 .cap-trip-complete-route {
  display: grid;
  gap: 10px;
  margin-bottom: 16px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #fafbfc;
  border: 1px solid #eef1f5;
}

.captain-hub--v2 .cap-trip-complete-stop {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
}

.captain-hub--v2 .cap-trip-complete-stop-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--cap-muted);
  line-height: 1.5;
  padding-top: 1px;
}

.captain-hub--v2 .cap-trip-complete-stop-text {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--cap-text);
  line-height: 1.45;
}

.captain-hub--v2 .cap-trip-complete-stop--pick .cap-trip-complete-stop-label {
  color: var(--cap-green-light-text);
}

.captain-hub--v2 .cap-trip-complete-stop--dest .cap-trip-complete-stop-label {
  color: #475569;
}

.captain-hub--v2 .cap-trip-complete-btn {
  display: inline-flex;
  width: 100%;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 0 20px;
  border: 1px solid var(--cap-green-light-border);
  border-radius: 14px;
  background: linear-gradient(180deg, var(--cap-green-light) 0%, var(--cap-green-soft) 100%);
  box-shadow: 0 2px 10px rgba(34, 197, 94, 0.1);
  color: var(--cap-green-light-text);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.02em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.captain-hub--v2 .cap-trip-complete-btn:active {
  transform: scale(0.98);
  background: #dcfce7;
  box-shadow: none;
}

.captain-hub--v2 .cap-trip-complete-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.captain-hub--v2 .cap-trip-complete-btn-icon .ui-icon--fi {
  font-size: 18px;
  color: var(--cap-icon-green);
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-trip-complete-success-line-fill {
    animation: none;
    transform: none;
  }

  .captain-hub--v2 .cap-trip-complete-sheet {
    animation: none;
  }
}

.captain-hub--v2 .cap-hub-drawer-link {
  width: 100%;
  min-height: 46px;
  margin-top: 8px;
  border: 1.5px solid #e8ecf0;
  border-radius: 12px;
  background: #fff;
  font-size: 14px;
  font-weight: 800;
  color: var(--cap-text);
}

.captain-hub--v2 .cap-hub-drawer--menu .cap-hub-drawer-body,
.captain-hub--v2 .cap-menu-drawer {
  padding: 0 0 max(18px, env(safe-area-inset-bottom));
}

.captain-hub--v2 .cap-menu-shell {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 4px 16px 0;
}

.captain-hub--v2 .cap-menu-hero {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 2px 0;
}

.captain-hub--v2 .cap-menu-hero-avatar {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: linear-gradient(180deg, var(--cap-green-light) 0%, var(--cap-green-soft) 100%);
  border: 1px solid var(--cap-green-light-border);
  color: var(--cap-green-light-text);
  font-size: 18px;
  font-weight: 800;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.captain-hub--v2 .cap-menu-hero-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.captain-hub--v2 .cap-menu-hero-copy strong {
  font-size: 17px;
  font-weight: 800;
  color: var(--cap-text);
  letter-spacing: -0.02em;
}

.captain-hub--v2 .cap-menu-hero-copy span {
  font-size: 13px;
  color: var(--cap-muted);
  line-height: 1.35;
}

.captain-hub--v2 .cap-menu-quick {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.captain-hub--v2 .cap-menu-quick-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 68px;
  padding: 10px 6px;
  border: 1px solid #eef1f5;
  border-radius: 14px;
  background: #fafbfc;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, transform 0.15s ease;
}

.captain-hub--v2 .cap-menu-quick-item:active {
  transform: scale(0.98);
  background: #f1f5f9;
}

.captain-hub--v2 .cap-menu-quick-item strong {
  font-size: 15px;
  font-weight: 800;
  color: var(--cap-text);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.captain-hub--v2 .cap-menu-quick-item span {
  font-size: 11px;
  font-weight: 600;
  color: var(--cap-muted);
}

.captain-hub--v2 .cap-menu-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.captain-hub--v2 .cap-menu-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 58px;
  padding: 10px 12px;
  border: 1px solid #eef1f5;
  border-radius: 14px;
  background: #fff;
  text-align: start;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}

.captain-hub--v2 .cap-menu-item:active {
  transform: scale(0.99);
  background: #f8fafc;
  border-color: #e2e8f0;
}

.captain-hub--v2 .cap-menu-item--voice {
  cursor: default;
}

.captain-hub--v2 .cap-menu-item--voice:active {
  transform: none;
}

.captain-hub--v2 .cap-menu-item--warn:active {
  background: #fff5f5;
  border-color: #fecaca;
}

.captain-hub--v2 .cap-menu-item-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #eef1f5;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.captain-hub--v2 .cap-menu-item-icon .ui-icon--fi {
  font-size: 18px;
  color: #475569;
}

.captain-hub--v2 .cap-menu-item--warn .cap-menu-item-icon {
  background: #fff5f5;
  border-color: #fecaca;
}

.captain-hub--v2 .cap-menu-item--warn .cap-menu-item-icon .ui-icon--fi {
  color: #ef4444;
}

.captain-hub--v2 .cap-menu-item-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.captain-hub--v2 .cap-menu-item-copy strong {
  font-size: 15px;
  font-weight: 700;
  color: var(--cap-text);
  letter-spacing: -0.01em;
}

.captain-hub--v2 .cap-menu-item-copy small {
  font-size: 12px;
  color: var(--cap-muted);
  line-height: 1.3;
}

.captain-hub--v2 .cap-menu-sub-slot {
  display: block;
}

.captain-hub--v2 .cap-menu-sub-panel {
  margin: 0;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.captain-hub--v2 .cap-menu-voice-setting {
  flex: 1;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

.captain-hub--v2 .cap-menu-voice-setting .cap-voice-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
}

.captain-hub--v2 .cap-menu-voice-setting .cap-voice-hint {
  display: none;
}

.captain-hub--v2 .cap-menu-profile-panel {
  margin: 0 16px;
  padding: 14px;
  border-radius: 16px;
  background: #fafbfc;
  border: 1px solid #eef1f5;
}

.captain-hub--v2 .cap-menu-profile-panel[hidden] {
  display: none !important;
}

.captain-hub--v2 .cap-menu-profile-panel .cap-hub-drawer-save {
  margin-top: 12px;
  background: var(--cap-green-deep);
}

.captain-hub--v2 .cap-menu-logout {
  width: calc(100% - 32px);
  margin: 10px 16px 0;
}

.captain-hub--v2 .cap-hub-drawer--v2 {
  max-height: min(82vh, 680px);
  border-radius: 24px 24px 0 0;
  box-shadow: 0 -8px 32px rgba(15, 23, 42, 0.12);
}

.captain-hub--v2 .cap-hub-drawer--v2 .cap-hub-drawer-head {
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  padding: 10px 16px 14px;
  border-bottom: 1px solid #f1f5f9;
}

.captain-hub--v2 .cap-hub-drawer--v2 .cap-drawer-v2-handle {
  display: block;
  width: 38px;
  height: 4px;
  margin: 0 auto;
  border-radius: 999px;
  background: #e2e8f0;
}

.captain-hub--v2 .cap-hub-drawer--v2 .cap-hub-drawer-head strong {
  font-size: 18px;
  font-weight: 800;
  color: var(--cap-text);
  letter-spacing: -0.02em;
  text-align: center;
}

.captain-hub--v2 .cap-hub-drawer--v2 .cap-hub-drawer-close {
  position: absolute;
  top: 14px;
  left: 14px;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #eef1f5;
  color: #475569;
  font-size: 18px;
}

.captain-hub--v2 .cap-hub-drawer--v2 .cap-hub-drawer-head {
  position: relative;
}

.captain-hub--v2 .cap-hub-sub-v2 {
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 14px 16px;
  border-radius: 0;
  border: none;
  border-bottom: 1px solid #eef1f5;
  background: #fff;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
  color: #334155;
}

.captain-hub--v2 .cap-hub-sub-v2[hidden] {
  display: none !important;
  margin: 0;
}

.captain-hub--v2 .cap-hub-sub-v2--expired {
  background: linear-gradient(180deg, #fffbeb 0%, #fff 100%);
  border-bottom-color: #fde68a;
}

.captain-hub--v2 .cap-hub-sub-v2--trial {
  background: linear-gradient(180deg, #f0fdf4 0%, #fff 100%);
  border-bottom-color: #bbf7d0;
}

.captain-hub--v2 .cap-hub-sub-v2-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: #fff;
  border: 1px solid #eef1f5;
}

.captain-hub--v2 .cap-hub-sub-v2--expired .cap-hub-sub-v2-icon {
  background: #fff7ed;
  border-color: #fed7aa;
}

.captain-hub--v2 .cap-hub-sub-v2--expired .cap-hub-sub-v2-icon .ui-icon--fi {
  color: #ea580c;
}

.captain-hub--v2 .cap-hub-sub-v2--trial .cap-hub-sub-v2-icon {
  background: var(--cap-green-light);
  border-color: var(--cap-green-light-border);
}

.captain-hub--v2 .cap-hub-sub-v2--trial .cap-hub-sub-v2-icon .ui-icon--fi {
  color: var(--cap-green-deep);
}

.captain-hub--v2 .cap-hub-sub-v2-icon .ui-icon--fi {
  font-size: 18px;
  color: #475569;
}

.captain-hub--v2 .cap-hub-sub-v2-copy {
  flex: 1;
  min-width: 0;
}

.captain-hub--v2 .cap-hub-sub-v2-copy p {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  color: inherit;
}

.captain-hub--v2 .cap-hub-sub-v2-action {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  padding: 0;
  font-size: 12px;
  font-weight: 800;
  color: #15803d;
  text-decoration: none;
}

.captain-hub--v2 .cap-hub-sub-v2--expired .cap-hub-sub-v2-action {
  color: #c2410c;
}

.captain-hub--v2 .cap-hub-sub-panel--v2 {
  margin-top: 14px;
  padding: 14px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid #eef1f5;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
}

.captain-hub--v2 .cap-hub-sub-panel--v2 .cap-hub-sub-panel-text {
  color: #475569;
  font-weight: 600;
}

.captain-hub--v2 #captainHubCard.cap-phase-enter .cap-hub-offer-card {
  animation: capPhaseSlide 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.captain-hub--v2.trip-map-mode #captainHubCard.cap-phase-enter .cap-hub-offer-card,
.captain-hub--v2.trip-in-ride #captainHubCard.cap-phase-enter .cap-hub-offer-card {
  animation: none;
}

@keyframes capPhaseSlide {
  from {
    opacity: 0.82;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 #captainHubCard.cap-phase-enter .cap-hub-offer-card {
    animation: none;
  }
}

.captain-hub--v2 .cap-stats-v2 {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 8px 16px max(20px, env(safe-area-inset-bottom));
}

.captain-hub--v2 .cap-stats-v2-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.captain-hub--v2 .cap-stats-v2-card {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 2px 12px;
  align-items: center;
  padding: 14px 14px;
  border-radius: 14px;
  background: #fafbfc;
  border: 1px solid #eef1f5;
}

.captain-hub--v2 .cap-stats-v2-card-icon {
  grid-row: 1 / span 2;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #fff;
  border: 1px solid #eef1f5;
}

.captain-hub--v2 .cap-stats-v2-card-icon .ui-icon--fi {
  font-size: 18px;
  color: #475569;
}

.captain-hub--v2 .cap-stats-v2-card--rating {
  background: linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%);
  border-color: #fde68a;
}

.captain-hub--v2 .cap-stats-v2-card--rating .cap-stats-v2-card-icon {
  background: #fff;
  border-color: #fde68a;
}

.captain-hub--v2 .cap-stats-v2-card--rating .cap-stats-v2-card-icon .ui-icon--fi {
  color: #d97706;
}

.captain-hub--v2 .cap-stats-v2-card--earn {
  background: linear-gradient(180deg, var(--cap-green-light) 0%, var(--cap-green-soft) 100%);
  border-color: var(--cap-green-light-border);
}

.captain-hub--v2 .cap-stats-v2-card--earn .cap-stats-v2-card-icon {
  border-color: var(--cap-green-light-border);
}

.captain-hub--v2 .cap-stats-v2-card--earn .cap-stats-v2-card-icon .ui-icon--fi {
  color: var(--cap-green-light-text);
}

.captain-hub--v2 .cap-stats-v2-card--trips .cap-stats-v2-card-icon .ui-icon--fi {
  color: #64748b;
}

.captain-hub--v2 .cap-stats-v2-card strong {
  font-size: 22px;
  font-weight: 800;
  color: var(--cap-text);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.captain-hub--v2 .cap-stats-v2-card span {
  font-size: 12px;
  font-weight: 600;
  color: var(--cap-muted);
}

.captain-hub--v2 .cap-stats-v2-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 50px;
  padding: 0 16px;
  border: 1px solid var(--cap-green-light-border);
  border-radius: 14px;
  background: linear-gradient(180deg, var(--cap-green-light) 0%, var(--cap-green-soft) 100%);
  color: var(--cap-green-light-text);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.15s ease, background 0.15s ease;
}

.captain-hub--v2 .cap-stats-v2-link:active {
  transform: scale(0.98);
  background: #dcfce7;
}

.captain-hub--v2 .cap-stats-v2-link-icon .ui-icon--fi {
  font-size: 18px;
  color: var(--cap-icon-green);
}

.captain-hub--v2 .cap-history-v2 .cap-history-v2-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 4px 16px 12px;
}

.captain-hub--v2 .cap-history-v2-sum {
  padding: 14px 12px;
  border-radius: 14px;
  background: #fafbfc;
  border: 1px solid #eef1f5;
  text-align: center;
}

.captain-hub--v2 .cap-history-v2-sum strong {
  display: block;
  font-size: 20px;
  font-weight: 800;
  color: var(--cap-text);
  letter-spacing: -0.02em;
}

.captain-hub--v2 .cap-history-v2-sum span {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--cap-muted);
}

.captain-hub--v2 .cap-history-v2-list {
  flex: 1;
  overflow: auto;
  padding: 0 16px max(16px, env(safe-area-inset-bottom));
  -webkit-overflow-scrolling: touch;
}

.captain-hub--v2 .cap-history-v2-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 32px 16px;
  margin: 0;
  text-align: center;
}

.captain-hub--v2 .cap-history-v2-empty-icon {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid #eef1f5;
  display: grid;
  place-items: center;
  margin-bottom: 4px;
}

.captain-hub--v2 .cap-history-v2-empty-icon .ui-icon--fi {
  font-size: 24px;
  color: #94a3b8;
}

.captain-hub--v2 .cap-history-v2-empty strong {
  font-size: 15px;
  font-weight: 700;
  color: var(--cap-text);
}

.captain-hub--v2 .cap-history-v2-empty span {
  font-size: 13px;
  color: var(--cap-muted);
  line-height: 1.4;
}

.captain-hub--v2 .cap-history-v2-item {
  padding: 14px;
  margin-bottom: 10px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid #eef1f5;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
}

.captain-hub--v2 .cap-history-v2-item .cap-hub-history-item-top strong {
  font-size: 16px;
  font-weight: 800;
  color: var(--cap-green-light-text);
}

.captain-hub--v2 .cap-hub-stage.has-nav-map {
  height: auto;
  max-height: none;
}

/* ── زر تشغيل/إيقاف — أيقونة fi-bs-power فقط ── */
#captainHub #captainHubToggle.cap-hub-power-btn {
  position: relative !important;
  left: auto !important;
  bottom: auto !important;
  top: auto !important;
  transform: none !important;
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  max-width: 48px !important;
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
  border-radius: 12px !important;
  border: 1px solid rgba(15, 23, 42, 0.06) !important;
  display: grid !important;
  place-items: center !important;
  visibility: visible !important;
  opacity: 1 !important;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  font: inherit;
  background: #f8fafc !important;
  box-shadow: none !important;
  color: inherit !important;
}

#captainHub #captainHubToggle.cap-hub-power-btn::before,
#captainHub #captainHubToggle.cap-hub-power-btn::after {
  display: none !important;
  content: none !important;
}

#captainHub #captainHubToggle.cap-hub-power-btn .fi-bs-power {
  font-family: uicons-bold-straight !important;
  font-style: normal;
  font-weight: 400 !important;
  font-size: 22px !important;
  line-height: 1;
  color: #e53935 !important;
}

#captainHub #captainHubToggle.cap-hub-power-btn.on,
#captainHub #captainHubToggle.cap-hub-power-btn.cap-hub-live--on {
  border-color: rgba(46, 170, 82, 0.22) !important;
  background: #fff !important;
  box-shadow: 0 4px 16px rgba(46, 170, 82, 0.14) !important;
}

#captainHub #captainHubToggle.cap-hub-power-btn.on .fi-bs-power,
#captainHub #captainHubToggle.cap-hub-power-btn.cap-hub-live--on .fi-bs-power {
  color: #22c55e !important;
}

#captainHub #captainHubToggle.cap-hub-power-btn:active:not(.sub-locked) {
  transform: scale(0.94) !important;
}

#captainHub .cap-hub-live-status {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  direction: rtl;
}

#captainHub .cap-hub-live-status[hidden] {
  display: none !important;
}

#captainHub .cap-hub-live-status-line,
#captainHub .cap-hub-live-status-pill,
#captainHub .cap-hub-live-status-card {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  min-height: 0;
  width: auto;
}

#captainHub .cap-hub-live-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #22c55e;
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.16);
  animation: capLiveDotPulse 2.2s ease-in-out infinite;
}

#captainHub .cap-hub-live-status-text {
  font-size: 14px;
  font-weight: 800;
  color: #16a34a;
  letter-spacing: -0.02em;
  line-height: 1.2;
  white-space: nowrap;
}

@keyframes capLiveStatusIn {
  from {
    opacity: 0;
    transform: translateY(4px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes capLiveDotPulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.55;
    transform: scale(0.88);
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-hub-live-status-line,
  .captain-hub--v2 .cap-hub-live-status-pill,
  .captain-hub--v2 .cap-hub-live-status-card,
  #captainHub .cap-hub-live-status-line,
  #captainHub .cap-hub-live-status-pill,
  #captainHub .cap-hub-live-status-card {
    animation: none;
  }

  .captain-hub--v2 .cap-hub-live-status-dot,
  #captainHub .cap-hub-live-status-dot {
    animation: none;
  }
}

/* ── محادثة الكابتن ── */
.cap-chat-modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: end center;
  padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  background: rgba(15, 23, 42, 0.38);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.cap-chat-modal[hidden] {
  display: none !important;
}

.cap-chat-panel {
  width: min(100%, 420px);
  max-height: min(78vh, 560px);
  display: flex;
  flex-direction: column;
  border-radius: 22px 22px 18px 18px;
  background: #fff;
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.16);
  overflow: hidden;
}

.cap-chat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid #eef1f5;
}

.cap-chat-head-copy strong {
  display: block;
  font-size: 15px;
  font-weight: 800;
  color: var(--cap-text, #0f172a);
}

.cap-chat-head-copy span {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  font-weight: 600;
  color: #64748b;
  direction: ltr;
  text-align: right;
}

.cap-chat-close {
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 12px;
  background: #f8fafc;
  color: #475569;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.cap-chat-body {
  flex: 1;
  min-height: 180px;
  max-height: 320px;
  overflow-y: auto;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #fafbfc;
}

.cap-chat-msg {
  max-width: 82%;
  padding: 10px 12px;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
}

.cap-chat-msg--out {
  align-self: flex-end;
  background: linear-gradient(145deg, #22c55e 0%, #16a34a 100%);
  color: #fff;
  border-bottom-left-radius: 6px;
}

.cap-chat-msg--in {
  align-self: flex-start;
  background: #fff;
  border: 1px solid #eef1f5;
  color: #334155;
  border-bottom-right-radius: 6px;
}

.cap-chat-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 16px 0;
}

.cap-chat-quick button {
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid #e2e8f0;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
  color: #475569;
}

.cap-chat-compose {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding: 12px 16px;
}

.cap-chat-compose input {
  min-height: 44px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  font-size: 14px;
}

.cap-chat-send {
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 12px;
  background: var(--cap-green, #16a34a);
  color: #fff;
  font-size: 18px;
  font-weight: 800;
}

.cap-chat-sms-fallback {
  width: calc(100% - 32px);
  margin: 0 16px 14px;
  min-height: 40px;
  border: none;
  border-radius: 12px;
  background: #f8fafc;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
}

.captain-hub--v2 .cap-hub-bar--v2 {
  padding-top: max(8px, env(safe-area-inset-top));
}

/* ── تنبيهات لوحة الكابتن (فوق الخريطة، تحت الهيدر) ── */
.phone > .captain-toast.captain-toast--hub,
#app > .captain-toast.captain-toast--hub {
  position: absolute;
  z-index: 40;
  top: calc(max(10px, env(safe-area-inset-top)) + 68px);
  bottom: auto;
  left: 16px;
  right: 16px;
  max-width: none;
  padding: 12px 16px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.98);
  color: #1e293b;
  border: 1px solid rgba(34, 197, 94, 0.2);
  box-shadow: 0 10px 32px rgba(15, 23, 42, 0.12);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.22s ease, transform 0.22s ease;
  pointer-events: none;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.phone > .captain-toast.captain-toast--hub.show,
#app > .captain-toast.captain-toast--hub.show {
  opacity: 1;
  transform: translateY(0);
}

/* ═══ T+ Captain — هوية موحّدة (أخضر + ذهبي) ═══ */

.captain-hub--v2 .cap-hub-header-unit::before,
#captainHub.captain-hub--v2 .cap-hub-header-unit::before {
  display: none;
}

.captain-hub--v2 .cap-hub-map-bg {
  background:
    radial-gradient(ellipse 85% 55% at 50% 100%, rgba(34, 197, 94, 0.14) 0%, transparent 68%),
    radial-gradient(circle at 18% 28%, rgba(25, 169, 116, 0.11) 0%, transparent 46%),
    radial-gradient(circle at 82% 22%, rgba(214, 161, 29, 0.09) 0%, transparent 42%),
    linear-gradient(180deg, #e9eef4 0%, #dde6ee 52%, #d3dce6 100%);
}

.captain-hub--v2 .cap-hub-map-grid {
  opacity: 0.28;
}

.captain-hub--v2 .cap-hub-home-btn,
#captainHub.captain-hub--v2 .cap-hub-home-btn {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.06);
}

.captain-hub--v2 .cap-hub-home-btn:active,
#captainHub.captain-hub--v2 .cap-hub-home-btn:active {
  background: #e8ecf0;
}

.captain-hub--v2 .cap-hub-profile {
  border-color: var(--cap-border-neutral);
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.captain-hub--v2 .cap-hub-offer-card {
  background: var(--cap-gradient-surface);
  border: 1px solid var(--cap-border-neutral);
  border-bottom: none;
  box-shadow: var(--cap-shadow-sheet);
  position: relative;
  overflow: hidden;
}

.captain-hub--v2 .cap-hub-offer-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--cap-gradient-sheet-accent);
  pointer-events: none;
  z-index: 1;
}

.captain-hub--v2 .cap-hub-offer-handle {
  width: 42px;
  height: 4px;
  margin: 0 auto 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, #e2e8f0 0%, #94a3b8 50%, #e2e8f0 100%);
  opacity: 0.85;
}

.captain-hub--v2 .cap-offer-header .cap-offer-badge {
  background: linear-gradient(145deg, #ecfdf5 0%, #f0fdf4 100%);
  color: var(--cap-green-light-text);
  border-color: var(--cap-border-brand);
  box-shadow: 0 2px 8px rgba(34, 197, 94, 0.08);
}

.captain-hub--v2 .cap-offer-price-row {
  background: linear-gradient(145deg, #ecfdf5 0%, #fff 72%);
  border-color: var(--cap-border-brand);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.captain-hub--v2 .cap-offer-price-row .cap-offer-price {
  background: var(--cap-gradient-brand);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.captain-hub--v2 .cap-offer-stats {
  border-radius: var(--cap-r-md);
  border: 1px solid var(--cap-border-neutral);
  background: #fafbfc;
  overflow: hidden;
}

.captain-hub--v2 .cap-offer-stat {
  background: transparent;
}

.captain-hub--v2 .cap-offer-stat strong {
  color: var(--cap-ink);
}

.captain-hub--v2 .cap-hub-offer-card--incoming .cap-hub-offer-accept,
.captain-hub--v2 .cap-offer-actions .cap-hub-offer-accept {
  background: var(--cap-gradient-brand);
  box-shadow: 0 8px 22px rgba(34, 197, 94, 0.28);
}

.captain-hub--v2 .cap-hub-offer-card--incoming .cap-hub-offer-decline,
.captain-hub--v2 .cap-offer-actions .cap-hub-offer-decline {
  background: #fff;
  border: 1.5px solid #e8ecf0;
  color: var(--cap-muted);
}


.captain-hub--v2 .cap-trip-ride-compact {
  background: var(--cap-gradient-surface);
  border-top-color: var(--cap-border-brand);
  box-shadow: var(--cap-shadow-sheet);
  position: relative;
  overflow: hidden;
}

.captain-hub--v2 .cap-trip-ride-compact::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--cap-gradient-sheet-accent);
  pointer-events: none;
}

.captain-hub--v2 .cap-trip-ride-live-badge {
  background: linear-gradient(145deg, #ecfdf5 0%, #f0fdf4 100%);
  border-color: var(--cap-border-brand);
}

.captain-hub--v2 .cap-trip-action--start-hero {
  background: var(--cap-gradient-gold) !important;
  color: var(--cap-ink) !important;
  box-shadow: 0 10px 24px rgba(214, 161, 29, 0.28) !important;
}

.captain-hub--v2 .cap-trip-action--start-hero .cap-trip-action-label,
.captain-hub--v2 .cap-trip-action--start-hero .cap-trip-action-tag {
  color: var(--cap-ink) !important;
}

.captain-hub--v2 .cap-trip-arrived-banner {
  background: var(--cap-gradient-hero);
  border-color: var(--cap-border-brand);
}

.captain-hub--v2 .cap-trip-ride-end {
  background: var(--cap-gradient-brand);
  box-shadow: 0 8px 22px rgba(34, 197, 94, 0.26);
}

.captain-hub--v2 .cap-hub-drawer {
  border: 1px solid var(--cap-border-neutral);
  box-shadow: 0 -24px 56px rgba(15, 23, 42, 0.16);
  overflow: hidden;
}

.captain-hub--v2 .cap-hub-drawer::before {
  content: '';
  display: block;
  height: 3px;
  background: var(--cap-gradient-sheet-accent);
  flex-shrink: 0;
}

.captain-hub--v2 .cap-menu-hero {
  padding: 14px;
  border-radius: var(--cap-r-md);
  background: var(--cap-gradient-hero);
  border: 1px solid var(--cap-border-brand);
}

.captain-hub--v2 .cap-menu-hero-avatar {
  border-radius: var(--cap-r-sm);
  background: var(--cap-gradient-brand);
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
  box-shadow: 0 6px 16px rgba(34, 197, 94, 0.22);
}

.captain-hub--v2 .cap-menu-quick-item {
  background: var(--cap-gradient-surface);
  border: 1px solid var(--cap-border-neutral);
  border-radius: var(--cap-r-sm);
  box-shadow: var(--cap-shadow-sm);
}

.captain-hub--v2 .cap-menu-quick-item strong {
  color: var(--cap-green-deep);
}

.captain-hub--v2 .cap-menu-item {
  border-radius: var(--cap-r-sm);
  border: 1px solid transparent;
}

.captain-hub--v2 .cap-menu-item:active {
  background: #f8fafc;
  border-color: var(--cap-border-neutral);
}

.captain-hub--v2 .cap-menu-item-icon {
  background: linear-gradient(180deg, #f0fdf4 0%, #ecfdf5 100%);
  border: 1px solid var(--cap-border-brand);
  border-radius: 11px;
}

.captain-hub--v2 .cap-menu-item-icon .ui-icon--fi {
  color: var(--cap-green-deep);
}

.captain-hub--v2 .cap-trip-complete-sheet {
  border-top: 1px solid var(--cap-border-brand);
}

.captain-hub--v2 .cap-trip-complete-success-line-fill {
  background: var(--cap-gradient-brand-gold);
}

.captain-hub--v2 .cap-trip-complete-btn {
  background: var(--cap-gradient-brand);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 8px 20px rgba(34, 197, 94, 0.24);
}

.captain-hub--v2 .cap-trip-complete-btn-icon .ui-icon--fi {
  color: #fff;
}

.captain-hub--v2 .cap-hub-sub-v2 {
  border-bottom-color: var(--cap-border-brand);
}

.captain-hub--v2 .cap-trip-header-alert {
  border-color: var(--cap-border-brand);
}

.phone > .captain-toast.captain-toast--hub {
  border-color: var(--cap-border-brand);
  background: linear-gradient(180deg, #fff 0%, #f0fdf4 100%);
  color: var(--cap-ink);
  box-shadow: var(--cap-shadow-md);
}

.phone > .captain-toast.captain-toast--hub.show,
#app > .captain-toast.captain-toast--hub.show {
  opacity: 1;
  transform: translateY(0);
}

/* ── هيدر الكابتن v2 — تنسيق نهائي ── */
#captainHub.captain-hub--v2 {
  --cap-hub-icon-size: 48px;
}

#captainHub.captain-hub--v2 .cap-hub-bar {
  min-height: 0;
  padding-bottom: 0;
  flex-direction: column;
  background: transparent !important;
}

#captainHub.captain-hub--v2 .cap-hub-bar::after {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-bar-accent {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-header-unit {
  direction: ltr;
  width: 100%;
  margin: 0;
  padding: max(10px, env(safe-area-inset-top)) 16px 12px !important;
  gap: 8px !important;
  background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-bottom: 1px solid rgba(15, 23, 42, 0.04) !important;
  box-shadow: 0 2px 16px rgba(15, 23, 42, 0.04) !important;
  border-radius: 0 !important;
}

#captainHub.captain-hub--v2 #captainHubProfileBtn { order: 1; }
#captainHub.captain-hub--v2 #captainHubBack { order: 2; }
#captainHub.captain-hub--v2 #capHubLiveTitle { order: 3; flex: 1; }
#captainHub.captain-hub--v2 #captainHubToggle { order: 4; }
#captainHub.captain-hub--v2 #capHubBrandMark { order: 5; }

#captainHub.captain-hub--v2 .cap-hub-back,
#captainHub.captain-hub--v2 .cap-hub-home-btn,
#captainHub.captain-hub--v2 .cap-hub-power-btn,
#captainHub.captain-hub--v2 .cap-hub-profile,
#captainHub.captain-hub--v2 #captainHubToggle.cap-hub-power-btn {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  max-width: 48px !important;
  flex: 0 0 48px !important;
}

#captainHub.captain-hub--v2 .cap-hub-brand-mark {
  width: auto;
  min-width: 0;
  height: auto;
  padding: 0 2px;
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  filter: none;
}

#captainHub.captain-hub--v2 .cap-hub-brand-mark b {
  font-size: 20px !important;
  text-shadow: none;
}

#captainHub.captain-hub--v2 .cap-hub-home-btn .ui-icon--fi,
#captainHub.captain-hub--v2 .cap-hub-avatar--icon .ui-icon--fi {
  font-size: 21px !important;
}

#captainHub.captain-hub--v2 #captainHubToggle.cap-hub-power-btn .fi-bs-power {
  font-size: 24px !important;
}

#captainHub.captain-hub--v2:not(.has-trip):not(.has-offer) .cap-hub-trip-stack {
  display: none !important;
}

/* Hide stale bottom sheet layers while captain is only waiting for trips */
#captainHub.captain-hub--v2:not(.has-trip):not(.has-offer):not(.has-complete) #captainHubCard,
#captainHub.captain-hub--v2:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-offer-panel,
#captainHub.captain-hub--v2:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-offer-card,
#captainHub.captain-hub--v2:not(.has-trip):not(.has-offer):not(.has-complete) .cap-hub-trip-stack {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

#captainHub.captain-hub--v2:not(.has-offer) #captainHubQueueHead,
#captainHub.captain-hub--v2 #captainHubQueueHead[hidden],
#captainHub.captain-hub--v2 #captainHubQueueHead[aria-hidden="true"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

#captainHub.captain-hub--v2:not(.has-offer) #captainHubQueueCount {
  display: none !important;
}

/* ── قفل: هيدر عائم + شيت انتظار (مثل المرجع) ── */
#captainHub.captain-hub--v2 .cap-hub-bar {
  position: absolute !important;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
}

#captainHub.captain-hub--v2 .cap-hub-header-unit {
  width: 100%;
  min-height: var(--cap-hub-icon-size, 48px);
  margin: 0;
  padding: max(10px, env(safe-area-inset-top)) 16px 12px !important;
  gap: 8px !important;
  align-items: center;
  background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-bottom: 1px solid rgba(15, 23, 42, 0.04) !important;
  box-shadow: 0 2px 16px rgba(15, 23, 42, 0.04) !important;
  border-radius: 0 !important;
}

#captainHub.captain-hub--v2.is-idle-dock .cap-hub-stage::after,
#captainHub.captain-hub--v2.is-offline-dock .cap-hub-stage::after {
  height: min(300px, 34vh) !important;
}

#captainHub.captain-hub--v2 .cap-hub-idle,
#captainHub.captain-hub--v2 .cap-hub-offline {
  justify-content: stretch !important;
  align-items: flex-end !important;
  padding: 0 !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait:not(.cap-home-sheet--wait-min) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  min-height: 0;
  overflow: visible !important;
  border-radius: 32px 32px 0 0 !important;
  background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%) !important;
  border: none !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    0 0 0 1px rgba(15, 23, 42, 0.04),
    0 -6px 24px rgba(15, 23, 42, 0.04),
    0 -18px 48px rgba(15, 23, 42, 0.05) !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait.cap-home-sheet--wait-min,
#captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  min-height: 0;
  overflow: visible !important;
  border-radius: 0 !important;
  background: #fafbfc !important;
  border: none !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-profile,
#captainHub.captain-hub--v2 .cap-hub-back,
#captainHub.captain-hub--v2 .cap-hub-home-btn,
#captainHub.captain-hub--v2 .cap-hub-power-btn,
#captainHub.captain-hub--v2 #captainHubToggle.cap-hub-power-btn {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  max-width: 44px !important;
  flex: 0 0 44px !important;
  border-radius: 13px !important;
  background: rgba(15, 23, 42, 0.04) !important;
  border: none !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-live-status-line {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* Codex final v41: rider-style mini waiting card for captain. */
#captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min,
#captainHub.captain-hub--v2 .cap-home-sheet--wait.cap-home-sheet--wait-min {
  width: calc(100% - 24px) !important;
  margin: 0 auto 10px !important;
  border-radius: 0 0 22px 22px !important;
  background: #ffffff !important;
  border: 1px solid rgba(226, 232, 240, 0.95) !important;
  box-shadow: 0 16px 30px rgba(15, 23, 42, 0.08) !important;
  overflow: hidden !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-home-sheet-inner {
  padding: 12px 16px max(16px, env(safe-area-inset-bottom, 0px)) !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  min-height: 76px !important;
  text-align: center !important;
  direction: rtl !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::before,
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::after,
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-home-sheet-handle,
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-deco-line,
#captainHub.captain-hub--v2 .cap-idle-radar,
#captainHub.captain-hub--v2 .cap-wait-status-radar {
  display: none !important;
  content: none !important;
}

#captainHub.captain-hub--v2 .cap-idle-bars {
  display: inline-grid !important;
  grid-template-columns: 28px 28px 28px !important;
  gap: 5px !important;
  align-items: center !important;
  justify-content: center !important;
  height: 8px !important;
  margin-bottom: 1px !important;
}

#captainHub.captain-hub--v2 .cap-idle-bars span {
  display: block !important;
  height: 3px !important;
  border-radius: 999px !important;
  background: #e2e8f0 !important;
}

#captainHub.captain-hub--v2 .cap-idle-bars span:nth-child(2) {
  background: #dbeafe !important;
}

#captainHub.captain-hub--v2 .cap-idle-bars span:nth-child(3) {
  background: #2563eb !important;
  box-shadow: 0 0 8px rgba(37, 99, 235, 0.25) !important;
}

#captainHub.captain-hub--v2 .cap-idle-copy {
  display: block !important;
  text-align: center !important;
  direction: rtl !important;
}

#captainHub.captain-hub--v2 .cap-idle-kicker {
  margin: 0 0 2px !important;
  color: #64748b !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

#captainHub.captain-hub--v2 .cap-idle-title {
  margin: 0 !important;
  color: #111827 !important;
  font-size: 19px !important;
  font-weight: 950 !important;
  line-height: 1.22 !important;
}

#captainHub.captain-hub--v2 .cap-idle-sub {
  margin: 3px 0 0 !important;
  color: #64748b !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  line-height: 1.25 !important;
}

/* Codex final v40: clean idle card names, isolated from old wait CSS. */
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
  display: grid !important;
  grid-template-columns: 1fr 38px !important;
  align-items: center !important;
  gap: 10px !important;
  direction: rtl !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::before,
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::after {
  display: none !important;
  content: none !important;
}

#captainHub.captain-hub--v2 .cap-idle-radar {
  position: relative !important;
  grid-column: 2 !important;
  width: 34px !important;
  height: 34px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, #ecfdf5 0%, #ffffff 68%) !important;
  border: 1px solid rgba(34, 197, 94, 0.24) !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08) !important;
  z-index: 10 !important;
}

#captainHub.captain-hub--v2 .cap-idle-radar::before,
#captainHub.captain-hub--v2 .cap-idle-radar::after {
  content: "" !important;
  position: absolute !important;
  inset: 7px !important;
  display: block !important;
  border-radius: 999px !important;
  border: 1px solid rgba(34, 197, 94, 0.4) !important;
  animation: capIdleRadarPulse 2.4s ease-in-out infinite !important;
}

#captainHub.captain-hub--v2 .cap-idle-radar::after {
  animation-delay: 1.2s !important;
}

#captainHub.captain-hub--v2 .cap-idle-radar span {
  display: block !important;
  width: 10px !important;
  height: 10px !important;
  border-radius: 999px !important;
  background: #22c55e !important;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.14) !important;
  z-index: 1 !important;
}

#captainHub.captain-hub--v2 .cap-idle-copy {
  grid-column: 1 !important;
  text-align: right !important;
  direction: rtl !important;
}

#captainHub.captain-hub--v2 .cap-idle-title {
  margin: 0 !important;
  color: #0f172a !important;
  font-size: 19px !important;
  font-weight: 950 !important;
  line-height: 1.2 !important;
}

#captainHub.captain-hub--v2 .cap-idle-sub {
  margin: 5px 0 0 !important;
  color: #64748b !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
}

@keyframes capIdleRadarPulse {
  0%, 100% {
    opacity: 0.72;
    transform: scale(0.72);
  }
  50% {
    opacity: 0;
    transform: scale(1.55);
  }
}

/* Codex final: replace the small availability pill with the radar. */
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
  display: grid !important;
  grid-template-columns: 1fr 38px !important;
  align-items: center !important;
  gap: 10px !important;
  direction: rtl !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::before,
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::after {
  display: none !important;
  content: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar {
  position: relative !important;
  display: grid !important;
  grid-column: 2 !important;
  place-items: center !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, #ecfdf5 0%, #ffffff 68%) !important;
  border: 1px solid rgba(34, 197, 94, 0.24) !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08) !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 5 !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar::before,
#captainHub.captain-hub--v2 .cap-wait-status-radar::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 7px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(34, 197, 94, 0.4) !important;
  animation: capWaitRadarPulseFinal 2.4s ease-in-out infinite !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar::after {
  animation-delay: 1.2s !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar span {
  display: block !important;
  width: 10px !important;
  height: 10px !important;
  border-radius: 999px !important;
  background: #22c55e !important;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.14) !important;
  z-index: 1 !important;
}

#captainHub.captain-hub--v2 .cap-wait-copy {
  grid-column: 1 !important;
  text-align: right !important;
}

@keyframes capWaitRadarPulseFinal {
  0%, 100% {
    opacity: 0.7;
    transform: scale(0.72);
  }
  50% {
    opacity: 0;
    transform: scale(1.55);
  }
}

/* Codex final lock: visible waiting radar inside captain card. */
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
  display: grid !important;
  grid-template-columns: 38px 1fr !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  direction: rtl !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::before,
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::after {
  display: none !important;
  content: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar {
  position: relative !important;
  grid-column: 1 !important;
  width: 34px !important;
  height: 34px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, #ecfdf5 0%, #ffffff 68%) !important;
  border: 1px solid rgba(34, 197, 94, 0.24) !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08) !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 4 !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar::before,
#captainHub.captain-hub--v2 .cap-wait-status-radar::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 7px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(34, 197, 94, 0.38) !important;
  animation: capWaitRadarPulseFinal 2.4s ease-in-out infinite !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar::after {
  animation-delay: 1.2s !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar span {
  display: block !important;
  width: 10px !important;
  height: 10px !important;
  border-radius: 999px !important;
  background: #22c55e !important;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.14) !important;
  z-index: 1 !important;
}

#captainHub.captain-hub--v2 .cap-wait-copy {
  grid-column: 2 !important;
}

@keyframes capWaitRadarPulseFinal {
  0%, 100% {
    opacity: 0.7;
    transform: scale(0.72);
  }
  50% {
    opacity: 0;
    transform: scale(1.55);
  }
}

/* Codex final lock: visible simple top-center activity line. */
#captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min::after,
#captainHub.captain-hub--v2 .cap-home-sheet--wait.cap-home-sheet--wait-min::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  width: 44% !important;
  height: 4px !important;
  border-radius: 0 0 999px 999px !important;
  background: linear-gradient(90deg, #22c55e, #0ea5e9, #22c55e) !important;
  box-shadow: 0 0 12px rgba(14, 165, 233, 0.32) !important;
  transform: translateX(-50%) scaleX(0.88) !important;
  transform-origin: center !important;
  animation: capWaitTopCenterGlowFinal 3s ease-in-out infinite !important;
  z-index: 3 !important;
}

@keyframes capWaitTopCenterGlowFinal {
  0%, 100% {
    opacity: 0.58;
    transform: translateX(-50%) scaleX(0.88);
  }
  50% {
    opacity: 1;
    transform: translateX(-50%) scaleX(1);
  }
}

/* Codex: clean professional waiting card for captain idle state. */
#captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min,
#captainHub.captain-hub--v2 .cap-home-sheet--wait.cap-home-sheet--wait-min {
  position: relative !important;
  width: calc(100% - 24px) !important;
  margin: 0 auto 10px !important;
  padding: 0 !important;
  border-radius: 18px !important;
  background: #ffffff !important;
  border: 1px solid rgba(15, 23, 42, 0.06) !important;
  box-shadow:
    0 8px 24px rgba(15, 23, 42, 0.06),
    0 0 0 1px rgba(255, 255, 255, 0.65) inset !important;
  overflow: hidden !important;
  animation: none !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min::after,
#captainHub.captain-hub--v2 .cap-home-sheet--wait.cap-home-sheet--wait-min::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  width: 42% !important;
  height: 3px !important;
  border-radius: 0 0 999px 999px !important;
  background: linear-gradient(90deg, #22c55e, #0ea5e9, #22c55e) !important;
  box-shadow: 0 0 11px rgba(14, 165, 233, 0.28) !important;
  transform: translateX(-50%) scaleX(0.86) !important;
  transform-origin: center !important;
  animation: capWaitTopCenterGlow 3.2s ease-in-out infinite !important;
}

@keyframes capWaitTopCenterGlow {
  0%, 100% {
    opacity: 0.65;
    transform: translateX(-50%) scaleX(0.86);
  }
  50% {
    opacity: 1;
    transform: translateX(-50%) scaleX(1);
  }
}

#captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min::after,
#captainHub.captain-hub--v2 .cap-home-sheet--wait.cap-home-sheet--wait-min::after {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min::before,
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-home-sheet-handle,
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-deco-line,
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::after {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-home-sheet-inner {
  padding: 18px 20px max(18px, env(safe-area-inset-bottom, 0px)) !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 58px !important;
  text-align: right !important;
  direction: rtl !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-dot {
  width: 10px !important;
  height: 10px !important;
  flex: 0 0 10px !important;
  border-radius: 999px !important;
  background: #22c55e !important;
  box-shadow: 0 0 0 5px rgba(34, 197, 94, 0.14) !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar {
  position: relative !important;
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 34px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, #ecfdf5 0%, #ffffff 68%) !important;
  border: 1px solid rgba(34, 197, 94, 0.2) !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06) !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar::before,
#captainHub.captain-hub--v2 .cap-wait-status-radar::after {
  content: "" !important;
  position: absolute !important;
  inset: 7px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(34, 197, 94, 0.32) !important;
  animation: capWaitRadarPulse 2.4s ease-in-out infinite !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar::after {
  animation-delay: 1.2s !important;
}

#captainHub.captain-hub--v2 .cap-wait-status-radar span {
  width: 10px !important;
  height: 10px !important;
  border-radius: 999px !important;
  background: #22c55e !important;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.14) !important;
  z-index: 1 !important;
}

@keyframes capWaitRadarPulse {
  0%, 100% {
    opacity: 0.65;
    transform: scale(0.74);
  }
  50% {
    opacity: 0;
    transform: scale(1.45);
  }
}

#captainHub.captain-hub--v2 .cap-wait-copy {
  min-width: 0 !important;
  direction: rtl !important;
  text-align: center !important;
}

#captainHub.captain-hub--v2 .cap-wait-title {
  margin: 0 !important;
  color: #0f172a !important;
  font-size: 20px !important;
  font-weight: 950 !important;
  letter-spacing: 0 !important;
  line-height: 1.15 !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-sub {
  display: block !important;
  margin: 5px 0 0 !important;
  color: #64748b !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
}

@media (max-width: 360px) {
  #captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-home-sheet-inner {
    padding: 16px 14px max(16px, env(safe-area-inset-bottom, 0px)) !important;
  }

  #captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
    gap: 9px !important;
  }

  #captainHub.captain-hub--v2 .cap-wait-status-radar {
    width: 30px !important;
    height: 30px !important;
    flex-basis: 30px !important;
  }

  #captainHub.captain-hub--v2 .cap-wait-title {
    font-size: 17px !important;
  }

  #captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-sub {
    font-size: 11px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min,
  #captainHub.captain-hub--v2 .cap-home-sheet--wait.cap-home-sheet--wait-min {
    animation: none !important;
  }

  #captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min,
  #captainHub.captain-hub--v2 .cap-home-sheet--wait.cap-home-sheet--wait-min {
    animation: none !important;
  }

  #captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min::after,
  #captainHub.captain-hub--v2 .cap-home-sheet--wait.cap-home-sheet--wait-min::after {
    animation: none !important;
  }
}

/* Codex v217: final light/colorful waiting interaction lock. */
#captainHub.captain-hub--v2 .cap-wait-loader-wrap {
  position: relative !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 16px !important;
  background:
    radial-gradient(circle at 50% 50%, #ffffff 0 28%, transparent 30%),
    linear-gradient(145deg, #f0fdf4 0%, #ffffff 58%, #eff6ff 100%) !important;
  border: 1px solid rgba(16, 185, 129, 0.18) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 5px 14px rgba(16, 185, 129, 0.08) !important;
}

#captainHub.captain-hub--v2 .cap-wait-loader-wrap::before {
  content: "" !important;
  position: absolute !important;
  inset: 7px !important;
  border-radius: 50% !important;
  border: 2px solid rgba(16, 185, 129, 0.16) !important;
  border-top-color: #22c55e !important;
  border-left-color: #facc15 !important;
  border-right-color: rgba(59, 130, 246, 0.55) !important;
  animation: capWaitSpin 1.45s linear infinite !important;
}

#captainHub.captain-hub--v2 .cap-wait-loader-wrap::after {
  background: #22c55e !important;
  box-shadow:
    18px 9px 0 rgba(250, 204, 21, 0.9),
    35px 4px 0 rgba(59, 130, 246, 0.72) !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar-ring {
  border-color: rgba(34, 197, 94, 0.24) !important;
  opacity: 0.28 !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar-core {
  width: 20px !important;
  height: 20px !important;
  background: #ffffff !important;
  color: #10b981 !important;
  border-color: rgba(255, 255, 255, 0.9) !important;
  box-shadow:
    inset 0 0 0 5px rgba(16, 185, 129, 0.12),
    0 2px 7px rgba(16, 185, 129, 0.16) !important;
}

#captainHub.captain-hub--v2 .cap-wait-title::before {
  background: rgba(59, 130, 246, 0.08) !important;
  border-color: rgba(59, 130, 246, 0.14) !important;
  color: #1d4ed8 !important;
}

/* Codex v218: simplified waiting card after review. */
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
  grid-template-columns: 42px 1fr auto !important;
  min-height: 62px !important;
  gap: 11px !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::before {
  display: none !important;
  content: none !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::after {
  content: "متاح الآن" !important;
  min-height: 30px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  background: rgba(16, 185, 129, 0.08) !important;
  border: 1px solid rgba(16, 185, 129, 0.16) !important;
  color: #047857 !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}

#captainHub.captain-hub--v2 .cap-wait-title::before {
  display: none !important;
  content: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-loader-wrap {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-loader-wrap::before {
  display: none !important;
  content: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-loader-wrap::after {
  display: none !important;
  content: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar-ring {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar-core {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-title {
  align-self: center !important;
  justify-self: start !important;
  padding-top: 0 !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
  grid-template-columns: 1fr auto !important;
  min-height: 58px !important;
}

@keyframes capWaitSoftPulse {
  0%, 100% {
    transform: scale(0.82);
    opacity: 0.52;
  }

  50% {
    transform: scale(1.18);
    opacity: 1;
  }
}

/* Codex: waiting card with a clearer meaning and visual identity. */
#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-home-sheet-inner {
  padding: 13px 18px max(17px, env(safe-area-inset-bottom, 0px)) !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
  grid-template-columns: 54px 1fr auto !important;
  min-height: 78px !important;
  gap: 13px !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::before {
  content: "نراقب أقرب طلب قريب" !important;
  position: absolute !important;
  right: 86px !important;
  bottom: 16px !important;
  color: #0d9488 !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::after {
  content: "متاح الآن" !important;
  position: relative !important;
  min-height: 32px !important;
  padding: 0 13px 0 12px !important;
  background:
    linear-gradient(180deg, #ffffff 0%, #f0fdf4 100%) !important;
  border: 1px solid rgba(16, 185, 129, 0.22) !important;
  color: #047857 !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 5px 14px rgba(16, 185, 129, 0.08) !important;
}

#captainHub.captain-hub--v2 .cap-wait-title::before {
  content: "بحث نشط" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: 7px !important;
  padding: 3px 8px !important;
  border-radius: 999px !important;
  background: rgba(59, 130, 246, 0.09) !important;
  border: 1px solid rgba(59, 130, 246, 0.12) !important;
  color: #2563eb !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  vertical-align: middle !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min > .cap-wait-loader-wrap::after {
  content: "" !important;
  position: absolute !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 999px !important;
  background: #22c55e !important;
  box-shadow:
    18px 9px 0 rgba(250, 204, 21, 0.9),
    35px 4px 0 rgba(59, 130, 246, 0.72) !important;
  left: 48px !important;
  top: 18px !important;
  animation: capWaitTrail 1.8s ease-in-out infinite !important;
}

#captainHub.captain-hub--v2 .cap-wait-loader-wrap {
  position: relative !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 16px !important;
  background:
    radial-gradient(circle at 50% 50%, #ffffff 0 26%, transparent 28%),
    conic-gradient(from 210deg, rgba(34, 197, 94, 0.24), rgba(250, 204, 21, 0.24), rgba(59, 130, 246, 0.2), rgba(34, 197, 94, 0.24)),
    linear-gradient(145deg, #ecfdf5 0%, #eff6ff 100%) !important;
  border: 1px solid rgba(16, 185, 129, 0.16) !important;
}

#captainHub.captain-hub--v2 .cap-wait-loader-wrap::before {
  content: "" !important;
  position: absolute !important;
  inset: 7px !important;
  border-radius: 50% !important;
  border: 2px solid rgba(59, 130, 246, 0.16) !important;
  border-top-color: #22c55e !important;
  border-left-color: #facc15 !important;
  animation: capWaitSpin 1.45s linear infinite !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar {
  width: 30px !important;
  height: 30px !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar-ring {
  opacity: 0.35 !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar-core {
  width: 22px !important;
  height: 22px !important;
  background: linear-gradient(145deg, #22c55e 0%, #14b8a6 52%, #3b82f6 100%) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.9) !important;
}

#captainHub.captain-hub--v2 .cap-wait-title {
  align-self: start !important;
  padding-top: 10px !important;
  font-size: 19px !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min::before {
  inset-inline: 0 !important;
  height: 4px !important;
  background:
    linear-gradient(90deg, rgba(16, 185, 129, 0), rgba(16, 185, 129, 0.9) 28%, rgba(250, 204, 21, 0.86) 52%, rgba(16, 185, 129, 0.9) 76%, rgba(16, 185, 129, 0)) !important;
}

@keyframes capWaitSpin {
  to { transform: rotate(360deg); }
}

@keyframes capWaitTrail {
  0%, 100% { transform: translateX(0); opacity: 0.45; }
  50% { transform: translateX(-8px); opacity: 1; }
}

@media (max-width: 360px) {
  #captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
    grid-template-columns: 48px 1fr auto !important;
  }

  #captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::before {
    right: 78px !important;
    font-size: 10px !important;
  }
}

/* ── أيقونات الهيدر الموحّدة: قائمة + بيت ── */
#captainHub.captain-hub--v2 .cap-hub-profile,
#captainHub.captain-hub--v2 .cap-hub-home-btn,
#captainHub.captain-hub--v2 .cap-hub-back {
  display: grid !important;
  place-items: center !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  max-width: 44px !important;
  flex: 0 0 44px !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 13px !important;
  background: rgba(15, 23, 42, 0.04) !important;
  border: none !important;
  box-shadow: none !important;
  color: #334155 !important;
  transition: transform 0.15s ease, background 0.15s ease !important;
}

#captainHub.captain-hub--v2 .cap-hub-profile:active,
#captainHub.captain-hub--v2 .cap-hub-home-btn:active,
#captainHub.captain-hub--v2 .cap-hub-back:active {
  transform: scale(0.96) !important;
  background: rgba(15, 23, 42, 0.07) !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-header-icon,
#captainHub.captain-hub--v2 .cap-hub-home-btn .fi,
#captainHub.captain-hub--v2 .cap-hub-profile .fi {
  font-size: 20px !important;
  color: #334155 !important;
  line-height: 1 !important;
}

#captainHub.captain-hub--v2 .cap-hub-profile .cap-hub-avatar {
  width: 100% !important;
  height: 100% !important;
  display: grid !important;
  place-items: center !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

#captainHub.captain-hub--v2 .cap-hub-menu-lines {
  display: none !important;
}

#captainHub.captain-hub--v2 #capHubLiveTitle {
  min-width: 0;
  justify-content: center;
}

#captainHub.captain-hub--v2 .cap-hub-brand-mark {
  height: auto;
  min-width: 0;
  padding: 0 4px;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-brand-mark b {
  font-size: 20px !important;
  text-shadow: none;
}

/* ── شيت انتظار رحلة ── */
.captain-hub--v2 .cap-home-sheet--wait .cap-home-sheet-inner {
  padding: 18px 16px max(12px, env(safe-area-inset-bottom, 0px));
  text-align: center;
}

.captain-hub--v2 .cap-wait-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 0 0 8px;
}

.captain-hub--v2 .cap-wait-radar {
  position: relative;
  width: var(--cap-wait-radar-size, 56px);
  height: var(--cap-wait-radar-size, 56px);
  margin: 0;
  display: grid;
  place-items: center;
}

.captain-hub--v2 .cap-wait-radar-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid rgba(34, 197, 94, 0.35);
  animation: capWaitRing 2.4s ease-out infinite;
}

.captain-hub--v2 .cap-wait-radar-ring--2 {
  animation-delay: 1.2s;
}

.captain-hub--v2 .cap-wait-radar-core {
  position: relative;
  z-index: 2;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #ecfdf5 0%, #d1fae5 100%);
  border: 2px solid rgba(34, 197, 94, 0.25);
  color: #16a34a;
  font-size: 18px;
}

.captain-hub--v2 .cap-wait-radar-core--search {
  background: linear-gradient(145deg, #fffbeb 0%, #fef9c3 100%);
  border: 2px solid rgba(214, 161, 29, 0.22);
  box-shadow: 0 4px 14px rgba(214, 161, 29, 0.1);
}

.captain-hub--v2 .cap-wait-search-icon {
  width: 18px;
  height: 18px;
  display: block;
  color: var(--cap-gold, #d6a11d);
}

.captain-hub--v2 .cap-wait-radar--off .cap-wait-radar-core {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #94a3b8;
}

.captain-hub--v2 .cap-wait-title {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.03em;
  line-height: 1.2;
}

.captain-hub--v2 .cap-home-sheet--wait:not(.cap-home-sheet--offline) .cap-wait-title {
  color: #059669;
}

.captain-hub--v2 .cap-home-sheet--offline .cap-wait-title {
  color: #475569;
}

.captain-hub--v2 .cap-wait-sub {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: #64748b;
  line-height: 1.4;
}

.captain-hub--v2 .cap-wait-avail {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  direction: rtl;
  margin-bottom: 16px;
  padding: 12px 14px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.05);
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.03);
}

.captain-hub--v2 .cap-wait-avail-text {
  font-size: 13px;
  font-weight: 700;
  color: #64748b;
  text-align: right;
  flex: 1;
}

.captain-hub--v2 .cap-wait-avail-mark {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.captain-hub--v2 .cap-wait-avail-mark .cap-hub-idle-dot {
  width: 9px;
  height: 9px;
  box-shadow: 0 0 0 5px rgba(16, 185, 129, 0.1);
}

.captain-hub--v2 .cap-wait-avail-pill {
  display: none;
}

.captain-hub--v2 .cap-wait-stats-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.captain-hub--v2 .cap-wait-stats-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, #e2e8f0 20%, #e2e8f0 80%, transparent);
}

.captain-hub--v2 .cap-wait-stats-label {
  font-size: 12px;
  font-weight: 800;
  color: #94a3b8;
  white-space: nowrap;
}

.captain-hub--v2 .cap-wait-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}

.captain-hub--v2 .cap-wait-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 0;
  text-align: center;
}

.captain-hub--v2 .cap-wait-stat-icon {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #f6fdf9;
  border: 1px solid rgba(34, 197, 94, 0.08);
  color: #16a34a;
  font-size: 12px;
}

.captain-hub--v2 .cap-wait-stat-icon .ui-icon {
  width: 12px;
  height: 12px;
}

.captain-hub--v2 .cap-wait-stats-grid--muted .cap-wait-stat-icon {
  background: #f8fafc;
  color: #94a3b8;
}

.captain-hub--v2 .cap-wait-stat strong {
  font-size: 14px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.captain-hub--v2 .cap-wait-stat-unit {
  font-size: 11px;
  font-weight: 700;
  color: #64748b;
}

.captain-hub--v2 .cap-wait-stat-label {
  font-size: 10px;
  font-weight: 700;
  color: #94a3b8;
  line-height: 1.2;
}

@keyframes capWaitRing {
  0% {
    transform: scale(0.72);
    opacity: 0.7;
  }

  100% {
    transform: scale(1.35);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .captain-hub--v2 .cap-wait-radar-ring {
    animation: none;
    opacity: 0.35;
  }
}

/* ── قفل: كل الكروت — أبيض ناعم موحّد ── */
#captainHub.captain-hub--v2 .cap-hub-offer-card,
#captainHub.captain-hub--v2 .cap-hub-drawer,
#captainHub.captain-hub--v2 .cap-hub-drawer--v2 {
  background: var(--cap-card-bg) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.95) !important;
  box-shadow: var(--cap-shadow-sheet) !important;
  border-radius: var(--cap-card-radius-lg) var(--cap-card-radius-lg) 0 0 !important;
}

/* Codex: refined captain waiting sheet. */
#captainHub.captain-hub--v2 .cap-hub-idle,
#captainHub.captain-hub--v2 .cap-hub-offline {
  align-items: stretch !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-min,
#captainHub.captain-hub--v2 .cap-home-sheet--wait.cap-home-sheet--wait-min {
  position: relative !important;
  width: 100% !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.98) 100%) !important;
  border-top: 1px solid rgba(16, 185, 129, 0.2) !important;
  box-shadow:
    0 -1px 0 rgba(255, 255, 255, 0.9),
    0 -12px 30px rgba(15, 23, 42, 0.05) !important;
  overflow: hidden !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min::before {
  content: "" !important;
  position: absolute !important;
  inset-inline: 18px !important;
  top: 0 !important;
  height: 3px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, rgba(16, 185, 129, 0), rgba(16, 185, 129, 0.95), rgba(16, 185, 129, 0)) !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-home-sheet-handle {
  width: 42px !important;
  height: 4px !important;
  margin: 10px auto 0 !important;
  background: rgba(15, 23, 42, 0.08) !important;
  border-radius: 999px !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-deco-line {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-home-sheet-inner {
  padding: 11px 18px max(16px, env(safe-area-inset-bottom, 0px)) !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  align-items: center !important;
  gap: 12px !important;
  min-height: 64px !important;
  text-align: right !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::after {
  content: "متاح الآن" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 30px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  background: rgba(16, 185, 129, 0.1) !important;
  border: 1px solid rgba(16, 185, 129, 0.18) !important;
  color: #047857 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}

#captainHub.captain-hub--v2 .cap-wait-loader-wrap {
  width: 42px !important;
  height: 42px !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 !important;
  border-radius: 14px !important;
  background: #ecfdf5 !important;
  border: 1px solid rgba(16, 185, 129, 0.14) !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar {
  --cap-wait-radar-size: 34px;
  width: 34px !important;
  height: 34px !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar-core {
  width: 28px !important;
  height: 28px !important;
  border-width: 1px !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-wait-radar-ring {
  border-width: 1px !important;
}

#captainHub.captain-hub--v2 .cap-wait-title {
  justify-self: start !important;
  margin: 0 !important;
  color: #0f172a !important;
  font-size: 18px !important;
  font-weight: 950 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
}

#captainHub.captain-hub--v2.is-online .cap-wait-title,
#captainHub.captain-hub--v2 .cap-home-sheet--wait:not(.cap-home-sheet--offline) .cap-wait-title {
  color: #0f172a !important;
}

@media (max-width: 360px) {
  #captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min {
    gap: 9px !important;
  }

  #captainHub.captain-hub--v2 .cap-home-sheet--wait-min .cap-wait-min::after {
    padding: 0 9px !important;
    font-size: 11px !important;
  }

  #captainHub.captain-hub--v2 .cap-wait-title {
    font-size: 16px !important;
  }
}

#captainHub.captain-hub--v2 .cap-hub-offer-handle,
#captainHub.captain-hub--v2 .cap-drawer-v2-handle,
#captainHub.captain-hub--v2 .cap-home-sheet-handle {
  background: rgba(15, 23, 42, 0.07) !important;
}

.captain-hub--v2 .cap-hub-offer-decline,
.captain-hub--v2 .cap-offer-decline {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
}

.captain-hub--v2 .cap-offer-route,
.captain-hub--v2 .cap-trip-route.cap-offer-route {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
  border-radius: var(--cap-card-radius-md) !important;
}

.captain-hub--v2 .cap-offer-stat,
.captain-hub--v2 .cap-home-stat {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
}

.captain-hub--v2 .cap-stats-v2-card,
.captain-hub--v2 .cap-stats-v2-card--rating,
.captain-hub--v2 .cap-stats-v2-card--earn {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
  border-radius: var(--cap-card-radius-md) !important;
}

.captain-hub--v2 .cap-stats-v2-card-icon {
  background: #f8fffb !important;
  border: 1px solid rgba(34, 197, 94, 0.08) !important;
}

.captain-hub--v2 .cap-stats-v2-link {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
}

.captain-hub--v2 .cap-menu-quick-item,
.captain-hub--v2 .cap-menu-item {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
  border-radius: var(--cap-card-radius-md) !important;
}

.captain-hub--v2 .cap-menu-quick-item:active,
.captain-hub--v2 .cap-menu-item:active {
  background: #fafbfc !important;
}

.captain-hub--v2 .cap-hub-sub-v2 {
  background: var(--cap-card-bg) !important;
  border-bottom: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
}

.captain-hub--v2 .cap-hub-sub-v2--expired,
.captain-hub--v2 .cap-hub-sub-v2--trial {
  background: var(--cap-card-bg) !important;
}

.captain-hub--v2 .cap-trip-rider-signal--coming,
.captain-hub--v2 .cap-trip-rider-signal--wait {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
}

.captain-hub--v2 .cap-history-v2-sum,
.captain-hub--v2 .cap-history-v2-item {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
  border-radius: var(--cap-card-radius-md) !important;
}

.captain-hub--v2 .cap-history-v2-empty {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
  border-radius: var(--cap-card-radius-md) !important;
}

.captain-hub--v2 .cap-trip-dock-btn,
.captain-hub--v2 .cap-trip-quick-btn {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
}

.captain-hub--v2 .cap-hub-drawer--v2 .cap-hub-drawer-close {
  background: #fff !important;
  border: 1px solid var(--cap-card-border) !important;
  box-shadow: var(--cap-shadow-sm) !important;
}

#captainHub.captain-hub--v2 .cap-hub-profile,
#captainHub.captain-hub--v2 .cap-hub-back,
#captainHub.captain-hub--v2 .cap-hub-home-btn,
#captainHub.captain-hub--v2 .cap-hub-power-btn,
#captainHub.captain-hub--v2 #captainHubToggle.cap-hub-power-btn {
  background: rgba(15, 23, 42, 0.04) !important;
  border: none !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-live-status-line {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* Captain incoming request card - adapted v4 */
#captainHub.captain-hub--v2 #captainHubOffer.cap-request-v4 {
  width: min(calc(100% - 24px), 420px) !important;
  max-width: 420px !important;
  min-width: 0 !important;
  padding: 18px !important;
  border-radius: 20px !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.14) !important;
  overflow: hidden !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-header {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  padding: 0 42px 12px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-heading {
  display: grid !important;
  justify-items: center !important;
  gap: 2px !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-heading strong {
  color: #0f172a !important;
  font-size: 19px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-kicker {
  color: #16a34a !important;
  font-size: 10px !important;
  font-weight: 900 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-header .cap-offer-close {
  position: absolute !important;
  inset-inline-end: 0 !important;
  top: 0 !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  padding: 0 !important;
  border-radius: 11px !important;
  border: 1px solid #e2e8f0 !important;
  background: #f8fafc !important;
  color: #475569 !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-dashboard {
  display: grid !important;
  grid-template-columns: minmax(116px, 0.92fr) minmax(0, 1.35fr) !important;
  direction: rtl !important;
  overflow: hidden !important;
  margin-bottom: 14px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 14px !important;
  background: #f3f6fa !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-fare {
  display: grid !important;
  align-content: center !important;
  gap: 3px !important;
  min-height: 74px !important;
  padding: 12px 14px !important;
  background: #087f5b !important;
  color: #ffffff !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-fare span {
  font-size: 10px !important;
  font-weight: 700 !important;
  opacity: 0.86 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-fare .cap-offer-price {
  color: #ffffff !important;
  font-size: 21px !important;
  font-weight: 950 !important;
  white-space: nowrap !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-stats {
  display: grid !important;
  grid-template-columns: 1fr 1px 1fr !important;
  align-items: center !important;
  padding: 9px !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-stats i {
  width: 1px !important;
  height: 30px !important;
  background: #cbd5e1 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-stats .cap-offer-stat {
  display: grid !important;
  justify-items: center !important;
  gap: 4px !important;
  padding: 0 5px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-stats .cap-offer-stat-label {
  color: #64748b !important;
  font-size: 10px !important;
  font-weight: 700 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-stats strong {
  color: #1e293b !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-route {
  position: relative !important;
  display: grid !important;
  gap: 13px !important;
  margin-bottom: 13px !important;
  padding: 14px !important;
  border: 1px solid #edf1f5 !important;
  border-radius: 14px !important;
  background-color: #fbfcfd !important;
  background-image: radial-gradient(#e2e8f0 1px, transparent 1px) !important;
  background-size: 15px 15px !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-route .cap-offer-route-item {
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 10px !important;
  min-height: 43px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-route .cap-offer-route-marker {
  position: relative !important;
  width: 20px !important;
  min-height: 46px !important;
  display: grid !important;
  place-items: start center !important;
  background: transparent !important;
  border: 0 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-route .cap-offer-route-item--pick .cap-offer-route-marker::after {
  content: '' !important;
  position: absolute !important;
  top: 16px !important;
  bottom: -29px !important;
  left: 50% !important;
  width: 2px !important;
  transform: translateX(-50%) !important;
  background: linear-gradient(#22c55e, #cbd5e1 55%, #ef4444) !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-route .cap-offer-stop-dot {
  width: 12px !important;
  height: 12px !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #22c55e !important;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.16) !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-route .cap-offer-route-item--dest .cap-offer-stop-dot {
  background: #ef4444 !important;
  box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.14) !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-route .cap-offer-stop-label {
  display: block !important;
  margin-bottom: 3px !important;
  color: #64748b !important;
  font-size: 10px !important;
  font-weight: 800 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-route .cap-offer-stop-text {
  margin: 0 !important;
  color: #0f172a !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  white-space: normal !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-meta {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 0 3px 13px !important;
  color: #64748b !important;
  font-size: 11px !important;
  font-weight: 700 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-meta strong {
  margin-inline-start: 4px !important;
  color: #0f172a !important;
  font-weight: 900 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-actions {
  display: grid !important;
  grid-template-columns: 0.72fr 1.28fr !important;
  gap: 10px !important;
  margin: 0 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-actions button {
  min-height: 46px !important;
  border-radius: 13px !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-actions .cap-hub-offer-accept {
  background: linear-gradient(180deg, #22c55e, #16a34a) !important;
  border: 0 !important;
  color: #ffffff !important;
  box-shadow: 0 4px 0 #15803d, 0 8px 16px rgba(22, 163, 74, 0.22) !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-actions .cap-hub-offer-decline {
  background: #f8fafc !important;
  border: 1px solid #cbd5e1 !important;
  color: #475569 !important;
  box-shadow: 0 3px 0 #cbd5e1 !important;
}

@media (max-width: 375px) {
  #captainHub.captain-hub--v2 #captainHubOffer.cap-request-v4 {
    width: min(calc(100% - 16px), 420px) !important;
    padding: 14px !important;
  }

  #captainHub.captain-hub--v2 .cap-request-v4-dashboard {
    grid-template-columns: 112px minmax(0, 1fr) !important;
  }

  #captainHub.captain-hub--v2 .cap-request-v4-fare {
    padding-inline: 10px !important;
  }
}
/* Captain waiting card - compact radar v5 */
#captainHub.captain-hub--v2 .cap-home-sheet--wait-v5,
#captainHub.captain-hub--v2 .cap-home-sheet.cap-home-sheet--wait-v5 {
  width: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  border-radius: 22px 22px 0 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(148, 163, 184, 0.22) !important;
  background: #ffffff !important;
  box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.07) !important;
  overflow: hidden !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-v5::before,
#captainHub.captain-hub--v2 .cap-home-sheet--wait-v5 .cap-wait-min::after {
  content: none !important;
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-v5 .cap-home-sheet-handle {
  display: block !important;
  width: 42px !important;
  height: 4px !important;
  margin: 9px auto 0 !important;
  border-radius: 999px !important;
  background: #e2e8f0 !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-v5 .cap-home-sheet-inner {
  display: grid !important;
  gap: 11px !important;
  padding: 8px 18px max(14px, env(safe-area-inset-bottom, 0px)) !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-status {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  min-height: 52px !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-radar {
  position: relative !important;
  flex: 0 0 44px !important;
  width: 44px !important;
  height: 44px !important;
  display: grid !important;
  place-items: center !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-radar i {
  position: absolute !important;
  inset: 0 !important;
  border-radius: 50% !important;
  background: rgba(34, 197, 94, 0.2) !important;
  animation: capWaitV5Radar 1.8s ease-out infinite !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-radar i:nth-child(2) {
  animation-delay: 0.6s !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-radar b {
  position: relative !important;
  z-index: 2 !important;
  width: 18px !important;
  height: 18px !important;
  border: 3px solid #ffffff !important;
  border-radius: 50% !important;
  background: #22c55e !important;
  box-shadow: 0 3px 10px rgba(34, 197, 94, 0.34) !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-copy {
  min-width: 0 !important;
  text-align: right !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-v5 .cap-idle-title {
  margin: 0 0 3px !important;
  color: #0f172a !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
}

#captainHub.captain-hub--v2 .cap-home-sheet--wait-v5 .cap-idle-sub {
  margin: 0 !important;
  color: #64748b !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-stats {
  width: min(100%, 320px) !important;
  justify-self: center !important;
  display: grid !important;
  grid-template-columns: 1fr 1px 1fr !important;
  align-items: center !important;
  padding: 7px 12px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  background: #f8fafc !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-stats > i {
  width: 1px !important;
  height: 18px !important;
  background: #cbd5e1 !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-stat {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  min-width: 0 !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-stat span {
  color: #64748b !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
}

#captainHub.captain-hub--v2 .cap-wait-v5-stat strong {
  color: #1e293b !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}

@keyframes capWaitV5Radar {
  0% { transform: scale(0.38); opacity: 1; }
  100% { transform: scale(1.45); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  #captainHub.captain-hub--v2 .cap-wait-v5-radar i {
    animation: none !important;
    opacity: 0.32 !important;
  }
}
/* Captain request v4 - remove legacy outer card in offer mode */
#captainHub.captain-hub--v2 .cap-hub-offer-card--mode-offer,
#captainHub.captain-hub--v2 .cap-hub-offer-card--incoming {
  width: 100% !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 0 max(10px, env(safe-area-inset-bottom, 0px)) !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-offer-card--mode-offer::before,
#captainHub.captain-hub--v2 .cap-hub-offer-card--incoming::before {
  content: none !important;
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-offer-card--mode-offer > .cap-hub-offer-handle,
#captainHub.captain-hub--v2 .cap-hub-offer-card--incoming > .cap-hub-offer-handle {
  display: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-offer-card--mode-offer > .cap-hub-card-offer,
#captainHub.captain-hub--v2 .cap-hub-offer-card--incoming > .cap-hub-card-offer {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2 .cap-hub-offer-card--mode-offer #captainHubOffer.cap-request-v4,
#captainHub.captain-hub--v2 .cap-hub-offer-card--incoming #captainHubOffer.cap-request-v4 {
  display: block !important;
  margin: 0 auto !important;
}
/* Captain request v4 - direct single layer */
#captainHub.captain-hub--v2 #captainHubCard.cap-request-direct > #captainHubOffer.cap-request-v4 {
  display: block;
  margin: 0 auto max(10px, env(safe-area-inset-bottom, 0px)) !important;
}

#captainHub.captain-hub--v2 #captainHubCard.cap-request-direct > .cap-hub-offer-card[hidden] {
  display: none !important;
}
/* Captain offer state - hard single visible card */
#captainHub.captain-hub--v2.has-offer #captainHubCard.cap-request-direct > .cap-hub-offer-card,
#captainHub.captain-hub--v2.has-offer #capHubIdleMsg,
#captainHub.captain-hub--v2.has-offer #capHubOfflineMsg {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  pointer-events: none !important;
}

#captainHub.captain-hub--v2.has-offer #captainHubCard.cap-request-direct {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#captainHub.captain-hub--v2.has-offer #captainHubCard.cap-request-direct > #captainHubOffer.cap-request-v4 {
  position: relative !important;
  z-index: 2 !important;
}
/* Captain request card - full width only */
#captainHub.captain-hub--v2.has-offer #captainHubCard.cap-request-direct > #captainHubOffer.cap-request-v4 {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-inline: 0 !important;
}
/* Captain GPS button card */
#captainHub.captain-hub--v2 .cap-map-gps-btn {
  display: grid !important;
  place-items: center !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  padding: 0 !important;
  border: 1px solid rgba(148, 163, 184, 0.28) !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  color: #059669 !important;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.13) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#captainHub.captain-hub--v2 .cap-map-gps-btn i {
  display: block !important;
  color: currentColor !important;
  font-size: 21px !important;
  line-height: 1 !important;
}

#captainHub.captain-hub--v2 .cap-map-gps-btn:active {
  transform: scale(0.96) !important;
  background: #f0fdf4 !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.11) !important;
}
/* Captain header - power beside brand on right */
#captainHub.captain-hub--v2 #captainHubToggle.cap-hub-power-btn {
  margin-left: auto !important;
  margin-right: 0 !important;
}

#captainHub.captain-hub--v2 #capHubBrandMark {
  margin: 0 !important;
  flex: 0 0 auto !important;
}
/* Captain header - brand true center */
#captainHub.captain-hub--v2 .cap-hub-header-unit {
  position: relative !important;
}

#captainHub.captain-hub--v2 #capHubBrandMark {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
  z-index: 2 !important;
  margin: 0 !important;
}
/* Captain request accept - app brand color */
#captainHub.captain-hub--v2 .cap-request-v4-actions .cap-hub-offer-accept {
  background: var(--cap-brand, #19a974) !important;
  border: 1px solid rgba(15, 143, 98, 0.34) !important;
  color: #ffffff !important;
  box-shadow: 0 7px 16px rgba(25, 169, 116, 0.24) !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-actions .cap-hub-offer-accept:active {
  transform: scale(0.98) !important;
  background: #158f62 !important;
  box-shadow: 0 4px 10px rgba(25, 169, 116, 0.2) !important;
}

/* Captain chat - true full screen */
.cap-chat-modal {
  display: block !important;
  padding: 0 !important;
  background: #ffffff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.cap-chat-panel {
  width: 100% !important;
  max-width: none !important;
  height: 100vh !important;
  height: 100dvh !important;
  min-height: 100% !important;
  max-height: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.cap-chat-head {
  flex: 0 0 auto !important;
  min-height: 66px !important;
  padding: max(12px, env(safe-area-inset-top, 0px)) 16px 12px !important;
  background: #ffffff !important;
}

.cap-chat-close {
  display: grid !important;
  place-items: center !important;
  flex: 0 0 40px !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 12px !important;
  border: 1px solid #e2e8f0 !important;
  background: #f8fafc !important;
  color: #334155 !important;
}

.cap-chat-close i {
  font-size: 20px !important;
  line-height: 1 !important;
}

.cap-chat-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overscroll-behavior: contain !important;
  padding: 16px !important;
}

.cap-chat-quick {
  flex: 0 0 auto !important;
  padding: 10px 16px 0 !important;
  background: #ffffff !important;
}

.cap-chat-compose {
  flex: 0 0 auto !important;
  padding: 12px 16px max(12px, env(safe-area-inset-bottom, 0px)) !important;
  background: #ffffff !important;
  border-top: 1px solid #eef1f5 !important;
}

.cap-chat-sms-fallback {
  flex: 0 0 auto !important;
  margin-bottom: max(10px, env(safe-area-inset-bottom, 0px)) !important;
}


/* Captain header - double width power button */
#captainHub.captain-hub--v2 #captainHubToggle.cap-hub-power-btn {
  width: 104px !important;
  min-width: 104px !important;
  max-width: 104px !important;
  flex: 0 0 104px !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  border-radius: 14px !important;
}

/* Captain commands - restrained icon and label pattern */
#captainHub.captain-hub--v2 .cap-command-icon,
#captainHub.captain-hub--v2 a.cap-command-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
}

#captainHub.captain-hub--v2 .cap-command-icon > .ui-icon--fi,
#captainHub.captain-hub--v2 .cap-command-icon > i {
  flex: 0 0 auto !important;
  font-size: 16px !important;
  line-height: 1 !important;
}

#captainHub.captain-hub--v2 .cap-command-icon > span {
  min-width: 0 !important;
  line-height: 1.2 !important;
}

#captainHub.captain-hub--v2 .cap-request-v4-actions .cap-command-icon > i,
#captainHub.captain-hub--v2 .cap-hub-drawer-logout.cap-command-icon > i,
#captainHub.captain-hub--v2 .cap-trip-cancel-link.cap-command-icon > i,
#captainHub.captain-hub--v2 .cap-hub-offer-decline.cap-command-icon > i {
  color: currentColor !important;
}
