/* BoothNest v2.1.5 UI polish + minimal animations */
:root {
  --bn-motion-fast: 140ms;
  --bn-motion-med: 200ms;
  --bn-soft-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
  --bn-soft-shadow-hover: 0 12px 30px rgba(15, 23, 42, 0.12);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

.bn-page-fade,
.content,
.main-content,
.app-content {
  animation: bnFadeUp var(--bn-motion-fast) ease-out both;
}

@keyframes bnFadeUp {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

.btn,
.button,
button,
a.btn {
  transition: transform var(--bn-motion-fast) ease, box-shadow var(--bn-motion-fast) ease, background-color var(--bn-motion-fast) ease, border-color var(--bn-motion-fast) ease;
}

.btn:active,
.button:active,
button:active,
a.btn:active {
  transform: scale(0.98);
}

.card,
.bn-card,
.box,
.panel,
.match-card,
.inventory-card,
.connection-card,
.command-card {
  transition: transform var(--bn-motion-med) ease, box-shadow var(--bn-motion-med) ease, border-color var(--bn-motion-fast) ease;
}

@media (hover: hover) {
  .card:hover,
  .bn-card:hover,
  .box:hover,
  .panel:hover,
  .match-card:hover,
  .inventory-card:hover,
  .connection-card:hover,
  .command-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--bn-soft-shadow-hover);
  }
}

.badge-success,
.status-good,
.status-complete {
  background: #e8f7ef !important;
  color: #18794e !important;
  border: 1px solid #b7e4c7 !important;
}

.badge-warning,
.status-warning,
.status-attention {
  background: #fff6df !important;
  color: #946200 !important;
  border: 1px solid #f5d27a !important;
}

.badge-danger,
.status-danger,
.status-error {
  background: #fdecec !important;
  color: #b42318 !important;
  border: 1px solid #f5b5b5 !important;
}

.badge-info,
.status-info {
  background: #eaf2ff !important;
  color: #1d4ed8 !important;
  border: 1px solid #bfdbfe !important;
}

.toast,
.alert,
.notification-item {
  animation: bnSlideIn var(--bn-motion-med) ease-out both;
}

@keyframes bnSlideIn {
  from { opacity: 0; transform: translateX(12px); }
  to { opacity: 1; transform: translateX(0); }
}

.row-selected,
tr.selected,
.match-selected,
.is-selected {
  background: #f0f7ff !important;
  box-shadow: inset 3px 0 0 #2563eb;
}

.sticky-actions,
.bn-sticky-actions {
  position: sticky;
  bottom: 0;
  z-index: 30;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(8px);
  padding: 12px;
  box-shadow: 0 -8px 20px rgba(15, 23, 42, 0.08);
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.empty-state,
.bn-empty-state {
  border: 1px dashed rgba(15, 23, 42, 0.18);
  border-radius: 16px;
  padding: 22px;
  background: #fbfdff;
  text-align: center;
}

.sidebar a,
.mobile-bottom-nav a,
.bottom-nav a {
  transition: background-color var(--bn-motion-fast) ease, color var(--bn-motion-fast) ease, transform var(--bn-motion-fast) ease;
}

.sidebar a.active,
.mobile-bottom-nav a.active,
.bottom-nav a.active {
  font-weight: 700;
}

@media (max-width: 768px) {
  .btn,
  .button,
  button,
  a.btn {
    min-height: 44px;
  }

  .card,
  .bn-card,
  .match-card,
  .inventory-card,
  .connection-card,
  .command-card {
    border-radius: 16px;
  }
}
