/* Motion helpers kept for hover only. Do not hide nodes — JS observers were crashing React. */
[data-gm-anim] {
  opacity: 1;
}

@keyframes gmFadeInUp {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes gmFadeInDown {
  from { opacity: 0; transform: translateY(-22px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes gmFadeInScale {
  from { opacity: 0; transform: scale(0.92) translateY(14px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes gmBounceIn {
  0% { opacity: 0; transform: scale(0.84); }
  70% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 1; transform: scale(1); }
}

.gm-animated[data-gm-anim="fadeInUp"] { animation: gmFadeInUp 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; }
.gm-animated[data-gm-anim="fadeInDown"] { animation: gmFadeInDown 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; }
.gm-animated[data-gm-anim="fadeInScale"] { animation: gmFadeInScale 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; }
.gm-animated[data-gm-anim="bounceIn"] { animation: gmBounceIn 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; }

.gm-hover-lift {
  transition: transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.25s ease;
}
.gm-hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px -22px hsl(var(--foreground) / 0.55);
}

.dashboard-home.gm-enter > * {
  animation: gmFadeInUp 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}
.dashboard-home.gm-enter > *:nth-child(1) { animation-delay: 0.02s; }
.dashboard-home.gm-enter > *:nth-child(2) { animation-delay: 0.08s; }
.dashboard-home.gm-enter > *:nth-child(3) { animation-delay: 0.14s; }
.dashboard-home.gm-enter > *:nth-child(4) { animation-delay: 0.2s; }
.dashboard-home.gm-enter > *:nth-child(5) { animation-delay: 0.26s; }
.dashboard-home.gm-enter > *:nth-child(6) { animation-delay: 0.32s; }
.dashboard-home.gm-enter > *:nth-child(n+7) { animation-delay: 0.38s; }

.gm-motion-kpis > * {
  animation: gmFadeInScale 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}
.gm-motion-kpis > *:nth-child(1) { animation-delay: 0.08s; }
.gm-motion-kpis > *:nth-child(2) { animation-delay: 0.16s; }
.gm-motion-kpis > *:nth-child(3) { animation-delay: 0.24s; }
.gm-motion-kpis > *:nth-child(4) { animation-delay: 0.32s; }
.gm-motion-kpis > *:nth-child(5) { animation-delay: 0.4s; }

html.gm-motion-played .dashboard-home.gm-enter > *,
html.gm-motion-played .gm-motion-kpis > *,
html.gm-motion-played .gm-animated[data-gm-anim] {
  animation: none;
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  [data-gm-anim],
  [data-gm-anim].gm-animated,
  .dashboard-home.gm-enter > *,
  .gm-motion-kpis > *,
  .gm-hover-lift,
  .gm-hover-lift:hover {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Orders + other data tables: stop table-fixed from stretching City / Delivery rate. */
.orders-desktop-scroll table {
  table-layout: auto !important;
  width: 100% !important;
  border-collapse: separate;
  border-spacing: 0;
}
.orders-desktop-scroll table thead th,
.orders-desktop-scroll table tbody td {
  width: 1% !important;
  min-width: 0 !important;
}
.orders-desktop-scroll .gm-col-hug {
  width: 1% !important;
  min-width: 0 !important;
  white-space: nowrap;
  padding-inline: 8px !important;
}
.orders-desktop-scroll .gm-col-fill,
.orders-desktop-scroll table thead th[class*="max-w-[148px]"],
.orders-desktop-scroll table tbody td[class*="max-w-[148px]"] {
  width: auto !important;
  min-width: 132px !important;
  max-width: none !important;
  white-space: normal;
}
.orders-desktop-scroll [class*="min-w-[148px]"],
.orders-desktop-scroll [class*="w-[160px]"],
.orders-desktop-scroll [class*="w-[96px]"] {
  width: 1% !important;
  min-width: 0 !important;
}
[data-gm="bosta-rate"] {
  min-width: 92px !important;
  max-width: 118px !important;
  padding: 6px 8px !important;
}
.dashboard-home table,
table.w-full.text-sm {
  table-layout: auto;
}
.dashboard-home table th,
.dashboard-home table td,
table.w-full.text-sm th,
table.w-full.text-sm td {
  width: auto;
  padding-inline: 8px;
}
