/* ==========================================================================
   COMPONENT: GSAP ROLLING ODOMETER (NEXWEB SPEC - BYD LIGHT & GEIST COMPLIANT)
   File: odometer.css
   Role: Menampilkan metrik akselerasi (s), jarak tempuh (km), kapasitas (kWh)
   Behavior: Dynamic Auto-Fit (2, 3, atau 4 item otomatis membagi rata 100%)
   ========================================================================== */

/* 1. Bar Pembungkus Dinamis (Card Spec Surface & Padding) */
.nx-odometer-bar {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  justify-content: space-between !important;
  gap: clamp(16px, 2.5vw, 32px) !important;
  width: 100% !important;
  
  /* PERBAIKAN PADDING & CARD FRAME: Beri ruang napas lega */
  background: var(--nx-bg-surface, #ffffff) !important;
  border: 1px solid var(--nx-c-border, #e2e8f0) !important;
  border-radius: var(--nx-radius-lg, 16px) !important;
  padding: clamp(20px, 3vw, 28px) clamp(20px, 4vw, 32px) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
  
  margin-top: clamp(20px, 3vw, 28px) !important;
  margin-bottom: clamp(20px, 3vw, 28px) !important;
  box-sizing: border-box !important;
}

/* 2. Item Satuan: Membagi Rata 100% Berapapun Jumlahnya */
.nx-odo-item {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  align-items: flex-start !important;
  text-align: left !important;
}

/* 3. Nilai Angka Utama (Kontras Tinggi Charcoal) */
.nx-odo-value-wrap {
  display: inline-flex !important;
  align-items: baseline !important;
  font-family: var(--font-heading, 'Geist', sans-serif) !important;
  font-size: clamp(1.75rem, 2.5vw, 2.5rem) !important;
  font-weight: var(--nx-fw-bold, 700) !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
  color: var(--nx-c-heading, #1e2229) !important;
}

/* 4. Mekanikal GSAP Tabular Numbers */
.nx-odometer {
  display: inline-flex !important;
  align-items: baseline !important;
  font-family: var(--font-heading, 'Geist', sans-serif) !important;
  font-variant-numeric: tabular-nums !important;
  line-height: 1 !important;
  height: 1em !important;
  overflow: hidden !important;
}

.nx-odo-col {
  display: inline-flex !important;
  flex-direction: column !important;
  height: 1em !important;
  line-height: 1em !important;
  overflow: hidden !important;
  position: relative !important;
  width: auto !important;
}

.nx-odo-list {
  display: flex !important;
  flex-direction: column !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  will-change: transform !important;
}

.nx-odo-list span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 1em !important;
  line-height: 1em !important;
  text-align: center !important;
}

/* Titik Pemisah Desimal (KWH misal: 38.88) */
.nx-odo-dot {
  line-height: 1em !important;
  margin: 0 1px !important;
  font-family: var(--font-heading, 'Geist', sans-serif) !important;
  font-weight: var(--nx-fw-bold, 700) !important;
  color: var(--nx-c-heading, #1e2229) !important;
}

/* 5. Unit Satuan (KM, NM, KWH, %) */
.nx-odo-unit {
  font-family: var(--font-mono, 'Geist Mono', monospace) !important;
  font-size: 0.75rem !important;
  color: var(--nx-c-accent, #007aff) !important;
  margin-left: 6px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}
/* 6. Label Keterangan (JANGKAUAN, TORSI, KAPASITAS) */
.nx-odo-label {
  font-family: var(--font-mono, 'Geist Mono', monospace) !important;
  font-size: 0.6875rem !important;
  font-weight: var(--nx-fw-semibold, 600) !important;
  color: var(--nx-c-muted, #909399) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  line-height: 1.4 !important;
}

/* ==========================================================================
   RESPONSIVE LAYOUT BREAKPOINTS (MOBILE CARD SPEC)
   ========================================================================== */

/* Tablet & Mobile (≤ 768px): Tampilan Stack Rapi dengan Padding Pas */
@media (max-width: 768px) {
  .nx-odometer-bar {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    padding: 20px !important;
    margin-top: 20px !important;
    margin-bottom: 24px !important;
    border-radius: 16px !important;
  }

  .nx-odometer-bar .nx-odo-item {
    flex: initial !important;
    width: 100% !important;
    align-items: flex-start !important;
    text-align: left !important;
    gap: 3px !important;
  }

  .nx-odometer-bar .nx-odo-item:last-child:nth-child(odd) {
    grid-column: auto !important;
    justify-self: auto !important;
    max-width: 100% !important;
  }

  /* Ukuran font angka di mobile persis proporsional */
  .nx-odo-value-wrap {
    font-size: 1.875rem !important;
  }

  .nx-odo-unit {
    font-size: 0.6875rem !important;
    margin-left: 4px !important;
  }

  .nx-odo-label {
    font-size: 0.625rem !important;
  }
}

/* ==========================================================================
   ZONE ADAPTIVE: KONDISI SAAT MASUK KE FLOATING CARD / ZONA GELAP
   ========================================================================== */
.nx-floating-card .nx-odometer-bar,
.nx-cta-box .nx-odometer-bar,
.nx-coming-soon .nx-odometer-bar {
  background: rgba(255, 255, 255, 0.05) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}

.nx-floating-card .nx-odo-value-wrap,
.nx-cta-box .nx-odo-value-wrap,
.nx-coming-soon .nx-odo-value-wrap {
  color: #ffffff !important;
  text-shadow: 0 4px 16px rgba(0, 0, 0, 0.6) !important;
}

.nx-floating-card .nx-odo-dot,
.nx-cta-box .nx-odo-dot,
.nx-coming-soon .nx-odo-dot {
  color: #ffffff !important;
}

.nx-floating-card .nx-odo-unit,
.nx-cta-box .nx-odo-unit,
.nx-coming-soon .nx-odo-unit {
  color: #409eff !important;
}

.nx-floating-card .nx-odo-label,
.nx-cta-box .nx-odo-label,
.nx-coming-soon .nx-odo-label {
  color: #94a3b8 !important;
}